============================== Хранение логов (Elastic Stack) ============================== Для централизованного сбора и анализа логов системы используются инструменты Elastic Stack. Схема сбора логов: .. image:: images/elk_architecture_2.png *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. Структура каталогов и файлов: | /opt | └── elk | ├── docker-compose.yml | ├── postgresql-42.2.6.jar | ├── data | └── settings | ├── logstash.yml | ├── pipelines.yml | ├── filebeat.config | ├── postgres.config | ├── .logstash_jdbc_last_run | ├── startup.options | ├── jvm.options | └── log4j2.properties | **Для запуска на новом сервере:** 1\) установить Docker Compose 2\) создать папки, скоприровать файлы и выдать права доступа к ним :download:`docker-compose.yml ` - файл конфигурации Docker Compose :download:`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: :download:`logstash.yml ` logstash.yml - конфигурация Logstash :download:`pipelines.yml ` - конфигурация пайпланов :download:`filebeat.config ` - конфигурация пайплайна сбора данных из лог-файлов :download:`postgres.config ` - конфигурация пайплайна импорта данных из базы Оркестратора :download:`.logstash_jdbc_last_run ` - файл, содержащий дату последнего изменения базы Оркестратора (создастся автоматически) :download:`startup.options ` - стартовые параметры запуска :download:`jvm.options ` - конфигурация JVM :download:`log4j2.properties ` - параметры логгирования Подробнее о конфигурации Logstash: https://www.elastic.co/guide/en/logstash/current/configuration.html .. admonition:: Примечание При запуске на новом сервере нужно исправить адрес коннекта к базе в файле 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 в выходном канале. Пример файла: :download:`filebeat.yml ` 4\) запустить службу через "Панель управления" Подробная инструкция по запуску и конфигурации: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html Kibana - инструмент визуализации данных --------------------------------------- http://172.28.1.120:5601 Чтобы визуализировать сохраненные данные, нужно указать шаблон индекса. Для этого нужно в кибане открыть вкладку 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`` Рекомендации для сохранения логов в файлы ----------------------------------------- 1. важные для сбора лог-файлы нужно хранить в конкретной директории; 2. другие логи нужно вынести в другую папку или их расширение должно отличаться; 3. расширение лог-файлов не должно удаляться или изменяться; 4. время в логах писать по UTC.