1.系统日志

在Linux中,系统日志就是记录系统历史信息的日志,一般有错误日志,二进制日志,事务日志,中继日志,一般日志,除了事务日志以外,其他几乎都是历史日志.

日志又根据其严重程度分为8个级别

一)debug:调试级别

二)info:正常输出信息

三)notic:注意

四)waring:警告

五)error:错误

六)crit:比error严重了

七)alert:很严重了

八)emerg,panic:不用看了,系统已经挂了

2.syslog

syslog是一种日志服务,来管理系统日志的,比如定义记录系统日志的级别,记录日志的目录等,syslog有两个进程,syslogd和klogd,syslog是记录系统日志的,属于系统级别的信息,klogd是记录内核日志的,属于内核级别的信息.它相当于一个系统日志记录的大管家,记录系统内的各种日志,而所有的日志不可能都记录在同一个文件内,日志的记录又根据不同的程序或功能记录在不同的地方,并且由专门的工具负责记录,这种机制又叫做日志设施.

2-1:功能或程序分类

一)auth:认证

二)authpriv:授权

三)cron:任务计划相关

四)daemon:跟守护进程相关

五)kern:内核相关

六)lpr:打印相关

七)mail:邮件相关

八)news:新闻组

九)mark:防火墙标记的

十)security:认证

十一)user:用户的

十二)uucp:Unix to Unix 协议,现在很少用了

十三)local0:自定义的设施

2-2.定义系统日志

功能.级别  目录
如:mail.info     /var/log/maillog        #mial的信息,info以上级别都记录在/var/log/maillog中
mail.=info       /var/log/maillog        #只记录info级别的
*.info           /var/log/maillog        #所有信息的info以上级别都记录
mail.!info       /var/logmaillog         #只记录info级别以下的

2-3.系统日志的处理方式:Target

一)文件,如:/var/log/maillog

二)用户,*

三)日志服务器,@172.16.251.233

四)管道   |COMMAND

2-4.日志记录示例:

功能.级别  目录
如:mail.info            /var/log/maillog       #mial的信息,info以上级别都记录在/var/log/maillog中
mail.=info              /var/log/maillog       #只记录info级别的
*.info                  /var/log/maillog       #所有信息的info以上级别都记录
mail.!info              /var/log/maillog       #只记录info级别以下的
mail,news.info          /var/log/maillog       #mail和news的info级别以上的都记录
mail.notice,news.info  /var/log/maillog        #mail的notice级别以上和news的info以上级别都记录
mail.info                   *                  #表示把日志信息发送给当前系统登录的所有用户
mail.info                @172.16.251.233       #表示把日志信息发送到172.16.251.233这个服务器
mail.info                 |COMMAND             #表示把日志通过管道发送给需要执行它的命令

2-5.日志记录信息格式

[root@lidefu data]# tail /var/log/messages
时间            主机    进程(PID):事件
Mar 30 06:37:21 lidefu dhclient[1748]: bound to 192.168.1.110 -- renewal in 3079 seconds.

2-6.syslog和rsyslog

在CentOS5上是syslog,CentOS6上是rsyslog

rsyslog是syslog的增强版,它在syslog的基础上增强了一些功能,比如选择使用udp或者tcp选择上传日志信息到日志服务器上,也可以定义监听udp或tcp端口接受别人的日志.还允许把日志放到mysql库中.

在特性上:rsyslog支持多线程,支持使用TCP,SSL,TSL,RELP,支持将数据日志放在数据库中,支持自定义过滤器,支持自定义输出格式,适用于企业级的日志收集.

2-7.配置日志信息/etc/rsyslog.conf 注:在CentOS5上的配置信息是/etc/syslog.conf

