1. 博客/

如何实现rsyslog的远程日志存储

·360 字·2 分钟
Linux Rsyslog

远程日志服务器的实现
#

  • rsyslog客户端:CentOS 7 ; 192.168.196.168
  • rsyslog服务端:CentOS 6 ; 192.168.196.155
  1. /etc/rsyslog.conf 客户端配置
#### RULES ####
*.info;mail.none;authpriv.none;cron.none         @@192.168.196.155

$ systemctl restart rsyslog
  • 配置文件格式:由三部分组成

    MODULES:相关模块配置

    GLOBAL DIRECTIVES:全局配置

    RULES:日志记录相关的规则配置

  • RULES配置格式:

    1. facility: *: 所有的facility facility1,facility2,facility3,…:指定的facility列表

    2. priority: *: 所有级别 none:没有级别,即不记录 PRIORITY:指定级别(含)以上的所有级别 =PRIORITY:仅记录指定级别的日志信息

    3. target: 文件路径:通常在/var/log/,文件路径前的-表示异步写入 用户:将日志事件通知给指定的用户, * 表示登录的所有用户 日志服务器:把日志送往至指定的远程服务器记录 @HOST ——- UDP传输 @@HOST ——- TCP传输 管道: | COMMAND,转发给其它命令处理

  1. /etc/rsyslog.conf 服务端配置
#### MODULES ####
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

$ service rsyslog restart
  1. 测试
[root@Centos7 ~]#logger "This is a test log from client~"

[root@Centos6 ~]# tail -n1 /var/log/messages
Aug  9 21:43:42 Centos7 root: This is a test log from client~

日志服务器连接数据库MYSQL
#

  • mysql服务器:CentOS 7 ; 192.168.196.168
  1. 在mysql server上授权rsyslog能连接至当前服务器
$ mysql -uroot -p123456
mysql> grant all on Syslog.* to 'syslog'@'192.168.196.%' identified by '123456';
  1. 在rsyslog服务器上安装mysql模块相关的程序包
$ yum install rsyslog-mysql
$ rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-mysql-5.8.10
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql                           <--用于创建rsyslog数据库及表的脚本文件
  1. 为rsyslog创建数据库及表
$ mysql -usyslog -h192.168.196.168 -p123456 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
  1. 配置rsyslog服务端将日志保存到mysql中
$ vim /etc/rsyslog.conf
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none              :ommysql:192.168.196.168,Syslog,syslog,123456
  1. 查看mysql数据库中日志数据
$ mysql -usyslog -h192.168.196.168 -p123456
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| test               |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> use 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
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

MariaDB [Syslog]> MariaDB [Syslog]> select * from SystemEvents \G;
*************************** 59. row ***************************				<--截取客户端触发的最近一条log
                ID: 59
        CustomerID: NULL
        ReceivedAt: 2017-08-09 22:06:04
DeviceReportedTime: 2017-08-09 22:06:25
          Facility: 1
          Priority: 5
          FromHost: Centos7
           Message:  This is a test log from client~
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: root:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL
         processid: 
          checksum: 0
59 rows in set (0.00 sec)

loganalyzer展示数据库中的日志
#

  1. 在rsyslog服务器上准备amp $ yum install httpd mysql-server php php-mysql php-gd

  2. 安装LogAnalyzer

$ tar xf loganalyzer-4.1.5.tar.gz 
$ cp -a loganalyzer-4.1.5/src /var/www/html/

$ cat loganalyzer-4.1.5/contrib/configure.sh                                <-- 源码文件中的configure脚本,手动执行所有命令
  #!/bin/sh
  touch config.php
  chmod 666 config.php
  
$ cd src
$ touch config.php
$ chmod 666 config.php
$ service httpd start
  1. Web页面配置loganalyzer
  • 浏览器访问http://192.168.196.155/src/install.php
loganalyzer11
  • 按步骤配置loganalyzer

前三步直接点击next,跳转到配置mysq数据库的页面,根据上文mysql服务器的信息进行配置;点击next完成配置

loganalyzer2
  • 浏览器访问http://192.168.196.155/src,可以按事件或者报表查看数据库中的日志
loganalyzer

Related

逻辑卷LVM的实现
·922 字·5 分钟
Linux LVM
/etc/fstab及/boot分区文件恢复
·23 字·1 分钟
Linux