这里演示的只是简单的本地LAMP结构,mysql用来存储由rsyslog服务发来的日志,php用来运行loganalyzer程序。
loganalyzer是一个php应用,用来展示mysql中存储的日志。
loganalyzer下载地址:
http://download.adiscon.com/loganalyzer/loganalyzer-4.1.3.tar.gz
目录:
1、安装LAMP。
3、mysql给rsyslog授权存储日志。
注意:时间同步。
loganalyzer所在系统:centos 7.1
1、安装LAMP:
1
[iyunv@localhost ~]# yum install httpd php php-mysql mariadb-server -y
测试web可用(添加php测试页):
1
2
3
4
5
[iyunv@localhost ~]# vim /var/www/html/index.php
<?php
phpinfo();
?>
1
2
[iyunv@localhost ~]# systemctl start httpd #启动httpd服务。
[iyunv@localhost ~]# systemctl start mariadb #启动mysql服务。
2、客户端note2:
安装rsyslog-mysql 用以支持mysql系列数据库:
1
2
3
4
5
[iyunv@node2 ~]# yum install rsyslog-mysql -y
[iyunv@node2 ~]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so #支持模块(库)。
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
最后面是一个自动生成数据库和表的sql脚本。我们这里mysql是刚装的,没有远程管理用户,所以就复制到mysql所在主机导入一下。
1
[iyunv@node2 ~]# scp /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 172.16.40.10:/root
LAMP主机:
1
2
3
4
5
6
7
8
9
10
11
[iyunv@localhost ~]# mysql < /root/createDB.sql #也可以在mysql交互界面用source来导入。
[iyunv@localhost ~]# mysql -e 'SHOW DATABASES;'
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog | #生成了Syslog数据库。
| mysql |
| performance_schema |
| test |
+--------------------+
给客户端授权用户:
1
MariaDB [Syslog]> GRANT INSERT ON Syslog.* TO 'loguser'@'172.16.40.%' IDENTIFIED BY 'abcdefg';
note2:
1
[iyunv@node2 ~]# vim /etc/rsyslog.conf
在RULES段里面改一下。
我这里把原来保存至messages的记录,送到了数据库172.16.40.10。
:ommysql:DBHOST,DB,DBUSER,DBUSERPASSWD
重启rsyslog服务(客户端是centos6):
1
2
3
[iyunv@node2 ~]# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
这里可以yum安装一些东西试一下,看mysql中是否有记录。
我这里用yum卸载了zsh,已经有记录了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
MariaDB [Syslog]> SELECT * FROM Syslog.SystemEvents\G
.....
*************************** 5. row ***************************
ID: 5
CustomerID: NULL
ReceivedAt: 2016-01-21 15:28:13
DeviceReportedTime: 2016-01-21 15:28:13
Facility: 1
Priority: 6
FromHost: node2
Message: Erased: zsh
.....
SysLogTag: yum[1802]:
.....
而且也还有rsyslog启动的记录。
客户端2(node1):
过程是一样的,只不过不用再导入那个sql脚本了。
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@node1 ~]# yum install rsyslog-mysql -y
[iyunv@node1 ~]# vim /etc/rsyslog.conf
#### MODULES ####
$ModLoad ommysql #模块
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
.....
#### RULES ####
*.info;mail.none;authpriv.none;cron.none :ommysql:172.16.40.10,Syslog,loguser,abcdefg
重启服务,centos7
1
[iyunv@node1 ~]# systemctl restart rsyslog
LAMP主机:
mysql
1
2
3
4
5
6
7
8
9
*************************** 7. row ***************************
ID: 7
CustomerID: NULL
ReceivedAt: 2016-01-21 15:40:38
DeviceReportedTime: 2016-01-21 15:40:38
Facility: 5
Priority: 6
FromHost: node1
Message: [origin software="rsyslogd" swVersion="7.4.7" x-pid="1545" x-info="http://www.rsyslog.com"] start
日志记录过来了。
再来把loganalyzer安装上。
LAMP:
为php授权可以查看Syslog库。哪位朋友可以提示一下,为什么用SELECT 权限不行。
1
2
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'loganalyzer'@'localhost' IDENTIFIED BY 'abcdefg';
Query OK, 0 rows affected (0.01 sec)
1
2
3
4
[iyunv@localhost ~]# tar xf loganalyzer-4.1.3.tar.gz
[iyunv@localhost ~]# cd loganalyzer-4.1.3
[iyunv@localhost loganalyzer-4.1.3]# ls
ChangeLog contrib COPYING doc INSTALL src
src目录下的就是php代码。复制到/var/www/html/下面即可。contrib目录里面有两个脚本,内容很简单,只是用来创建config.php和为此文件改变权限为666的。
1
2
[iyunv@localhost loganalyzer-4.1.3]# cp -rf src/* /var/www/html/
cp:是否覆盖"/var/www/html/index.php"? y
来看一下那两个脚本:
1
2
3
4
5
6
7
8
[iyunv@localhost loganalyzer-4.1.3]# cat contrib/configure.sh
#!/bin/sh
touch config.php
chmod 666 config.php
[iyunv@localhost loganalyzer-4.1.3]# cat contrib/secure.sh
#!/bin/sh
chmod 644 config.php
设置成666只是为了php程序有权限写入配置。
1
2
3
[iyunv@localhost loganalyzer-4.1.3]# cp contrib/configure.sh /var/www/html/
[iyunv@localhost loganalyzer-4.1.3]# cd /var/www/html/
[iyunv@localhost html]# bash configure.sh
现在就可以打开网页来完成安装了。
配置文件没有写权限。
1
2
3
4
5
[iyunv@localhost html]# ll config.php
-rw-rw-rw-. 1 root root 0 1月 21 15:59 config.php
[iyunv@localhost html]# getenforce
Enforcing
[iyunv@localhost html]# setenforce 0
是selinux的问题,命令修改重启失效。可以在/etc/selinux/config 文件中的SELINUX=enforcing改成disabled就可以了。
这里默认就行。
上面选择成PDO也一样,它们是不同的连接器。
下一步再下一步就完成了。
还需要安装上php-gd这个库,才能显示图表。
如果是用rsyslog自身来做日志集中存储。
客户端:
1
*.info;mail.none;authpriv.none;cron.none @172.16.40.10
服务端:
UDP,TPC只开一种就可以,开两种也可以。
这个东西自已感觉不怎么好用,问题也有点多。服务类日志也不会用rsyslog来记录,上面数据库部分也是用rsyslog来记录的,数据库只是存储而已。
补充点概念:
syslog 系统日志是一个专门记录系统日志的服务在CentOS5 上面就是叫做syslog。
进程与软件名: syslogd系统日志, klogd记录内核的。
而在CentOS6 或7上面叫做rsyslog , 增强版的。进程只有rsyslogd
日志:
facility: 日志设施 从功能或程序上对日志进行分类,并由专门的工具负责记录日志。
auth 认证
authpriv 授权
cron 任务计划有关crontab
daemon 守护进程有关
kern 内核有关
lpr 打印
mail 邮件
mark 防火墙标记
news 新闻组
security 安全相关
syslog 系统日志自身的或无法分类的。
user 关于各个用户的
uucp 很早以前unic到unic复制数据的协议,现在很少见到。
local1---local7 8个可以自定义的类别
priority: 级别
记录的日志是所设级别与更高级别的日志。如记录info,就包含了notice,warning.....emerg。
debug 调试 所有信息
info 程序正常记录的信息
notice 注意,异常信息。
warning 警告信息
err 错误信息
crit 橙色警报
alert 红色警报
emerg/panic 挂掉的信息
指定级别:
* 表示所有级别
none 没有级别
priority 直接指定的级别包含所有高于此级别的
=priorty 仅此级别
定义一个日志的级别和类别是用:类别.级别 日志存放路径 来指定的。
facitlity.priority Target
通配机制:
* 所有的
, 列表
! 取反
如:
mail.info /var/log/maillog info与info以上的级别
mail.=info /var/log/maillog 仅info级别的日志。
mail.!info 除了info与以上的所有级别。
*.info 所有类别info与info以上级别。
mail,news.info mail,news都用info级别。
Target: 日志位置
1. 文件, 如:/var/log/messages
2. 用户,*表示所有用户。 发给用户。 如:系统挂了的信息。
3. 日志服务器, 如: @172.16.100.1
4. 管道 COMMAND 如: 发给某个命令处理一下。
5. - 开头表示异步存储。
配置文件:
/etc/rsyslog.conf CentOS5 上是 syslog.conf
日志存储文件发生变化以后,要重启rsyslog服务。如用vim打开了messages文件。
不然rsyslog服务会不再保存此数据文件的日志。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com