Конфигурация журналирования сервера
Параметры журналирования сервера системы Центральный Пульт задаются в файле /etc/saymon/logger.json.
Параметры журналирования
Ниже приведён пример настроек журналирования для сервера системы Центральный Пульт.
{
// Категории журнала
"categories": {
"Default": "Info"
},
// Каналы журналирования
"channels": {
// Канал 'default' предназначен для сообщений, которые не подходят к другим каналам (Общий канал)
"default": [
{
"type": "console",
"options": {
"level": "debug",
"stderrLevels": [
"error"
],
"colorize": false,
"prettyPrint": true
}
}
],
// Канал 'session' предназначен для сообщений о сессии пользователей (Частный канал)
"session": [
// Пример 1: отправка записей журнала на сервер по протоколу UDP
// {
// type: 'udp',
// options: {
// server: 'localhost:514'
// }
// },
//
// Пример 2: отправка записей журнала на сервер Kafka
// {
// type: 'kafka',
// options: {
// server: 'localhost:9092',
// topic: 'LOG_SESSION'
// }
// }
],
// Канал 'audit' предназначен для сообщений об изменении параметров системы (Частный канал)
"audit": [],
// Канал 'faults' предназначен для сообщений об ошибках при доступе к системе (Частный канал)
"faults": []
}
}
categories
{
"categories": {
"Default": "Info",
"MyActor": "Error",
"MyOtherActor": "Debug"
}
...
}
| Раздел/Параметр | Описание | ||
|---|---|---|---|
categories.<название-категории> |
Указание минимального уровня журналирования для указанной категории.
Возможные уровни журналирования:
|
channels
В этом разделе можно определить настройки каналов журналирования.
Журналирование в системе Центральный Пульт разделяет все записи журналов на каналы. Каждый канал представляет собой определённый способ обработки записей журналов.
Сообщения системы безопасности можно отправлять в разные каналы. Каждый канал может содержать несколько транспортных модулей (механизмов доставки в соответствующую систему обработки, например udp или kafka) для доставки сообщения одновременно в несколько систем.
Например, сообщения об ошибках можно отправлять в канал "faults", который будет их перенаправлять одновременно в консоль и во внешнюю систему (например в syslog сервер).
{
"channels": {
"faults": [
{
"type": "console",
"options": {
"level": "debug"
}
},
{
"type": "udp",
"options": {
"server": "localhost:514"
}
}
]
}
}
В системе определены 4 тематических канала:
-
session- информация об открытии/закрытии пользовательской сессии, -
audit- информация об изменениях в системе, -
faults- информация об ошибках при доступе к системе. -
default– канал для сообщений, которые не подходят в другие каналы,
По умолчанию, в системе определён только канал default. Этот канал отправляет сообщения в консоль на сервере.
Все сообщения, отправленные в канал, который не был определён, игнорируются.
Для каждого канала можно определить несколько транспортных модулей для одновременной доставки сообщений в несколько систем хранения и обработки.
channels {
...
"session": [
// Отправка записей журнала на сервер через UDP
{
"type": "udp",
"options": {
"server": "localhost:514"
}
},
// Отправка записей журнала в Kafka
{
"type": "kafka",
"options": {
"server": "localhost:9092",
"topic": "LOG_SESSION"
}
}
],
...
}
По умолчанию, в системе определён канал default. Указывать его настройки в файле конфигурации нужно только если требуется изменить его стандартное поведение (отправка сообщений в консоль на сервере).
|
| Раздел/Параметр | Описание |
|---|---|
channels.<назвзание-канала>.type |
|
channels.<назвзание-канала>.options |
Настройки транспортного модуля. Зависят от его типа. |
common
"common": {
"resolveRemoteIp": true
},
| Раздел/Параметр | Описание | ||
|---|---|---|---|
common.resolveRemoteIp |
Если выставить этот параметр в значение
|
console
| Раздел/Параметр | Описание |
|---|---|
options.level |
Минимальный уровень сообщений, которые выводятся на консоль. По умолчанию |
options.stderrLevels |
Список уровней журналирования, сообщения на которых нужно выводить в stderr, а не в stdout. Например |
options.colorize |
Выделять уровни записей журнала цветом. По умолчанию |
options.prettyPrint |
Форматировать сообщения в консоли. По умолчанию |
Параметры ротации логов
Сервер системы Центральный Пульт производит ротацию логов с помощью logrotate.
Конфигурация ротации журналов сервера системы Центральный Пульт выполняется в файле /etc/logrotate.d/saymon.
Конфигурация logrotate имеет следующую структуру:
<путь до файлов журнала> {
параметры конфигурации
}
Ниже приведена стандартная конфигурация logrotate на сервере для системы Центральный Пульт и MongoDB.
-
Журнал системы Центральный Пульт
-
Журнал MongoDB
/var/log/saymon/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}
/var/log/mongodb/*.log {
daily
rotate 30
compress
dateext
missingok
notifempty
sharedscripts
copytruncate
}
В таблице указаны используемые параметры logrotate:
| Параметр | Описание |
|---|---|
daily |
Ежедневная ротация. |
missingok |
Продолжать ротацию без ошибки, если отсутствует один из файлов. |
rotate N |
Длительность хранения файлов в днях. |
compress |
Архивация файлов в формат |
delaycompress |
Не архивировать последний журнал до следующего цикла ротации. |
notifempty |
Не производить ротацию журнала, если он пуст. |
copytruncate |
Писать журнал в один файл, урезая его после каждого шага ротации. |
sharedscripts |
Выполнять скрипты |