Rsyslog日志管理

Linux日志管理

时间是日志管理的必要条件,必须要保持准确

CentOS系统中综合日志记录的内容存放在 /var/log/messages 文件中

日志的事件记录格式:

    日期时间   主机   进程[pid]:   事件内容

在Centos6、7开始日志管理的有rsyslog服务、ELK,在本文中介绍的是rsyslog


rsyslog服务

因为不同的应用程序有不同特性,为便于查看,所以rsyslog对这些不同的应用程序(称为Facility 设施)进行了分类:

auth、authpriv、cron、daemon、ftp、kern、lpr、mail、news、security(auth)、user、uucp、local0-local7(自定义)、syslog

因为日志事件的多样性,rsyslog又会对不同Facility的类别定义不同的Priority(优先级别),级别从低到高(事件信息越来越严重)如下:

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

通过结合上面的Facility 设施和Priority优先级别,在配置文件中/etc/rsyslog.conf中定义了不同应用程序存放日志的类型、级别以及分类后的存放路径

(logger是一个测试日志的小工具,可生成一个日志信息)


rsyslog的配置

rsyslog是以“.service”结尾的服务,默认开机自动启动

端口号:514(默认是不打开端口号的)

主配置文件/etc/rsyslog.conf是由以下三部分组成:

MODULES                          模块相关配置

GLOBAL DIRECTIVES    全局配置

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

从配置文件/etc/rsyslog.d/*.conf

每个设施对应的级别在配置文件中以“Facility.Priority  TARGET”格式进行设置,其中TARGET有以下几种分类:

1./var/log/FILE_NAME                       注意当路径前有“-”符号,则表示是异步写入日志

2.USER_NAME or *                            表示不记录日志,直接通知指定用户,普通用户可能会因为权限问题接收不到

3.@IP(UDP协议);@@IP (TCP协议) 表示将日志发送至指定主机下的/etc/rsyslog.conf文件中默认指定的文件中

 

远程主机日志若是需要发送至rsyslog服务器进行保存,需要进行如下设置:

1.rsyslog服务器要在配置文件 /etc/rsyslog.conf 中取消tcp或者udp模块的注释以及开启对应协议下的端口号

2.远程主机在配置文件/etc/rsyslog.conf中的RULES规则配置下,定义Facility.Priority,以及在TARGET上填写上述得第3种配置


日志管理的命令:journalctl(Centos7开始有),配置文件 /etc/systemd/journald.conf,“journalctl -h”可查看相关用法

不同日志有着对应的的查看小命令,如下:

/var/log/btmp                  用户失败登录日志---------------------->   lastb

/var/log/wtmp                 用户正常登录日志---------------------->   last

/var/log/lastlog               每个用户最近一次登录信息----------> lastlog

/var/log/dmesg               系统引导过程日志---------------------->  dmesg


实验:利用rsyslog将日志记录于MySQL数据库中

1.在rsyslog Server上安装需要的mysql模块程序包:rsyslog-mysql包

rsyslog-mysql包会提供专有的为日志建立的mysql数据库脚本,以及自带的模块,如下:

/usr/lib64/rsyslog/ommysql.so

/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

2.在MySQL Server,将第1步rsyslog-mysql包产生的脚本拷贝过来,并导入至MySQL数据库中,授权指定用户用来管理脚本生成的日志数据库

3.在rsyslog Server修改配置文件,加入rsyslog-mysql包自带的模块,并且结合TCP/UDP模块、端口,一起开启,并且在RULES规则下补充一条自定义规则,格式如下:

    Facility.Priority   :ommysql:DB_HOST_IP,DB_NAME,DB_USER,PASSWORD(对应填写的是MySQL服务器地址以及被授权管理的相关信息)

4.启动服务,即可成功运用

 

根据上一个实验,进行如下实验

实验:在网页站点通过loganalyzer应用程序更好的展示数据库的日志(此次实验基于php模块方式)

1.在rsyslog Server上,安装httpd、php、php-mysql以及php-gd程序包

2.下载loganalyzer程序包至rsyslog server,解压缩并将目录下的src文件夹拷贝至默认的网页站点目录下,还需另外执行两条命令:

touch config.php

chmod 666 config.php(最少需要w权限,或者可使apache用户对其有写权限)

3.启动httpd服务后,在网页上打开loganalyzer,在界面上进行其配置如下:

 

Rsyslog日志管理_第1张图片

(注意:Monitorware下的选项根据实际设定进行填写,注意大小写)

4.重启相关服务,即可实现应用


Logrotate日志存储

此工具是用来管理储存的日志文件不会过大,每个日志存储达到设定值大小后,会滚动生成新的文件继续进行存储新的日志

可在配置文件/etc/logrotate.conf 或在 /etc/logrotate.d/ 定义不同应用服务的转储策略


 

你可能感兴趣的:(Rsyslog日志管理)