В этой статье мы узнаем, как мы можем анализировать и визуализировать твиты с помощью Kibana, Docker на основе поисковых ключевых слов. Эти данные могут в дальнейшем использоваться для задач машинного обучения и искусственного интеллекта для прогнозирования событий и обнаружения определенных событий в различных областях, таких как анализ депрессии, твиты о раке, которые ИИ может использовать в отраслях здравоохранения.

Предварительные условия

Докер установлен на вашем компьютере. Вы можете установить его на свой компьютер, следуя официальной документации Docker.

Токены доступа пользователя Twitter: пользователь может получить свои собственные токены доступа, посетив панель разработчика Twitter, где для своей учетной записи он может получить токены доступа.
Он состоит из 4 значений:
consumer_key, consumer_secret , oauth_token и oauth_token_secret

Введение

Kibana: Kibana - это интерфейсное приложение с открытым исходным кодом, которое находится на вершине Elastic Stack и обеспечивает возможности поиска и визуализации данных для данных, проиндексированных в Elasticsearch. Kibana имеет множество функций для исследования, визуализации, мониторинга и управления данными. Kibana вместе со стеком EL можно использовать для поиска аномалий и выбросов, прогнозирования на основе тенденций и определения областей интереса в ваших данных с помощью эластичного машинного обучения.

Docker: Docker - это инструмент, упрощающий создание, развертывание и запуск приложений с использованием контейнеров. Контейнеры позволяют разработчику упаковать приложение со всеми необходимыми ему частями, такими как библиотеки и другие зависимости, и развернуть его как один пакет.

Как добиться

Шаг 1. Запустите образ Docker для ELK
Убедитесь, что у вас есть образ докера для ELK. Если у вас его нет, вы можете выполнить следующую команду, чтобы получить этот образ.

  • docker pull sebp / elk

Здесь я использую изображение sebp / elk, которое представляет собой одно изображение, состоящее из всего стека ELK. После того, как у вас есть образ, запустите контейнер, используя этот образ, перед этим нам нужно увеличить количество mmap, потому что Elasticsearch по умолчанию использует каталог mmapfs для хранения своих индексов. Ограничения операционной системы по умолчанию для счетчиков mmap, вероятно, будут слишком низкими, что может привести к исключениям из-за нехватки памяти.

В Linux вы можете увеличить ограничения, выполнив следующую команду от имени пользователя root:

  • sysctl -w vm.max_map_count = 262144

Elasticsearch по умолчанию использует каталог mmapfs для хранения своих индексов. Ограничения операционной системы по умолчанию для счетчиков mmap, вероятно, будут слишком низкими, что может привести к исключениям из-за нехватки памяти.

В Linux вы можете увеличить ограничения, выполнив следующую команду как root:

  • docker run -p 5601: 5601 -p 9200: 9200 -p 9300: 9300 -p 5044: 5044 -it sebp / elk

Когда контейнер будет запущен, скопируйте идентификатор контейнера, который вы можете получить с помощью команды «docker ps», а затем используйте эту команду для ssh в свой контейнер.

## удалите "container_id" скопированным вами container_id

docker exec -u 0 -it ‘container_id’ / bin / bash

Шаг 2. Измените файл конфигурации

Как только вы войдете в контейнер по ssh, перейдите в каталог ‘/etc/logstash/conf.d’, и вы увидите там следующие файлы

Здесь мы должны изменить входной и выходной файл.

Для 02-beats-input.conf мы изменим его так, чтобы он принимал ввод из twitter api, а не передавал ему какой-либо файл. Измененный файл выглядит как

02-beats-input.conf

ввод {
twitter {
consumer_key = ›« **************************** »
consumer_secret = ›« ************************* »
oauth_token =› «********** ********************** »
oauth_token_secret =› «******************* ******* »
keywords =› [«депрессия», «корона»]
full_tweet = ›true
}
}

Замените ключевые слова ключевым словом, по которому вы хотите выполнить поиск, и замените токены доступа на те, которые вы получили для своей учетной записи.

Для 30-output.conf мы изменим его для вывода данных в elasticsearch в шаблоне индекса ‘tweets-’ с указанием даты.

30-output.conf

вывод {
elasticsearch {
hosts = ›[« localhost »]
manage_template =› false
index = ›« твиты -% {+ YYYY.MM.dd} ”
}
}

Шаг 3. Перезапустите контейнер

После того, как мы изменили файлы конфигурации, нам нужно перезапустить контейнер, чтобы изменения вступили в силу. Используйте команду ‘docker restart container_id’, чтобы перезапустить контейнер.

Шаг 4. Запустите Kibana.

Как только Kibana будет готова, запустите ‘localhost: 5601’ в вашем браузере, и панель управления kibana будет там, если все изменения прошли должным образом.

В Kibana Dashboard создайте шаблон индекса под управлением стеком

После создания шаблона индекса вы можете перейти к панели поиска и фильтровать данные на основе поля, времени и других фактов, а также загрузить их в формате CSV для дальнейшего анализа. Kibana предлагает вам различные техники визуализации, которые вы хотите использовать.

Таким образом, вы можете анализировать большой кусок данных твитов, который в дальнейшем может быть использован для моделей машинного обучения и может быть визуализирован в виде графиков, всплесков, диаграмм на панели инструментов Kibana с использованием различных фильтров и часовых поясов.