鱼!
分类: LINUX
2013-06-04 16:29:40
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”