- 博客/
如何实现rsyslog的远程日志存储
·360 字·2 分钟
Linux
Rsyslog
远程日志服务器的实现#
- rsyslog客户端:CentOS 7 ; 192.168.196.168
- rsyslog服务端:CentOS 6 ; 192.168.196.155
/etc/rsyslog.conf
客户端配置
#### RULES ####
*.info;mail.none;authpriv.none;cron.none @@192.168.196.155
$ systemctl restart rsyslog
配置文件格式:由三部分组成
MODULES:相关模块配置
GLOBAL DIRECTIVES:全局配置
RULES:日志记录相关的规则配置
RULES配置格式:
facility
: *: 所有的facility facility1,facility2,facility3,…:指定的facility列表priority
: *: 所有级别 none:没有级别,即不记录 PRIORITY:指定级别(含)以上的所有级别 =PRIORITY:仅记录指定级别的日志信息target
: 文件路径:通常在/var/log/,文件路径前的-表示异步写入 用户:将日志事件通知给指定的用户, * 表示登录的所有用户 日志服务器:把日志送往至指定的远程服务器记录 @HOST ——- UDP传输 @@HOST ——- TCP传输 管道: | COMMAND,转发给其它命令处理
/etc/rsyslog.conf
服务端配置
#### MODULES ####
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$ service rsyslog restart
- 测试
[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
- 在mysql server上授权rsyslog能连接至当前服务器
$ mysql -uroot -p123456
mysql> grant all on Syslog.* to 'syslog'@'192.168.196.%' identified by '123456';
- 在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数据库及表的脚本文件
- 为rsyslog创建数据库及表
$ mysql -usyslog -h192.168.196.168 -p123456 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
- 配置rsyslog服务端将日志保存到mysql中
$ vim /etc/rsyslog.conf
$ModLoad ommysql
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.196.168,Syslog,syslog,123456
- 查看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展示数据库中的日志#
在rsyslog服务器上准备amp
$ yum install httpd mysql-server php php-mysql php-gd
安装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
- Web页面配置loganalyzer
- 浏览器访问
http://192.168.196.155/src/install.php
- 按步骤配置loganalyzer
前三步直接点击next
,跳转到配置mysq数据库的页面,根据上文mysql服务器的信息进行配置;点击next
完成配置
- 浏览器访问
http://192.168.196.155/src
,可以按事件或者报表查看数据库中的日志
Related
逻辑卷LVM的实现
·922 字·5 分钟
Linux
LVM
/etc/fstab及/boot分区文件恢复
·23 字·1 分钟
Linux