安装LAMP环境
yum -y install httpd php php-mysql php-gd mysql mysql-server
httpd用来提供web服务
php使apache支持php,因为loganalyzer是用php编写
php-mysql用于loganalyzer连接数据库
php-gd用于绘图
mysql 是loganalyzer存储数据的地方
安装rsyslog以及rsyslog-mysql接口支持
yum install rsyslog rsyslog-mysql
导入rsyslog-mysql组件的sql创建数据库
cd /usr/share/doc/rsyslog-mysql-5.8.10/ [root@localhost rsyslog-mysql-5.8.10]# ls createDB.sql [root@localhost rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql
这个sql会自动帮你创建rsyslog存储在mysql中的数据的表,等下可以直接被loganalyzer读取数据,然后使用。
grant all on Syslog.* to 'rsyslog'@'localhost' identified by 'qwsa12!@'; flush privileges;
配置服务端的rsyslog.conf
Rsyslog系统都默认安装好了,直接配置即可。
# vi /etc/rsyslog.conf $ModLoad immark #immark是模块名,支持日志标记 $ModLoad imudp #imupd是模块名,支持udp协议 $UDPServerRun 514 #允许514端口日志
新增下面两行到 GLOBAL DIRECTIVES
$ModLoad ommysql *.* :ommysql:localhost,Syslog,rsyslog,qwsa12!@
1.增加了$ModLoad ommysql这个模块,这个就是rsyslog连接mysql使用的模块
2.*.* :ommysql:localhost,Syslog,rsyslog,qwsa12!@这里意思是说使用某个可以连接mysql的账号和密码,连接mysql,将数据传输到mysql数据库里面去。
3.udp传输配置依然要开启,那是因为rsyslog客户端会将日志以udp的方式传输到rsyslog服务端,所以双方都要开启同样的传输方式才可以完成传输。
4.需要注意的是,如果开启了防火墙的话,那么记得514端口是rsyslog的传输端口,也要放开访问。
添加模板
在 GLOBAL DIRECTIVES下边添加
$template IpTemplate,"/var/log/%FROMHOST-IP%.log" *.* ?IpTemplate & ~
如果我们想要将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中,可以使用这个模板。
示例如下图
修改允许接收外来日志
修改/etc/sysconfig/rsyslog 修改SYSLOGD_OPTIONS为 "-r -x -m 0" #-r表示允许接收外来的消息,-x表示不解析DNS,
#-m 0表示时间戳标记间隔,如果指定只接受某个或多个ip过来的日志,例"-s 168.1.1.1:168.1.1.2"
客户端测试
Vim /etc/rsyslog.conf
在底部添加 *.* @IP:端口
重启客户端服务后,查看进程
在客户端/etc/bashrc末尾添加一个测试脚本,所有执行的命令保存到日志中
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
保存后source一下bashrc
客户端敲命令测试服务端接收到日志
服务端也可使用logger -p user.notice 'Hello World!'命令测试
Loganalyzer
下载地址:http://loganalyzer.adiscon.com/downloads/
将其解压目录里的src放置到配置好的apache的web目录里面/var/www/html
tar -zxvf loganalyzer-4.1.6.tar.gz -C /var/www/html chown -R apache.apache /var/www/html/loganalyzer Chmod 644 /var/www/html/config.php(config文件需要加权限)
然后用浏览器访问http://服务端的ip/loganalyzer/install.php
1. step 2 会检查config.php的写入权限,如果没有请授权一下, chmod +w config.php
2. step 3 选择enable user database,使用自定义数据库,然后填写数据库访问信息,这里的数据库是指loganalyzer的用户数据库,而不是rsyslog日志存储的数据库,这里是需要注意的。并且选取require user to be login
3. step 5 会将loganalyzer的相关用户表写入到数据库,可以检查loganalyzer的数据库就可以看到了。
4. step 6 配置loganalyzer的管理员账号,登录loganalyzer界面使用的。
5. step 7 是配置rsyslog的日志存储数据库的访问方法,在source type选择 mysql native,然后填写mysql的访问信息,记住,这里是rsyslog的日志存储数据库,不是loganalyzer的用户数据库。
6. 完成后会自动跳转提示登录。
如果配置都正常,默认都是有localhost的数据
Ps1:
提示这个错误请检查config.php
Ps2:提示no syslog recodes found
提示这个错误是连接上了数据库,但是数据库没有数据,可以检查下rsyslog,loganalyzer与mysql之间的链接有没有问题,详情可查看mysql与rsyslog日志
我遇到这个错误去查看日志看到mysql.sock错误,去检查mysql的配置目录,发现默认配置在/tmp/mysql.sock,但是mysql.sock在/var/lib/mysql下,ln -s创建软连接就解决了。
!评论内容需包含中文