Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349089
  • 博文数量: 74
  • 博客积分: 2705
  • 博客等级: 少校
  • 技术积分: 590
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-05 15:13
个人简介

鱼!

文章分类

全部博文(74)

文章存档

2014年(12)

2013年(10)

2012年(4)

2011年(11)

2010年(7)

2009年(12)

2008年(16)

2007年(2)

我的朋友

分类: 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”


版权声明:

转载原创文章请注明,文章出处:
原文地址:  作者: 
阅读(1954) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~