$ModLoad imuxsock                                                #模块装载指令
$ModLoad imklog                                                  #模块装载指令
$ModLoad imudp                                                   #装载udp模块,启用的话表示本地可以作为日志服务器使用
$UDPServerRun 514                                                #监听UDP的514端口,同上
#$ModLoad imtcp                                                  #同上,不过是TCP协议的
#$InputTCPServerRun 514                                          #和上面一条是关联关系
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat         #日志模板
#$ActionFileEnableSync on                                        #是否开启同步功能
$IncludeConfig /etc/rsyslog.d/*.conf                             #是否包含其他配置文件
*.info;mail.none;authpriv.none;cron.none      /var/log/messages  #所有信息的info(以上?)级别,不包括mail,authpriv,cron日志记录文件
authpriv.*                                    /var/log/secure    #authpriv的所有级别日志记录文件
mail.*                                       -/var/log/maillog   #所有邮件日志级别记录文件,前面的减号表示异步写入,因为邮件的日志量过大,异步有风险
cron.*                                        /var/log/cron
*.emerg                                         *                #所有日志的emerg信息,通知给当前在线用户
uucp,news.crit                                /var/log/spooler
local7.*                                      /var/log/boot.log  #自定义级别存放文件

3.日志分析,分析rsyslog产生的日志:

3-1.编辑/etc/rsyslog.conf

启用Modload imudp和UDPServerRun 514

启用以下两个模块
$ModLoad imudp        #使用udp协议传输日志
$UDPServerRun 514     #端口号为514
添加一个模块
#$ModLoad imtcp
$ModLoad ommysql       #该模块必须添加在这个位置,如果添加在末尾的话会出错
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
                                                                                                                                                                                                                                                                                                   
*.*     :ommysql:127.0.0.1,Syslog,loguser,logpass  #指定数据的存放位置
日志种类  mysql   主机地址  库名字  用户名 密码

3-2.安装rsyslog-mysql,并创建数据库

[root@www log]# yum install rsyslog-mysql -y    #安装rsyslog-mysql
[root@www log]# cd /usr/share/doc/rsyslog-mysql-5.8.10/
[root@www rsyslog-mysql-5.8.10]# ll             #创建数据库
total 4
-rw-r--r-- 1 root root 1046 Apr 18  2011 createDB.sql
[root@www rsyslog-mysql-5.8.10]# mysql <createDB.sql

3-3.下载并解压loganalyzer,在网站的目录文件中创建一个目录log来存放loganalyzer

    src下

[root@www data]# tar loganalyzer-3.6.4.tar.gz  #解压该文件
[root@www data]# cd loganalyzer-3.6.4
[root@www loganalyzer-3.6.4]# ls
ChangeLog  contrib  COPYING  doc  INSTALL  src
[root@www loganalyzer-3.6.4]# cd src            #把src下的所有文件复制到/var/www/html/log/
[root@www src]# mv * /var/www/html/log/
[root@www loganalyzer-3.6.4]# cd src             #复制contrib/*下的两个脚本到/var/www/html/log
[root@www src]# pwd
/root/data/loganalyzer-3.6.4/src
[root@www src]# cd ..
[root@www loganalyzer-3.6.4]# mv contrib/* /var/www/html/log/

3-4.改变文件的属主和属组为apache,注:如果是编译安装的httpd,属主和属组改成daemon

系统日志:syslog_二进制

3-4.给configure.sh和secure.sh执行权限.并执行

[root@www log]# chmod u+x *.sh
[root@www log]# ll *.sh
-rwxrw-r-- 1 apache apache 49 Aug 16  2013 configure.sh
-rwxrw-r-- 1 apache apache 31 Aug 16  2013 secure.sh
[root@www log]# ./configure.sh
[root@www log]# ./secure.sh

3-5.在浏览器中安装,一直贴图了

系统日志:syslog_日志记录_02

系统日志:syslog_日志记录_03

系统日志:syslog_管理系统_04

系统日志:syslog_二进制_05

系统日志:syslog_二进制_06

系统日志:syslog_日志记录_07

系统日志:syslog_error_08

系统日志:syslog_日志记录_09

系统日志:syslog_日志记录_10

总结:要注意的两点,安装rsyslog-mysql,$ModLoad ommysql 要写在指定的位置