Graylog2: сбор логов из Nginx и анализ данных в Grafana

Main

Оценка: 99.5% - 4 Голосов

Общая

В статье рассматривается возможность сбора логов Nginx в системе Graylog2 а так-же их анализ в Grafana.

Конфигурация выполняется в ОС Debian 9.5

Версия Nginx: nginx/1.12.2

Установка Graylog2 рассмотрена в материале Установка Graylog2 в Debian

Установка Grafana рассмотрена в материале Icinga2 + Influx + Grafana

Установка Nginx и настройка проксирования: Nginx Reverse Proxy + Apache2

 

Настраиваем Nginx сервер для отправки логов на Graylog.

Nginx будет сам отправлять логин а Gryalog.


nano /etc/nginx/nginx.conf

Прежнее место (/var/log/nginx/) и конфигурацию логов можно оставить как дополнительное место сбора логов.

В разделе http  добавляем следующее:


log_format graylog2_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $
access_log syslog:server=Graylog IP-Address:11004 graylog2_format;
error_log syslog:server=Graylog IP-Address:11005;

Перезапускаем Nginx:


service niginx restart

Подготовка Graylog к приему логов с Nginx.

Для этого необходимо установить дополнение из магазина Graylog доступный для загрузки тут.

Далее установим загруженное дополнение - в меню выбираем Systems - Content packs, выбрать Import content pack где и загрузить файл JSON. После чего там же, в Content packs, появится новый пункт Nginx Web Server, который необходимо выбрать и нажать Apply content.

Далее в меню выбрать Systems - Inputs, убедиться, что соединение работает и нажать Show received messages, где будут отображаться входящие сообщения. Для удобства отслеживания входящих сообщений в верхней части окна есть кнопка включения автообновления.

View the embedded image gallery online at:
http://itcrowd.top/graylog-nginx-grafana#sigProId4148fe2965

Настройка Elasticsearch.

В конце конфигурационного файла укажем новую величину для количества условий запроса, так как стандартное, в 1000 условий, может быть недостаточно:


nano /etc/elasticsearch/elasticsearch.yml


indices.query.bool.max_clause_count: 10240

Перезапускаем Elasticsearch


service elasticsearch restart

Что делать если Grafana и Graylog находятся на разных серверах.

1. Изменить настройки  для доступа с других устройств.


nano /etc/elasticsearch/elasticsearch.yml

В разделе Network указать:


network.host: IP-Адрес сервеа Elasticsearch\Graylog
http.port: 9200

2. Для успешной работы Graylog необходимо ввести в конфигурацию указанный выше адрес и порт доступа к Elasticsearch:


nano /etc/graylog/server/server.conf


elasticsearch_hosts = http://IP-Адрес:9200

Перезапускаем Graylog и Elasticsearch:


service elasticsearch restart
service graylog-server restart

Настройка Grafana.

Настройка доступа к Elasticsearch:

Для этого открываем веб-интерфейс Grafana, выбираем Configuration - Data Sources и нажимаем Add data source.

Вводим имя соединения в поле Name;

В поле Type выбираем Elasticsearch;

В поле URL вводим адрес сервера Elasticsearch;

В поле Time field name вводим: timestamp;

В поле Version выбираем 5.x;

Нажимаем Save & Test. Если все верно то ошибок быть не должно.

View the embedded image gallery online at:
http://itcrowd.top/graylog-nginx-grafana#sigProId4775fa3171

Создаем Dashboard в Grafana.

Готовый Dashboard доступен на официальном сайте Grafana и доступен для загрузки тут.

Перед его добавлением установим необходимые дополнения для Grafana:


grafana-cli plugins install grafana-piechart-panel

Перезапустим сервер Grafana:


service grafana-server restart

Добавляем json файл панели в Grafana

Выбираем Dashboards — Manage, нажимаем Import — Upload .json File и импортируем загруженный файл, указывая:

В поле Name указываем желаемое имя панели;

В поле Graylog Elasticsearch указываем созданное выше соединение с базой Elasticsearch.

И нажимаем кнопку Import.

View the embedded image gallery online at:
http://itcrowd.top/graylog-nginx-grafana#sigProIdd1c6ec44c0

Графики начнут заполняться при обращениях к Nginx:

View the embedded image gallery online at:
http://itcrowd.top/graylog-nginx-grafana#sigProId31fd433314

 

Добавить комментарий


Logo