Хранение логов (Elastic Stack)¶
Для централизованного сбора и анализа логов системы используются инструменты Elastic Stack.
Схема сбора логов:

Filebeat — служба, считывающая логи из файлов
Logstash — приложение первичной обработки данных
Elasticsearch — база данных с поисковым движком
Kibana — web-интерфейс
Конфигурация Logstash, Elasticsearch, Kibana¶
На данный момент приложения запущены на сервере 172.28.1.57
http://172.28.1.57:9200 - API Elasticsearch
http://172.28.1.57:5601 - Kibana
Приложения запускаются сервисом Docker Compose.
Структура каталогов и файлов:
Для запуска на новом сервере:
1) установить Docker Compose
2) создать папки, скоприровать файлы и выдать права доступа к ним
docker-compose.yml
- файл конфигурации Docker Compose
postgresql-42.2.6.jar
- jdbc драйвер postgresql, необходим для плагина импорта данных из базы Оркестратора
/data - каталог данных Elasticsearch
Создать каталог, установить принадлежность группе 1000 и выдать полные права:
sudo mkdir data
sudo chmod g+rwx data
sudo chgrp 1000 data
В файле sysctl.conf прописать параметр ядра vm.max_map_count=262144
$ grep vm.max_map_count /etc/sysctl.conf vm.max_map_count=262144
Информация по запуску Elasticsearch в докере: https://www.elastic.co/guide/en/elasticsearch/reference/7.3/docker.html
/settings - содержит конфигурационные файлы Logstash:
logstash.yml
logstash.yml - конфигурация Logstash
pipelines.yml
- конфигурация пайпланов
filebeat.config
- конфигурация пайплайна сбора данных из лог-файлов
postgres.config
- конфигурация пайплайна импорта данных из базы Оркестратора
.logstash_jdbc_last_run
- файл, содержащий дату последнего изменения базы Оркестратора (создастся автоматически)
startup.options
- стартовые параметры запуска
jvm.options
- конфигурация JVM
log4j2.properties
- параметры логгирования
Подробнее о конфигурации Logstash: https://www.elastic.co/guide/en/logstash/current/configuration.html
Примечание
При запуске на новом сервере нужно исправить адрес коннекта к базе в файле postgres.config
Служба Filebeat¶
На данный момент служба запущена на машине с Win10 - 172.28.0.134
Агенты Filebeat нужно запускать на тех машинах, с которых планируется собирать логи.
На Win10 агент запускается следующим образом:
1) скачать zip-архив с официального сайта, распаковать в нужную директорию
2) установить filebeat как службу
Выполнить в PowerShell:
PS > cd 'C:\Program Files\Filebeat'
PS C:\Program Files\Filebeat> .\install-service-filebeat.ps1
Предварительно исправить пути в файле install-service-filebeat.ps1
3) исправить конфигурационный файл filebeat.yml
В нем нужно указать директории, откуда считывать логи, паттерн начала новой записи, указать logstash в выходном канале.
Пример файла: filebeat.yml
4) запустить службу через «Панель управления»
Подробная инструкция по запуску и конфигурации: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
Kibana - инструмент визуализации данных¶
Чтобы визуализировать сохраненные данные, нужно указать шаблон индекса.
Для этого нужно в кибане открыть вкладку Management и добавить Index Pattern вида filebeat-7.2.0-*
После этого во вкладке Discover можно просматривать сохраненные записи.
В дальнейшем эти данные можно визуализировать в виде диаграмм и объединять их в dashboards.
Перенос сохраненных визуализаций и дашбордов из одного экземпляра кибаны в другой:
Экспорт: https://www.elastic.co/guide/en/kibana/7.x/dashboard-api-export.html
Импорт: https://www.elastic.co/guide/en/kibana/7.x/dashboard-import-api.html
После импорта данных нужно будет исправить идентификаторы Index Pattern у всех визуализаций. Веб интерфейс сам предложит поменять Index Pattern при открытии визуализации.
Узнать идентификаторы Index Pattern-ов можно запросом:
GET .kibana/_search?q=type:index-pattern&size=100
Рекомендации для сохранения логов в файлы¶
- важные для сбора лог-файлы нужно хранить в конкретной директории;
- другие логи нужно вынести в другую папку или их расширение должно отличаться;
- расширение лог-файлов не должно удаляться или изменяться;
- время в логах писать по UTC.