系统日志的实践应用

Linux日志: 

 其存储位置是 /var/log/messages, secure,  

会以时间顺序将系统发生的事记录到此文件中来.

会记录事件的内容以及发生的时间,

日志还有日志级别, log level

centos5 系统

日志系统分两个服务进程,

syslogd :    系统进程相磁的日志 

klogd:    内核事件相关的日志

在centos6系统上,进化为rsyslog,比起centos5的系统多了很多优点和特性

支持 TCP,SSL,TLS,RELP

还支持将数据存储到数据库中,

能过滤syslog信息中的任意部分.

可以自定义输出格式,

特别适用企业级的日志中继功能.

facility :具体记录日志的工具,可以从功能上,或者程序上进行分类,并交由专门的工具负责记录其日志

 auth  与认证相关

  authpriv    与认证授权相关

  cron    为周期性计划任务记录日志

  daemon    为守护进程记录日志

  kern    为内核

  lpr    打印

  mail    邮件

  mark    防火墙标记

  news    新闻系统?

  security 安全

  syslog 日志系统本身的日志

  user    与用户相关

  uucp    

local0 - local7 自定义的日志记录

priority :日志级别

 debug    =>事无巨细,全部记录

  info        详细信息

  notice     注意

  warn, warning    警告   ==>在此级别以上的,都要引起重视了

  err, error    错误

  crit    蓝色警界

  alert    橙色警界

  emerg, panic        红色警界, 恐慌

记录日志,需要在配置文件中指明,什么类型的什么级别的系统日志,需要记录在什么位置.在系统配置文件中定义/etc/rsyslog.conf  [还有扩展的 /etc/rsyslog.d/ 下的所有.conf后缀文件]

例如 /etc/rsyslog.conf 文件中的定义

*.info;mail.none;authpriv.none;cron.none /var/log/messages

  所有info级别以上的信息,都记录到 /var/log/messages里, 但是 authpriv  cron 除外

  

比如,有一些级别的日志生成特别多, 我们需要单独的记录在某一文件中

mail.=info    /var/log/maill.log    =>只记录 邮件在info级别上的日志, 记录位置是/var/log/mail.log

mail.* -/var/log/maillog

# Everybody gets emergency messages

*.emerg                                                  *      =>恐慌级别的所有信息, 向当前系统上所有登陆的用户都发送

# Log all the mail messages in one place.

mail.*                                                   -/var/log/maillog   所有邮件日志都以异步方式写入/var/log/maillog文件中

日志信息格式:

 时间     主机     进程(PID):    事件

在生产环境中,集群中的主机,每天都会产生很多日志,不方便管理,一般统一集中在一台日志服务器上做日志记录.

那么我们就得启用日志服务器功能

#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)

$ModLoad imklog # provides kernel logging support (previously done by rklogd)

#$ModLoad immark # provides --MARK-- message capability

# Provides UDP syslog reception

$ModLoad imudp            ==>启用imudp 模块

$UDPServerRun 514            并监听在udp 514端口

# Provides TCP syslog reception

$ModLoad imtcp            ==>启用imtcp 模块

$InputTCPServerRun 514    并监听在tcp514端口

举个例子,现在

172.16.26.6主机,作为日志服务器 172.16.26.14作为需要记录日志的客户机

编辑 14 的/etc/rsyslog.conf 文件  

将除了邮件,authpriv认证授权  cron周期性计划任务以外的日志信息都记录到6主机上 

*.info;mail.none;authpriv.none;cron.none @172.16.26.6

[root@php5_6 etc]# tail -3 /var/log/messages 
Aug 9 13:25:57 php5_6 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="2024" x-info="http://www.rsyslog.com"] start 
Aug 19 08:04:15 php_14 kernel: imklog 5.8.10, log source = /proc/kmsg started.     ==>现在,能记录到14主机上的内核重新装载了配置
Aug 19 08:04:15 php_14 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="21841" x-info="http://www.rsyslog.com"] start 

=>14主机上的rsyslogd 重新启动了

现在想配置将系统日志记录到mysql数据库中,怎么办呢?

如果主机上没有安装mysql,那么得先安装

[root@php5_6 etc]# yum install mysql-server

还要安装rsyslog-mysql ,以实现rsyslogd 与mysql的交互

[root@php5_6 etc]# yum install rsyslog-mysql

我们查看,安装的 rsyslog-mysql  模块,为我们生成了什么文件

[root@php5_6 etc]# rpm -ql rsyslog-mysql 
/lib64/rsyslog/ommysql.so   ==>日志输出到mysql数据库所需要的模块
/usr/share/doc/rsyslog-mysql-5.8.10 
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql    数据库表

此时,我们需要在系统日志的主配置文件中,写入配置,让其加载/lib64/rsyslog/ommysql.so 

$ModLoad ommysql        => 装载写入mysql的模块

同时还需要指明哪些日志以什么身份写到哪个数据库中 , 

*.info;mail.none;authpriv.none;cron.none:ommysql:127.0.0.1,Syslog,log,log123


建立记录日志的数据库,以及库中的表

[root@php5_6 etc]# mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

mysql> grant all on Syslog.* to log@'172.16.26.%' IDENTIFIED BY 'log123';

Query OK, 0 rows affected (0.00 sec)


[root@php5_6 ~]# service rsyslog restart  重启日志服务 


在14主机上卸载 tree 

[root@php_14 ~]# yum remove tree

查看日志服务器上的SystemEvents表

wKiom1P0lN-RkmN0AALBNNRwp3s436.jpg

有相关日志记录

当然,这样看用户体验很差,我们可以安装一个web版的查看系统

通过yum快速安装一个lamp环境

  yum install httpd

  yum install php

  yum install mysql-server

  yum install rsyslog-mysql

  yum install php-gd 

loganalyzer-3.6.5.tar.gz  ==>下载此项目包

将/loganalyzer-3.6.5/src下所有的文件解压到/var/www/html目录

在浏览器中输入主机ip地址访问

http://172.16.26.6/index.php

wKiom1P0lPqBod1CAAEM-PHLYmg323.jpg

警告信息不用管,直接下一步

wKioL1P0ljCjKJPSAANNpYqYYQ4628.jpg

点击下一步后,会出现一个警告信息,

wKioL1P0llyxBDpSAAEht5QfZ0I236.jpg

提示没有./config.php文件,我们去创建一个

[root@php5_6 html]# touch config.php

wKiom1P0lXfwHDMQAAD5gHeLAgY934.jpg

此时提示,该文件没有写权限,OK,给它加上就是了 

[root@php5_6 html]# chmod 666 config.php

wKiom1P0lZeSFodPAAB6ZzQ0MGE295.jpg

ok,有权限了,下一步

wKioL1P0lsjD5Cd2AAGUvBerP8A655.jpg

这一步,默认的显示样式按自己的需求修改,这里使用默认的,不作修改

wKioL1P0lweyu1ehAAIGgGMN-_g544.jpg

正确的填写自己的数据库名,继续下一步

wKioL1P0l1GC1tMlAADCk33Afmc786.jpg

点击finish完成安装

wKiom1P0llKDvijgAAlCnPbQi9Q023.jpg

OK,大功告成!

你可能感兴趣的:(数据库,linux,系统日志,周期性)