В больших и высоконагруженных системах анализ журнальных файлов (логов) представляется достаточно сложным делом, так как генерируется большой объем информации, иногда также и разбросанной по различным местам. Для облегчения сбора и анализа логов таких систем существуют различные продукты, одним из примеров которых является и стек ELК. Это три продукта, логически связанные между собой:
Эти продукты не входят в стандартные репозитории ОС, поэтому, чтобы не ставить их вручную из исходных кодов, предварительно скачаем и установим платформу JAVA используя пакетный менеджер yum. Скачать Java можно например отсюда. Необходимо выбрать версию для нашей ОС и скачать её, нажав соответствующую кнопку. Установка выполняется также через Yum. Также на сайте справа есть инструкция по установке Java.
- Поисковый движок ElasticSearch для анализа логов;
- Logstash - демон пересылки логов, позволяет перенаправлять различные журналы для дальнейшего анализа, может фильтровать эти журналы по определенным признакам;
- Kibana - интерфейс для анализа содержимого лог-файлов и наглядного представления полученной информации.
Скачиваем и добавляем ключ репозитория
После этого можно начинать настройку. Рассмотрим для примера настройку анализа файлов журналов Nginx локального сервера (на котором установлен стек ELK).
Раскомментируем в файле /etc/elasticsearch/elasticsearch.yml строчки network.host и http.port, заповнив их значениями указанными ниже. Они указывают с каких хостов и по какому порту elasticsearch будет принимать соединения. В нашем случае localhost - то есть этот же компьютер.
После этого стартуем сервис elasticsearch и включаем его автозапуск.
Теперь создадим правило для пересылки логов c локального сервера для logstash.
Любая конфигурация logstash содержит эти разделы (могут быть и другие):
- input - какие данные и где брать для анализа.. В данном случае это файл /var/log/nginx/access.log
- output - выходной раздел - место для отправки input- в данном случае принимающий демон на этой же машине.
- filter - фильтр input если какая-то часть данных не нужна для анализа.
Включаем logstash
Последним настраивается web-интерфейс kibana. В файле /etc/kibana/kibana.yml необходимо задать как-минимум адрес на котором будет доступна kibana, порт и url elasticsearch.
После этого можно запустить Kibana командой systemctl.
Теперь можно зайти в Kibana по указанному адресу и порту 5601. Firewall должен быть настроен на разрешение доступа к порту Кибана. http://78.140.223.147:5601