Использование rsyslog для хранения log-сообщений сетевого оборудования, и loganalyzer для их отображения, обозначило необходимость поиска, соответствующей современным требованиям, альтернативы. В результате анализа различных решений был сделан выбор в пользу open-source компонентов стека ELK. Был ли этот выбор полностью осознанным - скорее нет, ибо популярность ELK стека бьет все рекорды. Поэтому не пощупать его своими руками было бы неразумно. Тем более у меня была давняя задача разобраться с IDS SELKS изнутри, где ELK, как вы заметили, является основой.
Итак, основными элементами ELK являются: Elasticsearch (search engine – для хранения и быстрого поиска структурированных данных), Logstash (collector – для приема в различном формате данных, их фильтрации и преобразования, и последующей отправки в различные базы данных) и Kibana (инструмент для визуализации), которые и составляют акроним ELK. Это в классическом варианте исходя из названия, но в последнее время сюда активно подмешивают Filebeat, который идет как в в паре с Logstash, так и вместо него.
Подробное описание работы этих компонентов не планировалось в рамках данной статьи. Интересующая информация по стеку очень хорошо представлена на официальном сайте, в т.ч. в виде подробной документации, а также в огромном количестве статей и публикаций. Именно по ним я поднимал весь стек пошагово. За основу была взята подробная инструкция здесь, ему помагал материал отсюда и отсюда. Каждый автор решал свою практичечкую задачу поэтому мне пришлось компилировать нужное по ходу. Обычно ELK разворачивают на одном сервере (как с SELKS), но я решил что это будет слишком просто, поэтому в моем полигоне Elasticsearch один хост, Kibana второй хост, и Logstash+FileBeat третий. До кластера руки не дошли, но я уверен, что это будет создать не так уж и трудно.
В ходе работ было проведено:
- установка Elasticsearch
- установка Kibana
- установка Logstash
- установка Filebeat для отправки логов в Logstash
- установка и настройка Winlogbeat
- установка плагина Filebeat для отправки netflow Cisco
- настройка безопасности и авторизация в Kibana (несколько вариантов)
- проксирование подключений к Kibana через Nginx
- автоматическая очистка индексов в elasticsearch.
А теперь мои шаги:
1) Проверить для всех хостов стека с Ubuntu
sudo timedatectl set-timezone Europe/Kiev
sudo apt-get install --reinstall systemd
2) Установить для всех хостов ELK стека
sudo apt-get install apt-transport-https
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
# Также ставим JDK for Elasticsearch (Host0) & Logstash (Host1)
sudo apt install default-jdk -y
java -version
3) Настройка Elasticsearch (Host0, IP 192.168.1.11, port 9200,9300)
- /etc/elasticsearch/elasticsearch.yml:
network.host: 0.0.0.0 (or 192.168.1.11)
http.port: 9200
transport.host: localhost
transport.tcp.port: 9300






