【服务器集群日志监控管理】RHEL.x搭建rsyslog日志服务器和loganalyzer日志分析工具

来源:互联网 发布:网易企业邮箱smtp端口 编辑:程序博客网 时间:2024/05/22 08:05

===============================================

rsyslog的介绍

logrotate日志滚动的介绍

rsyslog的存储途径

基于web的loganalyzer日志分析工具的搭建

======================================================

 

一、rsyslog的介绍

  Linux的日志记录了用户在系统上一切操作,看日志去分析系统的状态是运维人员必须掌握的基本功。

rsyslog日志服务器的优势:

 

1、日志统一,集中式管理  

2、日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。

 

rsyslog的新功能:

    rsyslog是一个加强版的syslog,具有各种各样的新功能,典型的有:

   1、直接将日志写入到数据库。

   2、日志队列(内存队列和磁盘队列)。

   3、灵活的模板机制,可以得到多种输出格式。

   4、插件式结构,多种多样的输入、输出模块。

   5、可以把日志存放在Mysql ,PostgreSQL,Oracle等数据库中

rsyslog的软件包


[root@jie1 ~]# rpm -qa | grep rsyslog rsyslog-5.8.10-6.el6.x86_64   #软件包系统默认已经安装 [root@jie1 ~]# rpm -ql rsyslog  #只显示了部分信息 /etc/logrotate.d/syslog/etc/rsyslog.conf     #rsyslog的配置文件 /etc/sysconfig/rsyslog/lib64/rsyslog/imfile.so /lib64/rsyslog/imklog.so  #rsyslog的模块,i开头的是输入模块 /lib64/rsyslog/immark.so /lib64/rsyslog/impstats.so /lib64/rsyslog/imptcp.so /lib64/rsyslog/imtcp.so /lib64/rsyslog/imudp.so /lib64/rsyslog/imuxsock.so /lib64/rsyslog/lmnet.so /lib64/rsyslog/lmnetstrms.so /lib64/rsyslog/lmnsd_ptcp.so /lib64/rsyslog/lmregexp.so /lib64/rsyslog/lmstrmsrv.so /lib64/rsyslog/lmtcpclt.so /lib64/rsyslog/lmtcpsrv.so /lib64/rsyslog/lmzlibw.so /lib64/rsyslog/ommail.so   #o开头的模块是输出模块 /lib64/rsyslog/omprog.so /lib64/rsyslog/omruleset.so /lib64/rsyslog/omtesting.so /lib64/rsyslog/omuxsock.so /lib64/rsyslog/pmlastmsg.so

rsyslog配置文件(/etc/rsyslog.conf)的详解

 

#### MODULES 日志的模块#### $ModLoad imuxsock   #imuxsock是模块名,支持本地系统日志的模块 $ModLoad imklog     #imklog是模块名, 支持内核日志的模块 #$ModLoad immark    #immark是模块名,支持日志标记 #$ModLoad imudp     #imupd是模块名,支持udp协议 #$UDPServerRun 514  #允许514端口接收使用UDP和TCP协议转发过来的日志 #$ModLoad imtcp     #imtcp是模块名,支持tcp协议 #$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####定义全局日志格式的指令 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板 $IncludeConfig /etc/rsyslog.d/*.conf   #载入rsyslog.d文件中所有以conf结尾的文件 #### RULES #### *.info;mail.none;authpriv.none;cron.none    /var/log/messages#####记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间#任务相关的信息除外 authpriv.*             /var/log/secure#####authpriv验证相关的所有信息存放在/var/log/secure mail.*                -/var/log/maillog#####邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大 cron.*                /var/log/cron####计划任务有关的信息存放在/var/log/cron *.emerg                * (*表示所有用户) ###记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人 uucp,news.crit        /var/log/spooler####记录uucp,news.crit等存放在/var/log/spooler local7.*              /var/log/boot.log ####本地服务器的启动的所有日志存放在/var/log/boot.log中
###rsyslog.conf中日志规则的定义的格式 facitlity.priority          Target #facility: 日志设备(可以理解为日志类型): ============================================================== auth         #pam产生的日志,认证日志 authpriv     #ssh,ftp等登录信息的验证信息,认证授权认证 cron         #时间任务相关 kern         #内核 lpr          #打印 mail         #邮件 mark(syslog) #rsyslog服务内部的信息,时间标识 news         #新闻组 user         #用户程序产生的相关信息 uucp         #unix to unix copy, unix主机之间相关的通讯 local 1~7    #自定义的日志设备 =============================================================== #priority: 级别日志级别: ===================================================================== debug           #有调式信息的,日志信息最多 info            #一般信息的日志,最常用 notice          #最具有重要性的普通条件的信息 warning, warn   #警告级别 err, error      #错误级别,阻止某个功能或者模块不能正常工作的信息 crit            #严重级别,阻止整个系统或者整个软件不能正常工作的信息 alert           #需要立刻修改的信息 emerg, panic    #内核崩溃等严重信息 ###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志,只会记录比err更高级别的日志,也包括err本身的日志。 ===================================================================== Target:   #文件, 如/var/log/messages   #用户, root,*(表示所有用户)   #日志服务器,@172.16.22.1   #管道        | COMMAND

