Graylog2: сбор логов из Squid3 и анализ данных в Grafana
Общая
В статье рассматривается возможность сбора логов 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
, где будут отображаться входящие сообщения. Для удобства отслеживания входящих сообщений в верхней части окна есть кнопка включения автообновления.
https://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
. Если все верно то ошибок быть не должно.
https://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
.
https://itcrowd.top/graylog-squid-grafana#sigProIdba2e4253f5
Если у вас достаточное количество пользователей использует доступ в интернет через Squid прокси то данные наполнятся быстро и панель начнет показывать статистику:
https://itcrowd.top/graylog-squid-grafana#sigProIdbb923f4285
- Просмотров: 17740