当前位置: 首页 > 运维技术 > 正文

Rsyslog+loganalyzer搭建日志服务器教程

Mr.linus 发表于2018年8月3日 10:15

安装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读取数据,然后使用。

1.png

2.png 

配置rsyslog连接mysql账号和密码和授权

grant all on Syslog.* to 'rsyslog'@'localhost' identified by 'qwsa12!@';
flush privileges;

3.png 

配置服务端的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下边添加

4.png

$template IpTemplate,"/var/log/%FROMHOST-IP%.log"
*.*  ?IpTemplate
& ~

如果我们想要将所有从远程客户端接受到的消息写入到一个以它们的IP地址命名的单个文件中,可以使用这个模板。

示例如下图

5.png 

修改允许接收外来日志

修改/etc/sysconfig/rsyslog 修改SYSLOGD_OPTIONS为 "-r -x -m 0"   #-r表示允许接收外来的消息,-x表示不解析DNS,

#-m 0表示时间戳标记间隔,如果指定只接受某个或多个ip过来的日志,例"-s 168.1.1.1:168.1.1.2"

6.png 

客户端测试

Vim /etc/rsyslog.conf

在底部添加 *.* @IP:端口

7.png 

重启客户端服务后,查看进程

在客户端/etc/bashrc末尾添加一个测试脚本,所有执行的命令保存到日志中

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

保存后source一下bashrc

8.png 

客户端敲命令测试服务端接收到日志

9.png 

服务端也可使用logger -p user.notice 'Hello World!'命令测试

10.png 

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

11.png

2. step 3 选择enable user database,使用自定义数据库,然后填写数据库访问信息,这里的数据库是指loganalyzer的用户数据库,而不是rsyslog日志存储的数据库,这里是需要注意的。并且选取require user to be login

12.png 

3. step 5 会将loganalyzer的相关用户表写入到数据库,可以检查loganalyzer的数据库就可以看到了。

13.png14.png 

4. step 6 配置loganalyzer的管理员账号,登录loganalyzer界面使用的。

15.png 

5. step 7 是配置rsyslog的日志存储数据库的访问方法,在source type选择 mysql native,然后填写mysql的访问信息,记住,这里是rsyslog的日志存储数据库,不是loganalyzer的用户数据库。

16.png 

6. 完成后会自动跳转提示登录。

如果配置都正常,默认都是有localhost的数据

17.png 

Ps1:

18.png 

提示这个错误请检查config.php

19.png 

Ps2:提示no syslog recodes found

20.png 

提示这个错误是连接上了数据库,但是数据库没有数据,可以检查下rsyslog,loganalyzer与mysql之间的链接有没有问题,详情可查看mysql与rsyslog日志

我遇到这个错误去查看日志看到mysql.sock错误,去检查mysql的配置目录,发现默认配置在/tmp/mysql.sock,但是mysql.sock在/var/lib/mysql下,ln -s创建软连接就解决了。

全文完
本文标签: Rsyslogloganalyzer日志服务器
本文标题: Rsyslog+loganalyzer搭建日志服务器教程
本文链接: http://www.90qj.com/m/?post=482

〓 随机文章推荐

共有4411阅 / 0我要评论
  1. 还没有评论呢,快抢沙发~

发表你的评论吧返回顶部

!评论内容需包含中文


请勾选本项再提交评论