二、logrotate日志滚动的介绍

     所有的日志文件都会随着时间的推移和访问次数的增加而迅速增长,因此必须对日志文件进行定期清理以免造成磁盘空间的不必要的浪费,同时也加快了管理员查看日志所用的时间。因而logrotate就非常有存在的必要了,Redhat系统中已经默然安装logrotate且利用logrotate设置了相关对rsyslog日志迅速增长的设置。

       logrotate的执行由crond服务实现。在/etc/cron.daily目录中,有个文logrotate,它实际上是个shell script,用来启动logrotate。

       logrotate程序每天由cron在指定的时间(/etc/crontab)启动。

logrotate的软件包


[root@jie1 ~]# rpm -qa | grep logrotate logrotate-3.7.8-16.el6.x86_64  #日志回滚的软件包默认已经安装 [root@jie1 ~]# rpm -ql logrotate /etc/cron.daily/logrotate/etc/logrotate.conf   #日志回滚的配置文件 /etc/logrotate.d      #日志回滚的子目录 /usr/sbin/logrotate/usr/share/doc/logrotate-3.7.8 /usr/share/doc/logrotate-3.7.8/CHANGES/usr/share/doc/logrotate-3.7.8/COPYING/usr/share/man/man5/logrotate.conf.5.gz /usr/share/man/man8/logrotate.8.gz /var/lib/logrotate.status

logrotate的配置文件(/etc/logrotate.conf)详解

 

[root@jie1 ~]# sed -e '/^#/d'  -e '/^$/d' /etc/logrotate.conf weekly      #每周清理一次日志文件 rotate 4    #保存四个轮换日志 create      #清除旧日志的同时,创建新的空日志文件 dateext     #使用日期为后缀的回滚文件  #可以去/var/log目录下看看 include /etc/logrotate.d  #包含/etc/logrotate.d目录下的所有配置文件 /var/log/wtmp {      #对/var/log/wtmp这个日志文件按照下面的设定日志回滚     monthly                    #每月轮转一次     create 0664 root utmp      #设置wtmp这个日志文件的权限,属主,属组     minsize 1M                 #日志文件必须大于1M才会去轮换(回滚)     rotate 1                   #保存一个轮换日志 } /var/log/btmp {     missingok                #如果文件丢失不报错     monthly     create 0600 root utmp     rotate 1 } [root@jie1 ~]# cat /etc/logrotate.d/syslog /var/log/cron    #这些文件是rsyslog.conf文件中全局配置定义中指定的Target的路径 /var/log/maillog/var/log/messages/var/log/secure/var/log/spooler{     sharedscripts     postrotate   # 轮换之后重启rsyslog服务     /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true    endscript }

三、rsyslog的存储途径

    a)日志存储在指定的文件中


[root@jie1 ~]# vim /etc/rsyslog.conf ############vim /etc/rsyslog.conf################################ #====注释掉两行,然后添加一行 #*.info;mail.none;authpriv.none;cron.none   /var/log/messages *.*                                         /systemlog/jie.log #authpriv.*                                 /var/log/secure ################################################################# #*.info;mail.none;authpriv.none;cron.none        /var/log/messages ===#这行表示,所有facitlity(设施)的info消息记录,及info级别以上的记录都会保存到 /var/log/messages文件中,除了邮件的所有信息,认证授权的所有信息,计划任务的所有信息。 #authpriv.*           /var/log/secure ===#这行表示认证授权的所有信息,都会保存在/var/log/secure文件中 *.*                 /systemlog/jie.log ===#添加的这行表示所有设施的所有信息都会保存在 /systemlog/jie.log文件中,而且此文件不必自己创建,启动rsyslog服务时系统会自动创建,而且权限都是600

 

   b)日志存储在指定的rsyslog服务器中

