CentOS7. Использование syslog-ng для отправки данных в базу REDIS
Устанавливаем REDIS:
# yum install redis
Запускаем сервис REDIS и включаем его в автозагрузку
# systemctl start redis.service
# systemctl enable redis
Удаляем сервис rsyslog, установленный по умолчанию и устанавливаем syslog-ng на сервер:
# yum -y remove rsyslog
# yum install syslog-ng
# yum install syslog-ng-redis
Редактируем конфигурации
# nano /etc/syslog-ng/syslog-ng.conf
Добавляем в конфиг перед строчкой
@include "/etc/syslog-ng/conf.d/*.conf" следующие директивы:
################### Настройки ELIS ##########################
source net { udp(ip(0.0.0.0) port(514)); };
destination d_elis {
redis(
host(127.0.0.1)
port(6379)
command("rpush" "elislogs" "${R_YEAR}-${R_MONTH}-${R_DAY} ${R_HOUR}:${R_MIN}:${R_SEC}|${HOST}|${PRIORITY}|${MSG}")
);
};
filter f_elis_10 {
netmask(10.0.0.0/8);
};
filter f_elis_172 {
netmask(172.16.0.0/12);
};
log { source(net); filter(f_elis_10); destination(d_elis); };
log { source(net); filter(f_elis_172); destination(d_elis); };
##############################################################
Запускаем syslog-ng и добавляем его в автозагрузку
# systemctl start syslog-ng.service
# systemctl enable syslog-ng.service
Все. Сервис syslog-ng работает на 514 порту и все пришедшие данные складываем в очередь ‘elislogs’ базы REDIS