Appearance
Настройка отправки журналов (Syslog) в подсистему ЖУРНАЛЛИСТ
Подсистема ЖУРНАЛЛИСТ поддерживает прием сообщений по протоколу Syslog (UDP/TCP) и может выступать централизованным узлом сбора событий от различных систем.
По умолчанию:
- UDP: порт 514
- TCP: порт 514 (или иной, заданный в конфигурации)
Общие параметры
При настройке указываются:
- адрес сервера ЖУРНАЛЛИСТ
- порт (UDP или TCP)
- формат сообщений (RFC3164 / RFC5424)
Пример:
<PRI>timestamp hostname application: messageLinux (rsyslog)
Debian / Ubuntu
Файл конфигурации:
/etc/rsyslog.d/90-journalist.confПример (UDP):
*.* @journalist-server:514Пример (TCP):
*.* @@journalist-server:514Перезапуск:
systemctl restart rsyslogRHEL / CentOS / Oracle Linux / RedOS / AltLinux / AstraLinux
Аналогично:
/etc/rsyslog.d/90-journalist.confПример:
*.* @@journalist-server:514Дополнительно (рекомендуется очередь):
*.* @@journalist-server:514;RSYSLOG_SyslogProtocol23FormatПерезапуск:
systemctl restart rsyslogИспользование syslog-ng (если установлен)
Файл:
/etc/syslog-ng/conf.d/journalist.confПример:
destination d_journalist {
tcp("journalist-server" port(514));
};
log {
source(src);
destination(d_journalist);
};Перезапуск:
systemctl restart syslog-ngAIX
Редактировать:
/etc/syslog.confПример:
*.info @journalist-serverПерезапуск:
refresh -s syslogdHP-UX
Файл:
/etc/syslog.confПример:
*.info @journalist-serverПерезапуск:
/sbin/init.d/syslogd stop
/sbin/init.d/syslogd startMS Windows
Вариант 1: NXLog
Конфигурация:
<Output journalist>
Module om_udp
Host journalist-server
Port 514
</Output>
<Route r>
Path in => journalist
</Route>Вариант 2: Winlogbeat (Elastic)
output.syslog:
hosts: ["journalist-server:514"]Отправка сообщений из скриптов
Bash
Через утилиту logger:
logger -n journalist-server -P 514 "Test message from bash"С указанием уровня:
logger -p user.warning -n journalist-server "Warning message"Python
Вариант 1: logging + SysLogHandler
python
import logging
import logging.handlers
logger = logging.getLogger()
logger.setLevel(logging.INFO)
handler = logging.handlers.SysLogHandler(address=("journalist-server", 514))
logger.addHandler(handler)
logger.info("Test message from Python")Вариант 2: отправка UDP напрямую
python
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
message = "<14>Test syslog message"
sock.sendto(message.encode(), ("journalist-server", 514))Рекомендации
- использовать TCP для надежной доставки
- применять очереди в rsyslog/syslog-ng
- разделять потоки по facility / severity
- контролировать объем отправляемых данных
Проверка работоспособности
Отправка тестового сообщения:
logger -n journalist-server "TEST MESSAGE"Проверка:
- наличие события в интерфейсе ЖУРНАЛЛИСТ
- корректность полей (host, program, severity)