LibreNMS 啟用 Syslog 看記錄
除了用 Graylog
服務來收集記錄,我們可以使用 LibreNMS
來收集資訊
110.10.04 在 Debian 版本上遇到的問題
運行環境
系統版本:CentOS 7、Debian 10LibreNMS 1.59-26 服務版本:LibreNMS 21.9.0-54
安裝過程
首先安裝 syslog-ng
服務
- CentOS / RedHat
yum install syslog-ng -y
- Debian / Ubuntu
apt install syslog-ng -y
- 安裝完之後將
syslog-ng.conf
設定檔備份一份,再更換新的設定檔,這個設定檔是LibreNMS
提供的
mv /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak
vim /etc/syslog-ng/syslog-ng.conf
- 在新檔裡面貼上官方提供的設定
@version:3.5
@include "scl.conf"
# syslog-ng configuration file.
#
# This should behave pretty much like the original syslog on RedHat. But
# it could be configured a lot smarter.
#
# See syslog-ng(8) and syslog-ng.conf(5) for more information.
#
# Note: it also sources additional configuration files (*.conf)
# located in /etc/syslog-ng/conf.d/
options {
chain_hostnames(off);
flush_lines(0);
use_dns(no);
use_fqdn(no);
owner("root");
group("adm");
perm(0640);
stats_freq(0);
bad_hostname("^gconfd$");
};
source s_sys {
system();
internal();
};
source s_net {
tcp(port(514) flags(syslog-protocol));
udp(port(514) flags(syslog-protocol));
};
########################
# Destinations
########################
destination d_librenms {
program("/opt/librenms/syslog.php" template ("$HOST||$FACILITY||$PRIORITY||$LEVEL||$TAG||$R_YEAR-$R_MONTH-$R_DAY $R_HOUR:$R_MIN:$R_SEC||$MSG||$PROGRAM\n") template-escape(yes));
};
filter f_kernel { facility(kern); };
filter f_default { level(info..emerg) and
not (facility(mail)
or facility(authpriv)
or facility(cron)); };
filter f_auth { facility(authpriv); };
filter f_mail { facility(mail); };
filter f_emergency { level(emerg); };
filter f_news { facility(uucp) or
(facility(news)
and level(crit..emerg)); };
filter f_boot { facility(local7); };
filter f_cron { facility(cron); };
########################
# Log paths
########################
log {
source(s_net);
source(s_sys);
destination(d_librenms);
};
# Source additional configuration files (.conf extension only)
@include "/etc/syslog-ng/conf.d/*.conf"
# vim:ft=syslog-ng:ai:si:ts=4:sw=4:et:
- 重啟服務
systemctl restart syslog-ng ; systemctl enable syslog-ng
- 再到
LibreNMS
設定檔啟動該功能vim /opt/librenms/config.php
$config['enable_syslog'] = 1;
- 設定
rsyslog.conf
設定,將前面的註解刪掉
vim /etc/rsyslog.conf
修改前
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
修改後
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
- 重啟服務
systemctl restart rsyslog
- 清除所收集到的資料,在
LibreNMS
設定檔裡新增一行,可以自行設定幾天之後會刪除掉記錄。
$config['syslog_purge'] = 30;
補充說明
BUBU 在使用 Debian 要啟用 Syslog
剛好要重啟 rsyslog
服務出現報錯下面的錯誤,會造成這樣子的原因是我們剛剛有安裝 syslog-ng
關係造成的
Failed to restart rsyslog.service: Unit rsyslog.service is masked.
只先取消 rsyslog
服務再重啟就可以正常
systemctl unmask rsyslog.service
重啟服務
systemctl restart rsyslog