一. syslog简介vim
syslog是一种工业标准的协议,可用来记录设备的日志。在UNIX系统,路由器、交换机等网络设备中,系统日志(System Log)记录系统中任什么时候间发生的大小事件。管理者能够经过查看系统记录,随时掌握系统情况。UNIX的系统日志是经过syslogd这个进程记录系统有关事件记录,也能够记录应用程序运做事件。经过适当的配置,咱们还能够实现运行syslog协议的机器间通讯,经过分析这些网络行为日志,藉以追踪掌握与设备和网络有关的情况。centos
功能:记录至系统记录。安全
二 . syslog服务与配置bash
安装syslog软件包服务器
软件包名称为:rsyslog-5.8.10-10.el6_6.x86_64网络
我用的是centos系统,配置的有第三方的yum源,我直接yum install直接装就OK了ide
装完后用 rpm -qa | grep syslog下看是否已安装
this
2.syslog日志系统能够根据程序详细信息的不一样定义不一样的日志级别。debug
3.Linux上的日志系统分为:syslog和syslog-ng(syslog日志系统的升级版)unix
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
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级别的日志是这样定义的
定义格式列子:
mail.info /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.info;mail.info #多个日志来源能够用“ ; ”隔开
cron,mail.info #与cron.info;mail.info 是一个意思
mail.*;mail.!=info #表示记录mail相关的全部级别的信息,可是不包括info级别的信息
重启服务
#service rsyslog reload 注:不重启但能读到配置文件;不建议重启
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 in compatibility modes 0 to 2 - ignored [肯定] [root@localhost etc]#
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 in compatibility modes 0 to 2 - ignored [肯定] [root@localhost etc]#
注:若是以上内容发现错误,请告知留言便可,以方便纠正保证内容的准确性!!!