首页 > 代码库 > Linux下日志系统的设计
Linux下日志系统的设计
简介:通过日志系统的设计,将多台主机上的日志统一发送到一台服 器,日志服务器自动将日志记录到mysql数据库,远程通过web方式调用数据库查看日志(使用loganalyzer解决方案,基于php)。
在linux系统下,使用apache做web客户端,mysql数据库,php为web及后台数据的调用,统称为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
实验拓扑:
实验环境:
版本:CentOS release 6.5
内核:2.6.32-431.el6.i686
启动apache:service httpd start 开启apache
Chkconfig httpd on 设置为开机自启动
启动mysql,设置mysql的安全性
Service mysqld start 开启mysql(第一次启动有数据库的初始化过程,比较慢)
查看mysql,
输入mysql进入mysql端
mysql> show databases;
| Database
| information_schema |
| mysql
| test
初始化database有3个默认的库
给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
重启下apache和mysql
[root@wang ~]# service httpd restart
[root@wang ~]# service mysqld restart
打开浏览器访问 http://192.168.2.99/loganalyzer
Ip地址为自己主机的ip
出现以下页面
点击here
Next
Next
在下面的enable user databases 选项点击yes,出现
将database name改为 Syslog(注意大小写)
Database user 改为rsyslog
Database password 123456 (刚才设置的密码)
然后点击next
Next
Next
设置个用户账号,以后登录该站点使用,进行后台管理。
将socurce type设置为 mysql native
将database name 设置为Syslog(注意大小写)
Database name 设置为上面查看数据库出现的表SystemEvents(注意大小写)
Database user 设置为rsyslog
密码是之前设置的密码
然后点击next
Finish
成功,如果还想再添加一台服务器,数据库的设置方法不变。
需要在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下日志系统的设计