CentOS环境,yum源
默认情况下Linux系统安装了SYSLOG服务,默认也是开启的
[root@localhost ~]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
从上面可以看出系统日志管理有两部分组成:syslogd和klogd
syslogd记录的是系统,服务产生的信息
klogd主要纪录一些系统内核的动作
syslog的配置文件
[root@localhost ~]# vim /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
#把除邮件、新闻组、授权信息、计划任务等外的所有通知性消息都写入messages文件中
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
##把邮件、新闻组中仅通知性消息写入info文件,其他信息不写入,“-”表示支持异步写入,在有大量日志需要写入的时候,日志能够先缓存在内存中后写入到磁盘上。
# Log cron stuff
cron.* /var/log/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
从它配置文件中可以看出日志文件设置的格式如下
facility.level action
facility定义日志消息的范围,常见的facility有kern,authpriv,mail,cron,uucp ,local0-local7 (与自定义程序使用) 和通配*
level日志级别:
emerg:emerg 紧急,处于Panic状态。通常应广播到所有用户;
alert:告警,当前状态必须立即进行纠正。例如,系统数据库崩溃;
crit:关键状态的警告。例如,硬件故障;
err:阻止工具或某些子系统部分功能实现的错误条件,等同error
warning :预警信息,等同warn
notice:具有重要性的普通条件
info:提供信息的消息
debug:不包含函数条件或问题的其他信息
none:没有重要级,通常用于排错
action:定义日志存放的位置
上面就是linux日志的内容,有时候为了安全,需要把日志放到日志服务器上,下面就设置个简单日志服务器.
我使用192.168.1.99做日志服务器,配置如下:
默认情况下linux主机只接受本机的产生的日志,所以要开启99这个主机接受我的另一台机器产生的日志
[root@localhost ~]# # vim /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-r -m 0" #修改成这样
[root@localhost ~]# service syslog restart
[root@localhost ~]# echo > /var/log/messages ##清空99主机上日志记录
[root@localhost ~]# cat !$
cat /var/log/messages
[root@localhost ~]#
然后我在开一台机器192.168.1.188让其产生的日志都传到192.168.1.99上,配置如下:
[root@localhost ~]# vim /etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none @192.168.1.99 ##也可以是域名,但需要dns解析到。
[root@localhost ~]# echo > /var/log/messages
[root@localhost ~]# cat !$
cat /var/log/messages
[root@localhost ~]#
[root@localhost ~]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
此时在99主机上查看日志记录:
[root@localhost ~]# cat /var/log/messages
Apr 12 12:18:31 192.168.1.188 syslogd 1.4.1: restart.
Apr 12 12:18:31 192.168.1.188 kernel: klogd 1.4.1, log source = /proc/kmsg started.
记录已经到99主机上了,这样一个最简单没有经过优化日志服务器已经建成