SYSLOG服务
linux依旧使用syslogd作为日志监控进程,而在主流的linux发行版中依旧使用sysklog这个比较老的日志服务器套件。
syslog.conf内格式:
facility.level action 设备.优先级 动作 facility.level 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。
服务器1(日志服务器):kinggoo.com
服务器2:tscccn.com
服务器1上设置如下:
请将防火墙关掉,或者允许514端口通过syslog的守护进程要用到514端口
cat /etc/sysconfig/syslog
# Options to syslogd # -m 0 disables 'MARK' messages. # -r enables logging from remote machines # -x disables DNS lookups on messages recieved with -r //禁用掉dns记录项不够齐全或其他的日志中心的日志 # See syslogd(8) for more details # SYSLOGD_OPTIONS="-r -x -m 180" # 加 -r 选项以允许接受外来日志消息 # 加 -x 禁用掉dns记录项不够齐全或其他的日志中心的日志 # 加 -m 修改syslog的内部mark消息写入间隔时间(0为关闭)。例如-m 180,表示每隔180分钟(每天8次)在日志文件里增加一行时间戳消息 # 加 -h 默认情况下,syslog不会发送从远端接受过来的消息到其他主机,而使用该选项,则把该开关打开,所有接受到的信息都可根据syslog.conf中定义的@主机转发过去。 # Options to klogd # -2 prints all kernel oops messages twice; once for klogd to decode, and # once for processing with 'ksymoops' # -x disables all klogd processing of oops messages entirely # See klogd(8) for more details KLOGD_OPTIONS="-x" # SYSLOG_UMASK=077 # set this to a umask value to use for all log files as in umask(1). # By default, all permissions are removed for "group" and "other".
接着向/etc/syslog.conf内写入(用来保存日志的,这个可以根据情况自己设定)
*.* /var/log/local4messages
重新启动syslog守护进程。修改只有在syslog守护进程重新启动后才会生效。如果你只想重新启动syslog守护进程而不是整个系统,在Centos机器上,执行以下两条命令:
service syslog restart
或(两条作用相同)
/etc/rc.d/init.d/syslog stop /etc/rc.d/init.d/syslog start /etc/rc.d/init.d/syslog restart
服务器2
在有关设置行的操作动作部分用一个“@”字符指向中心日志服务器。下面这种配置的时候,在日志服务器上就可以看到对方的一下日志信息了比如添加用户等
这个时候就可以参考一下本文中的“facility”部分
cat /etc/syslog.conf
# Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure ####这里是重点,在里可以设置一些级别等等,不然在就产生双份的日志了 authpriv.* @服务器1 # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log # 写成这样就是把所有的信息都同步过去 *.* @服务器1
这样在服务器1的/var/log/local4messages这个日志文件中就可以看到对方的操作了!
syslog还有很多有意思的功能,比如可以让某个用户窗口显示日志等等
参考内容:
/etc/syslog.conf 根据如下的格式定义规则: action 设备.优先级 动作 字段也被称为seletor(选择条件),选择条件和动作之间用空格或tab分割开。 #号开头的是注释,空白行会自动跳过。 facility facility定义日志消息的范围,其可使用的key有:auth -由 pam_pwdb 报告的认证活动。 authpriv -包括特权信息如用户名在内的认证活动 cron -与 cron 和 at 有关的计划任务信息。 daemon -与 inetd 守护进程有关的后台进程信息。 kern -内核信息,首先通过 klogd 传递。 lpr -与打印服务有关的信息 mail -与电子邮件有关的信息 mark - syslog内部功能用于生成时间戳 news -来自新闻服务器的信息 syslog -由 syslog 生成的信息 user -由用户程序生成的信息 uucp -由 uucp 生成的信息 local0-local7 -与自定义程序使用 * 通配符代表除了 mark 以外的所有功能除mark为内部使用外,还有security为一个旧的key定义,等同于auth,已经不再建议使用。 level级别 level 定义消息的紧急程度。按严重程度由高到低顺序排列为:emerg -该系统不可用,等同panic alert -需要立即被修改的条件 crit -阻止某些工具或子系统功能实现的错误条件 err -阻止工具或某些子系统部分功能实现的错误条件,等同error warning -预警信息,等同warn notice -具有重要性的普通条件 info -提供信息的消息 debug -不包含函数条件或问题的其他信息 none -没有重要级,通常用于排错 * 所有级别,除了none其中,panic、error、warn均为旧的标识符,不再建议使用。 在定义level级别的时候,需要注意两点: 1)优先级是由应用程序在编程的时候已经决定的,除非修改源码再编译,否则不能改变消息的优先级; 2)低的优先级包含高优先级, 例如,为某个应用程序定义info的日志导向,则涵盖notice、warning、err、crit、alert、emerg等消息。(除非使用=号定义) 例如: logger [-isd] [-f file] [-p pri] [-t tag] [-u socket] [message ...] 例如,要模拟daemon emerg的消息,可以使用如下命令: logger -p daemon.emerg “test info”
困不行了,先发这么多,明天有 《nginx使用syslog日志服》
1 条评论。