rsyslog客户端的配置:


[root@jie3 ~]# vim /etc/rsyslog.conf #############/etc/rsyslog.conf########################################### #*.info;mail.none;authpriv.none;cron.none         /var/log/messages *.*                            @172.16.22.1  #添加此行,注释掉其他两行 #authpriv.*                                      /var/log/secure ######################################################################## [root@jie3 ~]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ]

rsyslog服务器的配置:

 

[root@jie1 ~]# grep -v "^#" /etc/rsyslog.conf | grep -v "^$" ######修改配置文件只需开启两个模块和协议支持的端口 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog   # provides kernel logging support (previously done by rklogd) $ModLoad imudp            #开启支持upd的模块 $UDPServerRun 514         #允许接收udp 514的端口传来的日志 ModLoad imtcp             #开启支持tcp的模块 $InputTCPServerRun 514    #允许接收tcp 514的端口传来的日志 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.info;mail.none;authpriv.none;cron.none                /var/log/messagesauthpriv.*                                              /var/log/securemail.*                                                  -/var/log/maillogcron.*                                                  /var/log/cron*.emerg                                                 * uucp,news.crit                                          /var/log/spoolerlocal7.*                                                /var/log/boot.log $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n":programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl ################################# [root@jie1 ~]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ] [root@jie1 ~]#

 

 c)日志存储在指定的数据库服务器中

 

思路:

1、安装mysql服务器,且要安装rsyslog连接mysql的驱动

2、解决生成rsyslog服务器的日志特定的格式,

3、在rsyslog配置文件中加载连接mysql的模块,把日志存储到mysql中

rsyslog+Mysql服务器端的配置:


[root@jie1 log]# yum -y install mysql-server rsyslog-mysql mysql #安装mysql服务器和rsyslog连接mysql的驱动 [root@jie1 ~]# rpm -ql rsyslog-mysql #查看rsyslog-mysql安装生成了那些文件 /lib64/rsyslog/ommysql.so /usr/share/doc/rsyslog-mysql-5.8.10 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql [root@jie1 ~]# service mysqld start    Starting mysqld:                        [  OK  ] [root@jie1 ~]# mysqladmin -u root password redhat #设置mysql的密码 [root@jie1 ~]# mysql -u root -p Enter password:  #登录mysql服务器 mysql> show databases; #显示数据库服务器中没有日志的数据库 +--------------------+ | Database           | +--------------------+ | information_schema | | mysql              | | test               | +--------------------+ 3 rows in set (0.00 sec) mysql> \q Bye [root@jie1 ~]# cd /usr/share/doc/rsyslog-mysql-5.8.10/ #日志文件sql脚本的路径 [root@jie1 rsyslog-mysql-5.8.10]# ls createDB.sql [root@jie1 rsyslog-mysql-5.8.10]# mysql -u root -p < createDB.sql Enter password:     #导入日志文件的sql脚本,生成日志文件的数据库 www.it165.net [root@jie1 rsyslog-mysql-5.8.10]# mysql -u root -p Enter password: mysql> show databases; +--------------------+ | Database           | +--------------------+ | information_schema | | Syslog             | | mysql              | | test               | +--------------------+ 4 rows in set (0.01 sec) mysql> use Syslog;  #Syslog即是记录日志文件的数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +------------------------+ | Tables_in_Syslog       | +------------------------+ | SystemEvents           | | SystemEventsProperties | +------------------------+ 2 rows in set (0.00 sec) mysql> grant all on Syslog.* to 'syslogroot'@'127.0.0.1' identified by 'syslogpass';  #设置用户访问数据库服务器中Syslog数据库的用户名和密码 Query OK, 0 rows affected (0.00 sec) mysql> grant all on Syslog.* to 'syslogroot'@'172.16.22.1' identified by 'syslogpass'; Query OK, 0 rows affected (0.04 sec) mysql> flush privileges;  #重读授权表,及时生效 Query OK, 0 rows affected (0.00 sec) mysql> \q Bye [root@jie1 rsyslog-mysql-5.8.10]#cd / [root@jie1 /]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#" #####vim  /etc/ryslog.conf##################################### $ModLoad imuxsock $ModLoad imklog $ModLoad imudp           #加载udp的模块 $UDPServerRun 514        #允许接收udp 514的端口传来的日志 $ModLoad imtcp           #加载tcp的模块 $InputTCPServerRun 514   #允许接收tcp 514的端口传来的日志 $ModLoad ommysql         #加载mysql的模块 $ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.*       :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass   #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库 local7.*                          /var/log/boot.log $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n":programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl ###################################################################### [root@jie1 /]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ]

