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