В больших и высоконагруженных системах анализ журнальных файлов (логов) представляется достаточно сложным делом, так как генерируется большой объем информации, иногда также и разбросанной по различным местам. Для облегчения сбора и анализа логов таких систем существуют различные продукты, одним из примеров которых является и стек ELК.
- Поисковый движок ElasticSearch для анализа логов;
- Logstash - демон пересылки логов, позволяет перенаправлять различные журналы для дальнейшего анализа, может фильтровать эти журналы по определенным признакам;
- Kibana - интерфейс для анализа содержимого лог-файлов и наглядного представления полученной информации.
Обновим пакетную базу Debian используя apt-get update.
Предварительно установим платформу JAVA. Для Debian берём пакет openjdk и устанавливаем его через apt.
Также скачаем и установим apt-transport-https - это пакет, позволяющий подключать репозитории по протоколу https (обычно репозитории подключаются через http или ftp),
Скачаем или добавляем ключ репозитория,
Создадим файл с описанием репозитория (т.е сам репозиторий).
Затем обновим еще раз информацию из репозиториев, чтобы получить список доступных пакетов с учетом нового репозитория.
Установим интересующие нас пакеты.
После этого можно начинать настройку. Рассмотрим для примера настройку анализа файлов журналов локального сервера (на котором установлен стек ELK). Раскомментируем в файле /etc/elasticsearch/elasticsearch.yml строчки network.host и http.port и впишем нижеприведенные значения. Они указывают с каких хостов и по какому порту elasticsearch будет принимать соединения. В нашем случае localhost.
После этого запускаем elasticsearch и включаем его в автозагрузку.
Теперь создадим правило для обработки логов Squid локального сервера для logstash.
Каждый файл состоит как минимум из двух разделов.
- input - какие данные и где брать для анализа.. В данном случае это файл /var/log/messages и все файлы *.log из каталога /var/log
- output - куда пересылать данные - в данном случае это elasticsearch на localhost (т.е на этой же машине)
- filter необязательный раздел задающий правила фильтрации исходных данных раздела input
Теперь можно запустить logstash.
Последним настраивается web-интерфейс kibana. В файле /etc/kibana/kibana.yml необходимо задать как-минимум адрес на котором будет доступна kibana и url elasticsearch.
Теперь запустим Kibana и поместим ее в автозапуск.
Теперь можно зайти в Kibana по указанному адресу и порту 5601. Если необходим доступ снаружи, то в брандмауэре должны быть настроены разрешения на соединение с портом 5601. http://185.125.46.34:5601