Настройка системы ELKF — Elasticsearch,kibana,logstash,td-agent(fluentd)

Автор:human

Настройка системы ELKF — Elasticsearch,kibana,logstash,td-agent(fluentd)

Содержание

  • 1. Устанавливаем агентов на клиенты
  • 2.Настройка сервера сбора,обработки и отображения логов
  • 3.Настрока системы сбора в связке с syslog-ng logstash elasticsearch
  • 4.Примеры настройки сбора и парсинга логов
  • 4.1.Настройка td-agent на примере парсинга логов nginx access и error логов
  • 4.2 Настройка парсинга логов postgresql и отправка их в базу postgresql

Установка комбайна по сбору логов — Elastisearch, td-agent, logstash, packetbeat, filebeat,metricbeat

Все махинации подходят для ubuntu 16.04 и debian8,9

Сервер логов — ip 10.12.1.72, система ubuntu 16.04

1. Устанавливаем агентов на клиенты

Меняем конфиги агентов отправки логов на удаленный сервер

Редактируем файл filebeat

Редактируем файл metricbeat

Перезапускаем сервисы

2.Настройка сервера сбора,обработки и отображения логов

Устанавливаем ПО

Устанавливаем td-agent

Установка Java

Установка logstash kibana elasticsearch

Устанавливае лимиты памяти

Настроим sysctl для высокой нагрузки

Настраиваем elasticsearch

Правим конфиги

Устанавливам пренастроенные индексы

Должны увидеть

Настройка kibana

Загружаем дашбоарды

Настраиваем logstash

Редактируем конфиг приема логов на порт 5044

Включаем и перезапускаем логстэш

3.Настрока системы сбора в связке с syslog-ng logstash elasticsearch

3.1 Настройка клиента для отправки логов в лог агрегатор

Редактируем конфиги syslogng

Настройка логротейт

3.2 Настройка сервера Logstash, Elasticsearch, and Kibana для принятия логов из syslog-ng

Проделываем тоже самое что и выше — проблем не будет

Настройка logstash

Настройка парсинга логов

астройка фильтра логов

You must download the Maxmind GeoIP database and place the file in /opt/logstash.

Добавим шаблон elasticsearch-template.json в /opt/logstash

4.1 Примеры настройки логов

4.1.Настройка td-agent на примере парсинга логов nginx access и error логов

На сервере для приема логов

На агенте для отправки логов nginx

Настраиваем логи в nginx

Настравиваем агента отправки

Отредактируем скрипт запуска агента — поменяем пользователя на root

Релоадим systemctl

Если у вас hiload система то добавим крон авточистки логов и перезапуска td-agent, иначе у вас сильно будет увеличиваться нагрузка на процессор

Добавим в крон

Теперь создадим сам крон

Таким образом каждые 2 часа очищаем логи и перезапускаем td-agent и переинициализируем логи nginx

Дополнительные материалы

Настройка packetbeat https://www.elastic.co/guide/en/beats/packetbeat/current/configuration-interfaces.html#_snaplen
Syslog ng + ELK http://operational.io/elk-stack-for-network-operations-reloaded/

4.2 Настройка парсинга логов postgresql через td-agent и отправка их в базу postgresql. Запрос на долгие селекты из postgres

Настраиваем клиента — подготавливаем формат логов
Создаем каталог куда будем писать логи

chown -R postgres /var/log/postgresquerylog/

Редактируем postgresql.conf

Настройка td-agent на парсинг и отправку логов postgresql через td-agent
Ставим расширения

Редактируем конфиг td-agent на клиенте

nano /etc/td-agent/td-agent.conf

Настройка сервера на прием логов и отправку их в бд postgres

Создаем базу и таблицу в этой базе

CREATE DATABASE fluentd;
CREATE TABLE fluentd (tag Text, time Timestamptz, record Jsonb);

Ставим расширения

Может понадобиться библиотека lib-pg
Редактируем конфиг td-agent на клиенте

Стартуем td-agent

Запрос на отбор долгих селектов postgres

Об авторе

human administrator

    Оставить ответ

    Войти с помощью: 

     

    Яндекс.Метрика