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

Main

Оценка: 100% - 3 Голосов

Общая

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

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

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

Установка Squid рассмотрена в материале Настраиваем Proxy server для HTTP, HTTPS, SOCKS5

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

 

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

Устанавливаем rsyslog:


apt update
apt upgrade
apt install rsyslog

Редактируем файл конфигурации:


nano /etc/rsyslog.conf

Указываем папку с дополнительными файлами конфигурации - раскоментируем строку:


$IncludeConfig /etc/rsyslog.d/*.conf

Создаем дополнительную конфигурацию для отсылки лог файла Squid на сервер Graylog:


nano /etc/rsyslog.d/60-squid.conf

Добавляем в файл, указав IP-адрес Graylog сервера, а так же проверяем путь до log-файла, если он не стандартный:


nano /etc/rsyslog.d/60-squid.conf
# Load Modules
module(load="imfile")
#
# rsyslog Input Modules
input(type="imfile"
File="/var/log/squid/access.log"
StateFile="/var/spool/rsyslog/squidstatefile"
Tag="squid-access"
Severity="info"
Facility="local7"
ruleset="SquidForward")
#
# rsyslog RuleSets
ruleset(name="SquidForward") {
action(type="omfwd"
Target="IP-адрес сервера Graylog"
Port="19302"
Protocol="tcp"
template="RSYSLOG_SyslogProtocol23Format")
}

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


service rsyslog restart

 

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

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

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

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

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

 

Настройка 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-squid-grafana#sigProId4775fa3171

 

Создаем Dashboard в Grafana.

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

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


grafana-cli plugins install briangann-datatable-panel
grafana-cli plugins install grafana-piechart-panel
grafana-cli plugins install grafana-worldmap-panel

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


service grafana-server restart

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

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

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

В поле Squid-Graylog (Select a Elasticsearch data source) указываем созданное выше соединение с базой Elasticsearch.

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

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

Если у вас достаточное количество пользователей использует доступ в интернет через Squid прокси то данные наполнятся быстро и панель начнет показывать статистику:

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

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


Logo