首页 > 代码库 > Linux下日志系统的设计

Linux下日志系统的设计

简介:通过日志系统的设计,将多台主机上的日志统一发送到一台服                                器,日志服务器自动将日志记录到mysql数据库,远程通过web方式调用数据库查看日志(使用loganalyzer解决方案,基于php)。

linux系统下,使用apacheweb客户端,mysql数据库,phpweb及后台数据的调用,统称为lamp

日志的种类:/var/log/secure 身份验证有关信息的日志

/var/log/maillog 邮件相关的日志

/var/log/message 一般重要的日志

其中安装完程序日志会在特定的文件夹里面

例如:安装完httpd软件包,将会产生2种日志文件分别是/var/log/httpd/access_log   /var/log/httpd/error_log

access_log目录存放正确的日志,error_log目录存放错误的日志

日志的优先级别:log4j日志的优先级别从低到高 DEBUG<INFO<WARN<ERROR<FATAL

需要安装的软件包:rsyslog-5.8.10-8.el6.i686

mysql-5.1.71-1.el6.i686

php-mysql-5.3.3-26.el6.i686

rsyslog-mysql-5.8.10-8.el6.i686

php-5.3.3-26.el6.i686   php-gd-5.3.3-26.el6.i686

实验拓扑:

wKiom1RN0O3RyUBtAADfp1ErYF0653.jpg

实验环境:

版本:CentOS release 6.5

内核:2.6.32-431.el6.i686

启动apacheservice httpd start 开启apache

Chkconfig httpd on 设置为开机自启动

启动mysql,设置mysql的安全性

Service mysqld start 开启mysql(第一次启动有数据库的初始化过程,比较慢)

查看mysql

输入mysql进入mysql

mysql> show databases

| Database           

| information_schema |

| mysql              

| test               

初始化database3个默认的库

mysql设置密码增加安全性,

mysqladmin -u root -p password ‘123‘

Enter password  没有以前的口令,直接回车。

访问的时候需要mysql -u root -p 回车

输入口令

环境具备完成后需要loganalyzer-3.6.5.tar.gz软件

期望http://server ip/loganalyzer如此访问数据库

需要把loganalyzer目录放到/var/www/下面

先将loganalyzer-3.6.5.tar.gz解压

[root@wang ~]tar -zxvf loganalyzer-3.6.5

[root@wang ~]# cd loganalyzer-3.6.5           

[root@wang loganalyzer-3.6.5]# vim INSTALL 可以查看说明文件,按照说明文件执行安装

root@wang loganalyzer-3.6.5]# cd src

[root@wang src]# cp -rf . /var/www/html/loganalyzer/ loganalyzer-3.6.5目录下的所有文件目录拷贝到loganalyzer

[root@wang src]cd ..

[root@wang loganalyzer-3.6.5]# cd contrib/

[root@wang contrib]# ll

total 8

-rw-rw-r--. 1 root root 49 Oct  9  2013 configure.sh

-rw-rw-r--. 1 root root 31 Oct  9  2013 secure.sh

[root@wang contrib]# cp * /var/www/html/loganalyzer/将脚本文件拷贝到loganalyzer

[root@wang contrib]# cd /var/www/html/loganalyzer/

[root@wang loganalyzer]# chmod +x *.sh  2个脚本文件赋予执行权限

查看2个脚本文件的内容

Vim  configure.sh内容为

#!/bin/sh

touch config.php

chmod 666 config.php

Vim  secure.sh 内容为

 #!/bin/sh

chmod 644 config.php 

所有应该执行 config.php

 [root@wang loganalyzer]# ./configure.sh      

[root@wang loganalyzer]# chown -R daemon:daemon  .

改变当前目录下文件的所有者和所属组

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

将日志信息追加到数据库中

[root@wang ~]# mysql -u root -p

Enter password: 

进入数据库查看是否成功

mysql> show databases;

| Database           |

| information_schema |

| Syslog             |

| mysql              |

| test               

4 rows in set (0.00 sec)

成功导入Syslog

mysql> use Syslog

mysql> show tables;

 Tables_in_Syslog       |

| SystemEvents           |

| SystemEventsProperties |

2张表

mysql> grant all privileges on Syslog.* to rsyslog@localhost identified by ‘123456‘

Syslog数据库的所有表授予所有的权利针对rsyslog通过本机访问的账号

mysql>flush privileges; 刷新权限

[root@wang ~]# vim /etc/rsyslog.conf  编辑rsyslog.conf

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 ommysql  # provides --MARK-- message capability

*.*      :ommysql:localhost,Syslog,rsyslog,235290

# Provides UDP syslog reception

$ModLoad imudp    接受udp日志

$UDPServerRun 514

 

# Provides TCP syslog reception

$ModLoad imtcp    接受tcp日志

$InputTCPServerRun 514

 

其中*.*      :ommysql:localhost,Syslog,rsyslog,123456

*.*所有的所有级别日志输入到ommysql;在本机上;数据库的名字;数据库的管理员;密码

root@wang ~]# service rsyslog restart 重启下rsyslog服务

在测试之前关闭防火墙

[root@wang ~]# service iptables stop

[root@wang ~]# chkconfig iptables off  设置为开机关闭

[root@wang ~]# setenforce 0 将安全策略设置为警告级别

[root@wang ~]# getenforce  即输入此命令为Permissive

Permissive

 

重启下apachemysql

[root@wang ~]# service httpd restart

[root@wang ~]# service mysqld restart

打开浏览器访问 http://192.168.2.99/loganalyzer

Ip地址为自己主机的ip

出现以下页面

wKiom1RN0Q3xryZKAACkOQwTPIw050.jpg

点击here

wKiom1RN0TLgNKeJAAElBZfjJyQ200.jpg

Next

wKiom1RN0VOxX0JVAAFILHD3HzI088.jpg

Next

wKioL1RN0kmxgnBxAAGnFgcd9wA051.jpg

在下面的enable user databases 选项点击yes,出现

wKioL1RN0niwGbRRAAF0KxIoZdU695.jpg

database name改为 Syslog(注意大小写)

Database user 改为rsyslog

Database password 123456 (刚才设置的密码)

wKiom1RN0qKigR2ZAAFpJT54vMo580.jpg

然后点击next

wKioL1RN0xHyJtSbAAF390TwmSg296.jpg

Next

wKioL1RN0x6Q2owZAAE7Zm201MQ868.jpg

Next

wKioL1RN0yrRzlVAAAG17QXfzZo701.jpg

 

设置个用户账号,以后登录该站点使用,进行后台管理。

wKioL1RN0z2SEJedAAH3qtGp6D0851.jpg

 

socurce type设置为 mysql native

wKioL1RN01XR8NqgAAGBy11xJ-w727.jpg

database name 设置为Syslog(注意大小写)

Database name 设置为上面查看数据库出现的表SystemEvents(注意大小写)

Database user 设置为rsyslog

密码是之前设置的密码

然后点击next

wKiom1RN0w7Tq_MjAAEbkPP6HeU611.jpg

Finish

wKioL1RN03KhJAWiAAPo1c3Qdu4203.jpg

成功,如果还想再添加一台服务器,数据库的设置方法不变。

需要在vim /etc/rsyslog.conf的配置文件中修改:

# Don‘t log private authentication messages!

*.*                                                     @192.168.2.99

*.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.*                                                  -/var/log/maillog

 

添加红色的部分,意思是将所有的日志都发送到地址为192.168.2.99(刚才的主机ip)。


本文出自 “linux” 博客,请务必保留此出处http://whhhj.blog.51cto.com/9289395/1568393

Linux下日志系统的设计