rsyslog客户端的配置:

 

[root@jie3 ~]# sed -e '/^$/d' -e '/^#/d' /etc/rsyslog.conf ################ /etc/rsyslog.conf###################### $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog   # provides kernel logging support (previously done by rklogd) $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $IncludeConfig /etc/rsyslog.d/*.conf *.*       @172.16.22.1 #添加这行用于和服务器通信 *.*       :ommysql:172.16.22.1,Syslog,syslogroot,syslogpass #添加这行,把其他行都注释掉,这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot用户,syslogpass密码访问数据库 $template SpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n":programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl #################################################################### [root@jie3 ~]# service rsyslog restart Shutting down system logger:                               [  OK  ] Starting system logger:                                    [  OK  ]

验证客户端的日志文件存放位置:

1)验证是否存放在客户端本地

2)验证是否存在服务器的/var/log/messages里面

 

3)验证是否存放在服务器的mysql数据库中

 

虽然日志存放在mysql数据库服务器中,是解决了日志集中管理,但是存放在mysql服务器中让管理人员头疼的是不便于查看这些大量的日志,于是乎搭建一个日志分析工具就非常的有必要性了。

四、基于web的loganalyzer日志分析工具的搭建

  本环境是针对上面的日志存放在mysql服务器中不方便查看,配置loganalyzer日志分析工具来分析查看日志

rsyslog服务器的配置步骤:

1、安装httpd,php,php-gd,php-mysql

    httpd用来提供web服务

     php使apache支持php,因为loganalyzer是用php编写

     php-mysql用于loganalyzer连接数据库

     php-gd用于绘图


[root@jie1 ~]# yum -y install httpd php php-mysql php-gd [root@jie1 ~]# mkdir -pv /web/loganalyzer  #存放loganalyzer的网页文件 mkdir: created directory `/web' mkdir: created directory `/web/loganalyzer'

2、下载loganalyzer源码包

 

[root@jie1 ~]# ls anaconda-ks.cfg  install.log  install.log.syslog  loganalyzer-3.6.4.tar.gz [root@jie1 ~]# tar xf loganalyzer-3.6.4.tar.gz [root@jie1 ~]# ls anaconda-ks.cfg  install.log.syslog  loganalyzer-3.6.4.tar.gz install.log      loganalyzer-3.6.4 [root@jie1 ~]# cd loganalyzer-3.6.4 [root@jie1 loganalyzer-3.6.4]# ls ChangeLog  contrib  COPYING  doc  INSTALL  src [root@jie1 loganalyzer-3.6.4]# mv src/* /web/loganalyzer/  #把src目录的所有文件移到存放loganalyzer的文件中 [root@jie1 loganalyzer-3.6.4]# cd contrib/ [root@jie1 contrib]# ls configure.sh  secure.sh [root@jie1 contrib]# mv ./*.sh  /web/loganalyzer/  #把脚本文件也移到loganalyzer文件中

3、执行脚本

 

[root@jie1 contrib]#cd /web/loganalyzer/ [root@jie1 loganalyzer]# bash configure.sh

4、修改httpd的配置文件,新建一个虚拟主机

 

vim /etc/httpd/conf/httpd.conf ################## ServerName 172.16.22.1:80 DirectoryIndex index.php index.html index.html.var #DocumentRoot "/var/www/html"     #注释掉默认存放网页文件的路径 <VirtualHost *:80>   DocumentRoot /web/loganalyzer   #指定存放loganalyzer网页文件的路径   ServerName www.jie.com </VirtualHost> #################

