Skip to content

Настройка отправки журналов (Syslog) в подсистему ЖУРНАЛЛИСТ

Подсистема ЖУРНАЛЛИСТ поддерживает прием сообщений по протоколу Syslog (UDP/TCP) и может выступать централизованным узлом сбора событий от различных систем.

По умолчанию:

  • UDP: порт 514
  • TCP: порт 514 (или иной, заданный в конфигурации)

Общие параметры

При настройке указываются:

  • адрес сервера ЖУРНАЛЛИСТ
  • порт (UDP или TCP)
  • формат сообщений (RFC3164 / RFC5424)

Пример:

<PRI>timestamp hostname application: message

Linux (rsyslog)

Debian / Ubuntu

Файл конфигурации:

/etc/rsyslog.d/90-journalist.conf

Пример (UDP):

*.* @journalist-server:514

Пример (TCP):

*.* @@journalist-server:514

Перезапуск:

systemctl restart rsyslog

RHEL / 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-ng

AIX

Редактировать:

/etc/syslog.conf

Пример:

*.info @journalist-server

Перезапуск:

refresh -s syslogd

HP-UX

Файл:

/etc/syslog.conf

Пример:

*.info @journalist-server

Перезапуск:

/sbin/init.d/syslogd stop
/sbin/init.d/syslogd start

MS 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)