syslog之一:Linuxsyslog日志系统详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
syslog之⼀:Linuxsyslog⽇志系统详解
# ⼀、syslog简介
syslog是⼀种⼯业标准的协议,可⽤来记录设备的⽇志。
在UNIX系统,路由器、交换机等⽹络设备中,系统⽇志(System Log)记录系统中任何时间发⽣的⼤⼩事件。
管理者可以通过查看系统记录,随时掌握系统状况。
UNIX的系统⽇志是通过syslogd这个进程记录系统有关事件记录,也可以记录应⽤程序运作事件。
通过适当的配置,我们还可以实现运⾏syslog 协议的机器间通信,通过分析这些⽹络⾏为⽇志,藉以追踪掌握与设备和⽹络有关的状况。
功能:记录⾄系统记录。
# ⼆、syslog服务与配置
2.1、安装syslog软件包
软件包名称为:rsyslog-5.8.10-10.el6_6.x86_64
我⽤的是centos系统,配置的有第三⽅的yum源,我直接yum install直接装就OK了
装完后⽤ rpm -qa | grep syslog下看是否已安装
2.2、syslog⽇志系统可以根据程序详细信息的不同定义不同的⽇志级别
2.3、Linux上的⽇志系统分为:syslog和syslog-ng(syslog⽇志系统的升级版)
2.4、syslog服务:
syslog服务进程分两个,分别是:syslogd(系统,⾮内核产⽣的⽇志)和klogd(专门记录内核产⽣的⽇志)
kernel-->物理终端(/dev/console)-->/var/log/dmesg
其中/var/log/dmesg⽂件可以使⽤dmesg命令和cat查看⽂件内容
⽇志滚动(⽇志切割):
所谓的滚动是指历史信息所保存的⽇志,如;messages⽂件⽇志会越来越⼤等到了某⼀段时间,会把messages⽂件重新命名为messages.1,系统并重新创建messages⽂件,所以叫做⽇志滚动
/sbin/init
/var/log/messages:系统标准错误⽇志信息;⾮内核产⽣的引导信息,各⼦系统产⽣的信息
/vat/log/maillog:邮件系统产⽣的⽇志信息
/vat/log/secure:安全相关log
系统⾃带的⽇志切割程序logrotate
logrotate脚本配置⽂件
[root@localhost cron.daily]# pwd
/etc/cron.daily
[root@localhost cron.daily]# vim logrotate
滚动⽇志信息配置⽂件
[root@localhost cron.daily]# pwd
/etc/cron.daily
[root@localhost cron.daily]# vim /etc/logrotate.conf
# see "man logrotate"for details
# rotate log files weekly
weekly #每周滚动⼀次
# keep 4 weeks worth of backlogs
rotate 4 #只保留4个切割版本⽂件,超过后清除
# create new (empty) log files after rotating old ones
create #滚动完之后创建⼀个空的新的⽂件
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d #包括/etc/logrotate.d 下的⽂件,⼿动添加可直接添加到此⽬录
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp{
monthly #按⽉,⾃⼰定义
create 0664 root utmp #创建⽂件并0664权限
minsize 1M #最新1M
rotate 1 #保留⼏个版本
}
/var/log/btmp{
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
[root@localhost cron.daily]#
syslog配置⽂件/etc/rsyslog.conf
注:centos 6 的配置⽂件是/etc/rsyslog.conf,centos5的配置⽂件是/etc/syslog.conf
2.5、配置⽂件定义格式为facility.priority action
facility是指哪个facility来源产⽣的⽇志; priority是指拿个级别的⽇志;action是指产⽣⽇志怎么办是保存在⽂件中还是其他。
facility可以理解为⽇志的来源或设备或选择条件,⽬前常⽤的facility有以下⼏种:
auth #认证相关的
authpriv #权限,授权相关的
cron #任务计划相关的
daemon #守护进程相关的
kern #内核相关的
lpr #打印相关的
mail #邮件相关的
mark #标记相关的
news #新闻相关的
security #安全相关的,与auth类似
syslog #syslog⾃⼰的
user #⽤户相关的
uucp #unix to unix cp相关的
local0到local7 #⽤户⾃定义使⽤
* #*表⽰所有的facility
priority(log level)⽇志优先级的级别,⼀般分为以下⼏种级别(从低到⾼)
注:级别越低记录的越详细
debug #程序或系统的调试信息
info #⼀般信息
notice #不影响正常的功能,需要提醒⽤户的重要事件
warning/warn #可能影响系统功能,需要提醒⽤户的重要事件
err/error #错误信息
crit #⽐较严重的
alert #必须马上处理的
emerg/canic #会导致系统不可⽤的
* #表⽰所有的⽇志级别
none #跟*相反,表⽰什么也没有
action(动作)⽇志记录的位置
系统上的绝对路径 #普通⽂件如:/var/log/XXX
| #管道通过管道送给其他的命令出来
终端 #终端如:/dev/console
@host #远程主机如@10.1.1.1
⽤户 #系统⽤户如:root
* #登录到系统上的所有⽤户,⼀般emerg级别的⽇志是这样定义的
定义格式列⼦:
/var/log/mail.log #表⽰将mail相关的,级别为info及info以上级别的信息记录到/var/log/mail.log⽂件中
auth.=info @10.1.1.1 #表⽰将auth相关的,级别为info的信息记录到10.1.1.1主机上去,前提是10.1.1.1要能接收其主机发来的⽇志信息 user.!=error #表⽰记录user相关的,不包括error级别的信息
user.!error #表⽰user.error相反
*.info #表⽰记录所有的⽇志信息的info级别
mail.* #表⽰记录所有mail相关的所有级别的信息
*.* #表⽰记录所有的⽇志信息的所有的⽇志级别
; #多个⽇志来源可以⽤“ ; ”隔开
cron, #与; 是⼀个意思
mail.*;mail.!=info #表⽰记录mail相关的所有级别的信息,但是不包括info级别的信息
重启服务
#service rsyslog reload 注:不重启但能读到配置⽂件;不建议重启
2.6、搭建Linux⽇志服务器
编辑配置⽂件 [root@localhost etc]# vim /etc/sysconfig/rsyslog
修改配置⽂件中SYSLOGD_OPTIONS="-c 5" 添加“ -r选项”即可
⽬的可以让服务器能够接受客户端传来的数据
配置⽂件如下
[root@localhost etc]# vim /etc/sysconfig/rsyslog
# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-r -c 5"
~
重启syslog服务
[root@localhost etc]# service rsyslog restart
关闭系统⽇志记录器: [确定]
启动系统⽇志记录器:-r option only supported incompatibility modes 0 to 2 - ignored [确定]
[root@localhost etc]#
2.7、搭建syslog客户端
在syslog配置⽂件中修改/etc/rsyslog.conf
[root@localhost etc]# vim /etc/rsyslog.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.* @192.168.1.66
# Log cron stuff
cron.* /var/log/cron
.
.
.
省略
重启syslog客户端
[root@localhost etc]# service rsyslog restart
关闭系统⽇志记录器: [确定]
启动系统⽇志记录器:-r option only supported incompatibility modes 0 to 2 - ignored [确定]
[root@localhost etc]#。