Download PDF
Download page Настройка узла «Ретранслятора».
Настройка узла «Ретранслятора»
Настройка узла «Ретранслятора»
Для централизованного сбора событий в «Хранилище журналов» необходимо настроить отдельный узел с установленным ПО Fluentd и СУБД PostgreSQL, выступающей в качестве «Хранилища журналов» (в общем случае данные компоненты могут устанавливаться на отдельный узел, но в рамках настоящей процедуры этот вариант не рассматривается). Для этого на узле «Ретранслятора» нужно создать и настроить БД «Хранилища журналов»:
- переключиться на пользователя
postgres
:
sudo su postgres
- запустить терминальный клиент СУБД PostgreSQL:
psql
Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки postgres=#
, необходимо вместо «su postgres
» использовать конструкцию «su - postgres
». Если приглашение postgres=#
появилось, то сообщение об ошибке можно проингорировать.
- используя интерактивный интерфейс терминального клиента СУБД, создать БД
fluentd_logs_db
(символ ; в конце строки при работе с интерактивным интерфейсом обязателен):
postgres=# CREATE DATABASE fluentd_logs_db;
- создать пользователя
fluentd
с паролемtufotukur
для дальнейшего подключения к БД:
postgres=# CREATE USER fluentd WITH PASSWORD 'tufotukur';
В приведенной команде имя пользователя и пароль используются в качестве примера. Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы $!@%^&#_-=+~`;:.,?()*{}[]\|/.
- назначить права по использованию БД
fluentd_logs_db
созданному пользователюfluentd
:
postgres=# GRANT ALL PRIVILEGES ON DATABASE fluentd_logs_db TO fluentd;
- подключиться к БД
fluentd_logs_db
:
postgres=# \c fluentd_logs_db
- создать таблицу
logs
:
При использовании СУБД PostgreSQL версии выше 11 могут понадобиться дополнительные права для схемы public
. Для предоставления прав нужно выполнить:
postgres=# GRANT CREATE ON SCHEMA public TO fluentd;
postgres=# GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO fluentd;
fluentd_logs_db=# CREATE TABLE logs (
id SERIAL PRIMARY KEY,
time timestamp with time zone NOT NULL,
source VARCHAR(255) NOT NULL,
"sourceType" VARCHAR(255) NOT NULL,
loglevel VARCHAR(255) NOT NULL,
module VARCHAR(255) NOT NULL,
message TEXT NOT NULL
);
- назначить права по использованию таблицы пользователю
fluentd
:
fluentd_logs_db=# GRANT ALL PRIVILEGES ON TABLE logs TO fluentd;
выйти из интерактивного интерфейса терминального клиента СУБД:
postgres=# \q
- выйти из сеанса пользователя
postgres
:
exit
После создания БД нужно создать и настроить «Ретранслятор»:
- установить ПО Fluentd на узел «Ретранслятора» согласно документации https://docs.fluentd.org/;
- установить плагины fluent-plugin-sql и pg, доступ по ссылке
https://github.com/fluent/fluent-plugin-sql
; - отредактировать файл
/etc/fluent/fluentd.conf
:
Здесь и далее примеры IP-адресов приведены в соответствии с RFC 5737. Указанные IP-адреса должны быть заменены на актуальные, используемые согласно схеме адресации, принятой в инфраструктуре организации.
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<system>
log_level debug
</system>
<match termidesk.*>
@type sql
host 192.0.2.33
port 5433
database fluentd_logs_db
adapter postgresql
username fluentd
password tufotukur
<table>
logs
column_mapping "time:time,source:source,sourceType:sourceType,loglevel:loglevel,module:module,message:message"
</table>
</match>
Перечень параметров, задающихся через файл, приведен в таблице.
Параметр | Значение по умолчанию | Описание | |
---|---|---|---|
Секция | |||
@type | forward | Параметр менять не рекомендуется | |
port | 24224 | Порт прослушивания входящих событий | |
bind | 0.0.0.0 | IP-адрес прослушивания входящих событий | |
Секция | |||
log_level | debug | Категория служебных сообщений для журналирования событий ПО Fluentd. Возможные значения:
| |
Секция | |||
@type | sql | Параметр менять не рекомендуется | |
host | 192.0.2.33 | IP-адрес или полное доменное имя БД для сохранения событий | |
port | 5433 | Порт подключения к БД для сохранения событий | |
database | fluentd_logs_db | Наименование БД для сохранения событий | |
adapter | postgresql | Параметр изменять не рекомендуется | |
username | fluentd | Имя пользователя БД для подключения к ней | |
password | tufotukur | Пароль для подключения к БД | |
Секция | |||
logs | не задано | Наименование таблицы БД для сохранения событий | |
column_mapping | "time:time, source:source, sourceType:sourceType, loglevel:loglevel, module:module, message:message" | Параметр распределяет значения событий, полученных от фермы Termidesk в поля таблицы «logs» |