Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

При установке SoftWLC на ОС  Astra Linux 1.7.4 использовать rsyslog нельзя, т.к. производитель ОС отказался от его использования. Официальная информация.

Таким образом вместо rsyslog потребуется установить и сконфигурировать пакет syslog-ng. При выполнении установки скриптом установщиком данное действие производиться автоматически с учетом типа ОС. При многохостовой или ручной установке потребуется выполнить установку и настройку сервиса вручную.

Способ запуска/остановки

ДействиеКомандаОтвет
Проверка состоянияsystemctl status syslog-ng

Сервис запущен

Active: active (running)

Сервис не запущен

Active: inactive (dead)

Остановка сервисаsystemctl stop syslog-ng

Сервис успешно остановлен

Active: inactive (dead)

Запуск сервисаsystemctl start syslog-ng

Сервис успешно запущен

Active: active (running)

Перезапуск сервисаsystemctl restart syslog-ng

Сервис успешно перезапущен

Active: active (running)

Конфигурация

Для работы требуются пакеты пакеты syslog-ng и syslog-ng-mod-sql. При однохостовой инсталяции устанавливаются скриптом хэлпером.

При многохостовой требуется установить самостоятельно. В многохостовой инсталяции как правило устанавливается на сервер с EMS, но при необходимости может быть расположен на любом сервере.

Установка пакетов

sudo apt update
sudo apt install syslog-ng syslog-ng-mod-sql

Создание файла конфигурации

Файл конфигурации /etc/syslog-ng/conf.d/10-mysql.conf  необходимо создать, разрешить прием сообщений от точек доступа и настроить правило приема и обработки сообщений:

/etc/syslog-ng/conf.d/10-mysql.conf
### Configuration file for syslog-ng-mod-sql
### Changes are preserved
source src_rem { udp(port(514));
            tcp(port(514)); };
destination d_mysql {
            program("/usr/bin/mysql --user=javauser --password='javapassword' --host=127.0.0.1 --port=6033 Syslog < /var/log/mysql.pipe");
            pipe ("/var/log/mysql.pipe"
            template("insert into SystemEvents (Message, Facility,FromHost, FromHostIp, Priority, DeviceReportedTime,
            ReceivedAt, InfoUnitID, SysLogTag) values ('$MSGONLY', $FACILITY_NUM, '$HOST_FROM', INET_ATON('$SOURCEIP'),
            $PRI, '$S_YEAR-$S_MONTH-$S_DAY $S_HOUR:$S_MIN:$S_SEC', '$R_YEAR-$R_MONTH-$R_DAY $R_HOUR:$R_MIN:$R_SEC',
            1, '$TAGS');")
            template-escape(yes)); };
log { source(src_rem); destination(d_mysql); };

Создание файла конфигурации systemd

При взаимодействии с БД MySQL сервисом создается файл /var/log/mysql.pipe . Данный файл создается только после отправки хотя бы одного сообщения в БД mysql, до этого сервис будет спамить в лог сообщениями об  ошибке из-за отсутствия данного файла. Поэтому в конфигурацию сервиса необходимо добавить отправку хотя бы одного сообщения после перезапуска сервиса, что выполняется средствами systemd.

Создать папку и файл конфигурации /etc/systemd/system/syslog-ng.service.d/99-syslog-ng.conf

/etc/systemd/system/syslog-ng.service.d/99-syslog-ng.conf
[Service]
ExecStartPost=logger --server 127.0.0.1 "Start logger"

Перезапуск сервиса

Выполнить команду

sudo systemctl daemon-reload

Перезапустить сервис

sudo systemctl restart syslog-ng

Проверка работы

Передать в лог информацию от "локального" пользователя:

logger "user log local 5"

Информация должны быть зафиксирована в файле журнала /var/log/syslog и не зафиксирована в таблице Syslog.SystemEvents.

Передать лог с удаленного сервера:

logger --server "<IP-адрес сервера приемника>" "user log remote 4"

Информация должны быть зафиксирована в таблице Syslog.SystemEvents и отсутствовать файлах syslog.


Докеризация

Имеется возможность запустить сервис syslog-ng в Docker-контейнере. Для этого необходимо создать файл с настройками docker-compose.yml  и .env следующего содержания:

docker-compose.yml
version: "3"

services: 
	eltex-syslog-ng:
    container_name: eltex-syslog-ng
    image: ${ELTEX_HUB}/eltex-syslog-ng:${SWLC_VERSION}
    restart: unless-stopped
    ports:
      - "514:514/tcp"
      - "514:514/udp"
    env_file:
      - environment/eltex-syslog-ng.env


.env
ELTEX_HUB=hub.eltex-co.ru/softwlc
TZ=Europe/Moscow
DB_USER=${MYSQL_USER}
DB_PASSWORD=${MYSQL_PASSWORD}
DB_HOST=eltex-mysql



  • Нет меток