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

centos 8 rsyslog 配置_centos 8 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/messages          
           authpriv.*                                                         /var/log/secure          
           mail.*                                                  -           /var/log/maillog          
           cron           .*                                                             /var/log/cron          
           *.emerg                                                 *          
           uucp,news.crit                                                     /var/log/spooler          
           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  ]          
           [root@jie1 ~]           #







centos 8 rsyslog 配置_centos 8 rsyslog 配置_02

centos 8 rsyslog 配置_mysql_03


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

centos 8 rsyslog 配置_数据库_04


思路:

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脚本,生成日志文件的数据库          
           [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'           @           '172.16.22.1'           identified by            'syslogpass'           ;             #设置用户访问数据库服务器中Syslog数据库的用户名和密码          
           Query OK, 0 rows affected (0.00 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:



防火墙iptables配置,以便可以进行日志收集

iptables -A INPUT -p udp -m udp --dport 514 -j ACCEPT

iptables -A INPUT -p tdp -m tdp --dport 514 -j ACCEPT

iptables  -A  INPUT -p tcp –dport 3306 -j ACCEPT

rsyslog的linux客户端的配置:








[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            #添加这行用于和服务器通信,这里172.16.16.21为日志服务器ip地址          
           *.*       :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  ]
[root@jie3 ~]#service rsyslog restart



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

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

centos 8 rsyslog 配置_网络_05

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

centos 8 rsyslog 配置_网络_06

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

centos 8 rsyslog 配置_数据库_07

rsyslog的winodws客户端的配置:


evtsys下载地址:http://code.google.com/p/eventlog-to-syslog/ 选择对应系统版本的文件;

将解压好的evtsys文件复制到C:\windows\system32文件夹下(64位操作系统也是相同目录)

安装evtsys为服务, evtsys.exe -i -h 172.16.22.1(其中172.16.22.1为日志服务器地址)

手动启动服务, 或者使用命令:net start “eventlog to syslog”

如果多机器部署的话,可以将上述三个命令写到批处理中自动执行。

虽然日志存放在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 /var/www/html/loganalyzer  #存放loganalyzer的网页文件        
         mkdir         : created directory `         /web         '        
         mkdir         : created directory `         /web/loganalyzer         '


2、下载loganalyzer源码包





[root@jie1 ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.4.tar.gz
[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 ~]           # 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/* /var/www/html/loganalyzer/  #把src目录的所有文件移到存放loganalyzer的文件中          
           [root@jie1 loganalyzer-3.6.4]           # cd contrib/          
           [root@jie1 contrib]           # ls          
           configure.sh  secure.sh          
           [root@jie1 contrib]           # mv ./*.sh  /var/www/html/loganalyzer/  #把脚本文件也移到loganalyzer文件中



3、执行脚本



[root@jie1 contrib]           #cd /var/www/html/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






[root@jie1 loganalyzer]           # service httpd restart  重启httpd服务          
           Stopping httpd:                                            [  OK  ]          
           Starting httpd:                                            [  OK  ]



5、安装loganalyzer,在浏览器输入http://172.16.22.1/loganalyzer

centos 8 rsyslog 配置_mysql_08

centos 8 rsyslog 配置_网络_09

centos 8 rsyslog 配置_网络_10

centos 8 rsyslog 配置_php_11

centos 8 rsyslog 配置_数据库_12

centos 8 rsyslog 配置_网络_13

centos 8 rsyslog 配置_网络_14

centos 8 rsyslog 配置_php_15


常见问题

1、  中文乱码

# vi /var/www/html/syslog/include/functions_common.php
1>return htmlentities($myStr, ENT_NOQUOTES, $content['HeaderDefaultEncoding']); //”UTF-8″);
2>return htmlentities($myStr,ENT_QUOTES,”UTF-8″);

#loganalyzer乱码的原因是使用了,htmlentities对输出进行编码,如果有中文会出现问题,应该指定字符集,将1>替换为2>便可。return htmlentities($myStr,ENT_QUOTES,”UTF-8″);

2、因为/var/log文件夹下数据均为只读,添加可读权限# chmod a+r /var/log/messages,否则会报如下错误。


转载于:https://blog.51cto.com/hao360/1344742