5、重启服务,创建loganalyzer的数据库,并授权
 

[root@jie1 loganalyzer]# service httpd restart Stopping httpd:                                            [  OK  ] Starting httpd:                                            [  OK  ] [root@jie1 loganalyzer]# mysql -u root -p Enter password: mysql> create database loganalyzer; Query OK, 1 row affected (0.04 sec) mysql> grant all on loganalyzer.* to lyzeruser@'172.16.22.1' identified by 'lyzeruser'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

6、安装loganalyzer






一、简介:

随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。

系统管理员遇到的常见问题如下:

1、日常维护过程中不可能登录到每一台服务器和设备上去查看日志; 
2、网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有可能是很久以前发生的某些操作造成的; 
3、在某些非法入侵的情况下,入侵者一般都会清除本地日志,清除入侵痕迹; 
4、zabbix等监控系统无法代替日志管理,无法监控如系统登录、计划任务执行等项目。

基于上述原因,在当前的网络环境中搭建一台用于日志集中管理的Rsyslog日志服务器就显得十分有必要了。

Rsyslog服务的优点如下:

1、Rsyslog服务器可以大多数的网络设备支持,在网络设备的系统设备选项中大多都有远程日志服务的配置选项。只需要填写上IP地址和端口(大多数设备已经默认是514了),然后确定就可以了; 
2、Linux服务器只需要在本地的Rsyslog服务配置中加入简单的一行就可以将日志发送到日志服务器,布署和配置起来十分简单; 
3、通过软件(如evtsys)也可以支持Windows服务器,布署和配置也不是很难,但是有些软件是要收费的; 
4、搭配前端的loganalyzer等软件,可以轻松实现图形化管理和查询日志。

二、系统环境及软件版本:

    Rsyslog_server: CentOS7.2

    Rsyslog_server IP:192.168.253.160

    Rsyslog_client: CentOS7.2 + Windows7

    所用软件:

    Rsyslog Version: rsyslog-7.4.7-12.el7.x86_64

    LogAnalyzer Version: loganalyzer-3.6.5.tar.gz

    MySQL Version:MySQL5.7

    Httpd Version:httpd-2.4.6-40.el7.centos.x86_64

    PHP Version:php-5.4.16-36.el7_1.x86_64

三、环境准备:

3.1 关闭防火墙:

# systemctl stop firewalld

3.2 将SELINUX设置为disabled

# setenforce 0# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

四、配置LAMP环境:

4.1 安装MySQL,由于CentOS7默认会安装Mariadb,因此使用MySQL官方提供快速的安装方法,地址:http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

# mkdir /home/rsyslog_server/tools -p            #创建下载文件存放目录
# cd /home/rsyslog_server/tools
# yum install wget -y
# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm  
# rpm -Uvh mysql57-community-release-el7-8.noarch.rpm        #安装MySQL官方yum仓库
# yum install mysql-community-server -y                                     #安装MySQL
# systemctl start mysqld.service
# systemctl status mysqld.service
# grep 'temporary password' /var/log/mysqld.log                        #查看初始密码
# mysql -u root -p
>ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';    #更改密码,密码需要符合以下规则:至少一个大写字母,一个小写字母,一个数字,一个特殊字符,而且密码长度需要超过8位

4.2 安装Apache及PHP

# yum install httpd -y# yum install php php-gd php-xml php-mysql -y

4.3 启动服务并加入开机自启动:

# systemctl start httpd.service# systemctl enable httpd.service# systemctl start mysqld.service# systemctl enable mysqld.service

4.4 测试PHP环境

# vi index.php    <?php    phpinfo()    ?>

在浏览器中输入http://192.168.253.160/index.php,若显示以下内容,则配置成功。

wKioL1cqMSCT_BeXAACefbZtW0A130.png

五、检查并安装服务端软件

5.1 检查是否安装了rsyslog软件

# rpm -qa rsyslog                  #CentOS7默认会安装rsyslog

5.2 安装rsyslog 连接MySQL数据库的模块

# yum install rsyslog-mysql -y     #rsyslog使用此模块将数据传入MySQL数据库,必须安装

六、配置服务器端

6.1 导入rsyslog-mysql 数据库文件

# cd /usr/share/doc/rsyslog-7.4.7/# mysql -uroot -p<mysql-createDB.sql# Enter password: 

