日志管理

1,rsyslog 系统日志服务

CentOS 6 以后版本的系统管理服务,用于管理小型服务的日志

rsyslog特性

多线程
UDP, TCP, SSL, TLS, RELP
MySQL, PGSQL, Oracle实现日志存储
强大的过滤器,可实现过滤记录日志信息中任意部分
自定义输出格式

2,rsyslog 管理

facility:设施,从功能或程序上对日志进行归类

auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth),
user, uucp, syslog
#自定议的分类
local0-local7

Priority 优先级别,从低到高排序

debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

参看帮助: man 3 syslog,man logger

[root@centos8 ~]#yum -y install man-pages
[root@centos8 ~]#man 3 syslog

3,rsyslog配置文件

/etc/rsyslog.conf 配置文件格式:由三部分组成
MODULES:相关模块配置
GLOBAL DIRECTIVES:全局配置
RULES:日志记录相关的规则配置

RULES配置格式:

facility.priority; facility.priority… target

facility格式:

* #所有的facility
facility1,facility2,facility3,... #指定的facility列表

priority格式:

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

target格式:

文件路径:通常在/var/log/,文件路径前的-表示异步写入
用户:将日志事件通知给指定的用户,* 表示登录的所有用户
日志服务器:@host,把日志送往至指定的远程UDP日志服务器 @@host 将日志发送到远程TCP日志服务器
管道: | COMMAND,转发给其它命令处理
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

4, 启用网络日志服务

启用网络日志服务功能,可以将多个远程主机的日志,发送到集中的日志服务器,方便统一管理

#开启514的监听端口
[root@centos8 ~]#vim /etc/rsyslog.conf
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

# Provides TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.html
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514") 
[root@localhost ~]# systemctl restart rsyslog
#另外一端的配置
[root@localhost ~]# vim /etc/rsyslog.conf 
*.info;mail.none;authpriv.none;cron.none                @10.1.1.41 
[root@localhost ~]# systemctl restart rsyslog
 	
#测试
[root@localhost ~]# logger "this is a test log"


5,利用mysql存储日志信息

5.1目标

利用rsyslog日志服务,将收集的日志记录于MySQL中

5.2 环境准备

两台主机
一台:rsyslog日志服务器,IP:10.1.1.40
一台:mariadb数据库服务器,IP:10.1.1.41

5.3 实现步骤
5.3.1 在rsyslog服务器上安装连接mysql模块相关的程序包
[root@localhost ~]# yum install rsyslog-mysql
#查看sql脚本文件内容
[root@localhost ~]# cat /usr/share/doc/rsyslog/mysql-createDB.sql
[root@localhost ~]# scp /usr/share/doc/rsyslog/mysql-createDB.sql 10.1.1.41:

5.3.2 准备MySQL Server
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# yum install -y mariadb-server
[root@localhost ~]# mysql < mysql-createDB.sql 
[root@localhost ~]# msyql
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| Syslog             |
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.001 sec)

MariaDB [(none)]> grant all on Syslog.* to 'rsyslog'@'10.1.1.%'  identified by '123';

5.3.3 配置日志服务器将日志发送至指定数据库
[root@localhost ~]# vim /etc/rsyslog.conf

module(load="ommysql")
*.info   													:ommysql:10.1.1.41,Syslog,rsyslog,123 

Database changed

MariaDB [Syslog]> SELECT COUNT(*) FROM SystemEvents;
+----------+
| COUNT(*) |
+----------+
|        0 |
+----------+
1 row in set (0.000 sec)

MariaDB [Syslog]> SELECT COUNT(*) FROM SystemEvents;
+----------+
| COUNT(*) |
+----------+
|       16 |
+----------+
1 row in set (0.000 sec)

6, 通过 loganalyzer 展示数据库中的日志

6.1 目标

通过 loganalyzer 展示数据库中的日志

6.2 环境准备

三台主机
一台日志服务器,利用上一个案例实现,IP:10.1.1.40,
一台数据库服务器,利用上一个案例实现,IP:10.1.1.41
一台当httpd+php 服务器,并安装loganalyzer展示web图形,IP:101.1.42

6.3 步骤

6.3.1 在10.1.1.42主机上安装php和相关软件包

[root@localhost ~]# yum -y install httpd php-fpm php-mysqlnd php-gd

[root@localhost ~]# tar xf loganalyzer-4.1.12_\(1\).tar.gz 
[root@localhost ~]# ll
total 4916
-rw-------. 1 root root    1195 May  4 20:04  anaconda-ks.cfg
drwxrwxr-x  5 root root      90 Apr 29 09:38  loganalyzer-4.1.12
-rw-r--r--  1 root root 5028816 Jun 14 08:37 'loganalyzer-4.1.12_(1).tar.gz'
[root@localhost ~]# 
[root@localhost ~]# mv loganalyzer-4.1.12/src/ /var/www/html/log               
[root@localhost ~]# touch /var/www/html/log/config.php          
[root@localhost ~]# chmod 666 /var/www/html/log/config.php 
[root@localhost ~]# systemctl restart httpd php-fpm


6.3.2 基于web页面初始化

日志管理
日志管理
日志管理
日志管理
日志管理

6.3.3 安全加固

chmod 644 /var/www/html/log/config.php
#注意图中数据库ip是41图中是错误的
上一篇:26.Linux平台日志管理系统-rsyslog入门到精通


下一篇:Python3 字典 update() 方法