最新文章:

首页 运维技术

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

发布时间:2018年08月03日 评论数:抢沙发 阅读数:4062

    安装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创建软连接就解决了。

二维码加载中...
本文作者:Mr.linus      文章标题: Rsyslog+loganalyzer搭建日志服务器教程
本文地址:http://www.90qj.com/482.html  本文已经被百度收录,点击查看详情
版权声明:若无注明,本文皆为“挨踢 Blog”原创,转载请保留文章出处。
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论