6.2 登录数据库查看:

mysql> show databases;

wKioL1cqMX7DQCYrAAAOB9FFeQQ462.png

mysql> show tables;

wKioL1cqMZ_Be4vSAAAMiGXKjeQ011.png

导入数据库操作创建了Syslog 库并在该库中创建了两张空表SystemEvents 和SystemEventsProperties。

6.3 在MySQL下创建rsyslog用户并授权:

mysql> grant all on Syslog.* to rsyslog@'localhost' identified by 'MyNewPass4!';mysql> flush privileges;mysql> exit

6.4 配置服务端支持rsyslog-mysql 模块,并开启UDP服务端口获取网内其他LINUX系统日志;

# vi /etc/rsyslog.conf                             #按如下进行更改    #### MODULES ####    $Modload ommysql    *.* :ommysql:localhost,Syslog,rsyslog,MyNewPass4!        #localhost 表示本地主机,Syslog 为数据库名,rsyslog 为数据库的用户,123456为该用户密码。        $ModLoad immark                                # immark是模块名,支持日志标记    $ModLoad imudp                                 #imupd是模块名,支持udp协议    $UDPServerRun 514                              #允许514端口接收使用UDP和TCP协议转发过来的日志

6.5 重启rsyslog服务

# systemctl restart rsyslog.service

七、配置客户端

7.1 检查客户端有没有安装rsyslog

# rpm -qa rsyslog

7.2 配置rsyslog客户端发送本地日志到服务端

# vi /etc/rsyslog.conf     *.* @192.168.253.160:514        #在文件结尾处增加此内容

7.3 重启rsyslog服务

# systemctl restart rsyslog.service

7.4 编辑/etc/bashrc,将客户端执行的所有命令写入系统日志/var/log/messages中

# vi /etc/bashrc     export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'                #在结尾处加上此内容

设置使其生效

# source /etc/bashrc 

八、测试rsyslog_server可否正常接收rsyslog_client的日志

rsyslog_client执行以下操作:

wKiom1cqMxaD6UNDAAAutxytbDk048.png

rsyslog_server查看:

wKioL1cqNA-gKJ4cAABTqkww6IQ952.png说明服务端可以正常接收客户端的日志。

九、安装LogAnalyzer

# cd /home/rsyslog_server/tools/# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz# tar zxf loganalyzer-3.6.5.tar.gz# cd loganalyzer-3.6.5# mkdir -p /var/www/html/loganalyzer# cp -a src/* /var/www/html/loganalyzer/

十、在浏览器中进行安装LogAnalyzer

10.1 打开浏览器,输入http://192.168.253.160/loganalyzer

提示无配置文件,点击here按钮生成;

wKiom1cqNAmgHDCjAAChoWQm4MI349.png

10.2 点击next进行系统环境测试:

wKioL1cqNU2Q1LLCAAELO8IapEY181.png

此处提示没有config.php文件,使用contrib中的configure.sh脚本可生成;

wKioL1cqNU2hBbwqAAEtExRXt1U565.png

# cd contrib/# cp configure.sh /var/www/html/loganalyzer/# cd /var/www/html/loganalyzer/# sh configure.sh

此部分操作在/var/www/html/loganalyzer/目录下创建config.php文件并配置权限为666,也可以使用mkdir及chmod命令执行。

wKiom1cqNHigy2oJAAErad1aUL8851.png

10.3 继续下一步,填写数据库信息

wKioL1cqNU6A8INuAADnfHC1M5U426.png

点击next生成数据库中的表;

wKiom1cqNHjjXiyvAAC2F9RtI7o224.png

10.4 设置管理员

wKioL1cqNU6R3RhEAACtVFQo2Wo346.png

10.5 创建第一个系统日志source

wKiom1cqNHnAUrJmAAC1dcIKjxo395.png

wKioL1cqNU_zgw7kAAC591Gyx7o617.png

10.6 完成

wKioL1cqNVDD1T5XAAHN-Ex87zU198.png

Rsyslog + LogAnalyzer 日志服务器部署完毕,可根据需要进行设置。

 

 

 

 

 

 

 

 

参考:http://www.cnblogs.com/mchina/p/linux-centos-rsyslog-loganalyzer-mysql-log-server.html


0 0