syslog是Linux记录日志文件的一种服务,由两种进程组成,一个是syslogd登录系统与网络服务等信息(非内核日志),另一个是klogd内核日志,其它们的守护进程是daemon,配置文件存放在/etc/syslog.conf下。

 
启动、停止重启日志文件服务的命令
[root@localhost log]# service syslog start
[root@localhost log]# service syslog stop
[root@localhost log]# service syslog restart
 
定义日志格式:
对象 级别 日志位置(可以是文件名设备或远程主机)
mail.info /var/log/maillog
 
常用的对象:            auth(authpiv) 主要与认证有关,如login,ssh,su等
cron 就是例行的工作调试cron/at等生成的信息
daemon 与deamon有关的信息
kern 就是内核产生的信息
lpr 打印相关的信息
mail 邮件日志相关信息
news 与新闻相关的俏信息
syslog  就是syslogd这个程序本身生成的信息
日志的级别:            info 仅是一般基本的信息
notice  除了info外还需要注意的一些信息
warn    警示的信息,不会造成系统运行困扰,一般与info,notice,warn都是提示基本的信息而以
error 一些重大的错误信息,比如可以通过这个级别了解系统某些服务无法正常启动的情况
crit    比error还要严重错误的信息
alert   比crit还要严重
emerg 这个非常紧急的信息,快要死机和硬件出现大问题的信息
debug 错误检测等级
none 不需要的信息
 
级别的定义格式例子:
 
. 代表比后面还要高的级别(含该级别)都被记录下来。
例子:mail.info 表示只要是mail的信息,而且级别高于info(含info本身),都会被记录下来
 
.= 代表所需要的等就是后面接的级别而已,其他的不需要
例子:mail.=info 表示明确记录就是info的信息,其他级别不包括
 
.! 代表不等于,除了该级别外的其他级别的都记录
例子:mail.!=info 表示不包括info,其他它级别都包括如:notice warn error 等等
 
 
.* 代表所有的级别
例子:mail.* 表示所有的日志级别
 
 
指定两种对象的级别的日志格式,比如说我要把news和cron的警告信息(warn)记录在/var/log/cronnews.warn中
第一种写法:news.=warn;cron.=warn /var/log/cronnews.warn 注意:用用分号连接就行了
第二种写法:news,cron.warn 注意,这是用逗号连接的
 
 
日志位置(可以是文件名设备或远程主机):
文件名:/var/log里面的文件如:messages mailog dmesg等
设备: /dev/lp0这个打印设备
远程主机:@[hostname|IP]比如@www.945o.com,@192.168.1.1 ,服务器主机必须接受才可以
 
syslog远程配置例子:
实验环境:A主机:172.16.22.1为服务器,B主机:192.168.1.2为客户端
要求:把B主机上的mail的info日志含该级别及以下的日志,但是不包括authpriv和cron级别,并且A要接受。
 
首先关闭一下防火墙:service iptables stop
 
A主机配置:vim /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"      # -r 意思是接受远程的日志
重启syslog服务service syslog restart
 
B主机配置:vim /etc/syslog.conf 
在日志位置添加:@192.168.1.2
*.info;mail.none;authpriv.none;cron.none @192.168.1.2
重启syslog服务service syslog restart
 
最后测试一下tail -f /var/log/message