现在的位置: 首页 > 综合 > 正文

系统日志服务Syslogd简介

2012年08月20日 ⁄ 综合 ⁄ 共 2720字 ⁄ 字号 评论关闭

文档目录
1 什么是syslogd
2
配置syslogd的说明
3
syslogd和系统中服务配置中日志的关系
-------------
文档正文
-------------
1
什么是syslogd
syslogd可以简单地被称为记录系统活动的一个daemons。比如可以记录谁,在什么时间,在哪里,做了什么事情(像是在写记叙文啊);也可以记录您的系统曾经发生过什么事情,比如什么时候重新引导过、软硬件的错误信息等;当然也记录着您系统上运行着的服务的信息。
syslogd记录的日志一般在/var/log/下,当然也有存储在另外的服务器上的。因为syslogd记录的信息实在是太重要了,所以还要涉及日志安全的问题。
一般系统中日志信息:
代码:
/var/log/secure:
记录系统的安全信息,比如ssh、ftp、pop3等;
/var/log/wtmp:
记录谁曾经登陆过系统,由于本日志被编码过,所以只能用last命令查看;
/var/log/boot.log:
顾名思义,记录开启或者关闭系统及武夫的信息;
/var/log/message:系统发生的错误信息都会记录在这个日志中,比如iptables中您使用log功能的日志;
/var/log/mail:
/var/log/httpd/
/var/log/mysqld.d
等,记录的就是这些服务的日志。

2 配置syslogd的说明
2.1
启动syslogd服务
首先,您要确定您的系统是否运行着这个服务。
代码:
service syslog status
或者:
代码:
ps -aux|grep
syslog
如果您的系统中并没有运行这个服务,您可以打开它。方法很多啦。
代码:
service syslog
start
如果您希望系统在下次启动的时候就运行syslogd,您可以在setup中的服务中添加。如果确定您的默认引导级别,比如3,那么您也可以在/etc
/rc.d/rc3.d/下添加以 S 开头的软连接。或者,您使用chkconfig 2345 syslog on来添加。
2.2
syslogd服务的配置文件
syslogd的配置文件一般在/etc/syslog.conf中。这个文件依然遵循你所见过的其它配置文件的规则,比如 #
是注释。您可以看看您的syslogd都在帮助您记录着什么。这是我的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
#
Log all the mail messages in one place.
mail.* /var/log/maillog
# Log
cron stuff
cron.* /var/log/cron

2.3
syslog.conf的配置规则
代码:
服务名称.信息等级
存放或者显示地点
这个语法很简单呢。呵呵。逐个解释一下。
服务名称
mail http at cron kern
等等。
信息等级
代码:
info: 一些提示信息资料;
notice:
需要您注意的信息;
warn或者waring: 警告信息;
上面三个信息虽然是提醒您注意,但是却还没有到错误的情况。下面的信息就要注意了。
error或者err:
错误信息。您需要仔细检查发生错误的原因了;
crit: 很严重的错误,到达临界点了;
alert: 警告! 是否想起了“Red
Alert”?不过,在这里这可是相当严重的错误啊;
emerg或者panic:系统混乱,重做吧;
特别的:
debug:
将显示很多信息;
none: 顾名思义,什么信息也不记录。

存放或者显示地点
代码:
日志的绝对路径:
比如/var/log;
您的一个用户 ;
网络上的主机: @log.company.com
打印机:
/dev/lp0

2.4 应用举例
代码:
mail.info
/var/log/maillog
大于等于info的信息都会写到/var/log/maillog中。
代码:
mail.*;cron.*
/var/log/mailcron mail.=warn;cron.=warn
/var/log/mailcronwarn
等级为warn的信息,写进/var/log/mailcronwarn,其它的信息写进/var/log/mailcron。
代码:
*.*;mail,cron.none
/var/log/message
代码:
*.*;mail.none;cron.none
/var/log/message
记录除去mail和cron之外的所有服务的所有信息。
3
syslogd和系统中服务配置中日志的关系
上面已经说了,syslogd是为系统提供日志服务的。那么,我们在配置文件中定义的日志信息和syslog.conf有什么关系呢?
或者您也注意到了这段:
代码:
#
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
这段话是什么意思呢?我认为是在/var/log/messages中记录除去mail、authpriv和cron之外的所有系统信息。也就是说它会记录您自己的http信息。是否这样呢?我自己安装了一个httpd,并且指定日志到另外一个文件,比如/usr/website/log
/httplog。我虽然可以在/usr/website/log/httpdlog中看到我的httpd的日志信息,但是我执行
代码:
#
cat /var/log/messages|grep
HTTP
却得到空。
另外,就这个问题我曾经请教一个朋友。他说syslogd不会记录你没有要求它记录的信息,虽然有上面的*.info但是这个*是不包括你自己的服务的。那么iptables也没有在我的syslog.conf中要求,那为什么它会记录到/var/log/messages呢?或者是
iptables自己定义了吧。

 

本文来自:http://www.zxlm.cn/fh/thread-7342-1-1.html

 

抱歉!评论已关闭.