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]# mysql3-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
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.sh3-5.在浏览器中安装,一直贴图了
总结:要注意的两点,安装rsyslog-mysql,$ModLoad ommysql 要写在指定的位置