一、syslog-ng:
全程 syslog-next-generation,syslogd的下一代,比syslogd 更好的网络支持,更加方便的配置。
- 5个配置项:
options{},全局设置。如options {
sync (0); //在写入磁盘之前保留多少行的日志输出队列,0为不缓存,每行日志都及时的输入到磁盘中。
log_fifo_size (2048);// sync 控制队列的最小值,log_fifo_size 控制最大值。sync为0需要及时输出不缓存,但当来不及及时输出时,会积压在队列中,如果消息大于log_fifo_size 则会丢失。
create_dirs (yes);// 是否根据需要自动创建目录
group (logs);//设置日志的owner,使非root用户也可以查看日志
dir_group (logs); //设置日志的owner,使非root用户也可以查看日志
perm (0640);//默认日志文件的权限设置
dir_perm (0750);//默认日志文件的权限设置
};
source{},信息来源, 来源可以是文件, 本地 sockets, 或者远程主机。如来自系统内部的log:source s_src { system(); internal(); }; //。如来自远程机器的log:source s_net { tcp(ip(192.168.32.98) port(1000)); };
destination{},信息目标, 可以是文件, 本地 sockets, 或者远程主机。
filter{},过滤器filter { expression; };
filter demo_filter { host("example") and match("deny"); };
host()和 match()、program()这三个都是 filter 函数,它们可以接受 regexp
filter demo_regexp_filter { host("system.*1") and match("deny"); };
过滤器使用说明 syslog-ng 消息过滤 寻找来源 - 镇水古月 - 博客园 (cnblogs.com)
-
facility
系统对某种类型事件的定义,代表不同类型的日志。LOG_AUTH
LOG_AUTHPRIV 安全认证
LOG_CRON clock daemon (cron and at)
LOG_DAEMON 后台进程
LOG_FTP ftp daemon
LOG_KERN kernel messages
LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备,用户程序中打的log使用的就是这几个。
LOG_LPR printer subsystem
LOG_MAIL 邮件系统mail subsystem
LOG_NEWS news subsystem
LOG_SYSLOG syslogd自身产生的日志
LOG_USER (default)
-
系统常用的几个日志
/var/log/messages
/var/log/kern.log //LOG_KERN
/var/log/cron.log //LOG_CRON/var/log/mail.log //LOG_MAIL
/var/log/ftp.log //LOG_FTP /var/log/secur.log //LOG_AUTHPRIV -
level :日志级别
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通,重要的标准信息
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错所需,一般不建议使用
从下到上,级别从低到高,记录的信息越来越少 -
template 自定义日志格式模板
template global_format{
template("<${PRI}> ${ISODATE} ${HOST} ${PROGRAM} ${PID} ${MESSAGE}\n");
};
options { proto-template(global_format); }; #用于protocol-like destination, like syslog() and network()
options { file-template(global_format); }; #用于file-like destination
destination d_file {file ("/var/log/messages" template("${ISODATE} ${HOST} ${MESSAGE}\n") ); #或template(template_name)};
template t_tang_reclog_fmt { template("$MSGONLY\n"); template_escape(no); };destination d_syslog_ali_tcp { tcp("192.168.36.234" port("5140") template(t_tang_reclog_fmt)); };template log_fmt { template("$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC Host:$HOST Level:$LEVEL Service:$PROGRAM $MSGONLY\n"); template_escape(no); };
destination df_tang_log { file("/var/log/tang/$PROGRAM.log" template(log_fmt) ); };
- rewrite 关键字替换
rewrite r_rewrite_set{set("myhost", value("HOST")};
condition(program("myapplication")));};
log { source(s1); rewrite(r_rewrite_set); destination(d1); }; - 宏
syslog-ng Open Source Edition 3.18 - Administration Guide (oneidentity.com)
模板中使用的如$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC Host:$HOST Level:$LEVEL Service:$PROGRAM $MSGONLY,这些宏的定义在 官方文档 syslog-ng Open Source Edition 3.18 - Administration Guide - 本地、远程日志配置
远程端收集器配置 vim/etc/syslog/syslog-ng.conf
@version:3.5
@include"scl.conf"
@include"`scl-root`/system/tty10.conf"
options {
time-reap(30);
mark-freq(10);
keep-hostname(yes);
};
source s_local { system(); internal();};
source s_network {
syslog(transport(tcp) port(514));
};
destination d_local {
file("/var/log/syslog-ng/messages_${HOST}");};
destination d_logs {
file(
"/var/log/syslog-ng/logs.txt"
owner("root")
group("root")
perm(0777)
);};
log { source(s_local); source(s_network); destination(d_logs);};
本地端配置:@version:3.5
@include"scl.conf"
@include"`scl-root`/system/tty10.conf"
source s_local { system(); internal();};
destination d_syslog_tcp { syslog("192.168.1.118" transport("tcp") port(514)); };
log { source(s_local); destination(d_syslog_tcp);};