千家信息网

Rsyslog日志收集服务并结合Loganalyzer工具展示

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,一、日志概述1、rsyslog简介syslog是日志收集存储系统,负责记录遵守此服务的内核、程序的日志信息。一般记录为:"日期时间,主机,进程:事件"。syslog不仅可以记录本地的系统日志,也可以通
千家信息网最后更新 2026年11月01日Rsyslog日志收集服务并结合Loganalyzer工具展示

一、日志概述

1、rsyslog简介

syslog是日志收集存储系统,负责记录遵守此服务的内核、程序的日志信息。一般记录为:"日期时间,主机,进程:事件"。syslog不仅可以记录本地的系统日志,也可以通过tcp, udp协议记录远程主机的程序日志信息。


syslog:系统日志,是一种服务,有两个进程

syslogd:记录应用程序相关的日志

klogd:记录内核相关的日志


rsyslog:是syslog的升级版,使用多线程并发记录本地或远程日志,支持存储日志信息在MySQL,PGSQL, Oracle等RDBMS中。同时拥有强大的过滤器功能,可以对日志中任意内容进行过滤。

rsyslog是CentOS 6以后的系统使用的日志系统,与之前的syslog日志系统相比,具有以下优点:

支持多线程

支持TCP、SSL、TLS、RELP等协议

强大的过滤器,可实现过滤日志信息中的任意部分

支持自定义输出格式

适用于企业级别日志记录需求

模块化


日志的记录格式:

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


2、rsyslog的一些概念

系统上的应用程序指定某一信道记录日志,信道默认已经设定了日志的记录级别,一旦应用程序产生了日志信息,通过该信道就会把日志文件记录在指定的本地文件、数据库或远程rsyslog服务器中。

当然应用程序输出的日志一般也会按照级别划分,比如sshd_conf中就定义了信道为authpriv,级别为info的日志输出:
# Logging - SyslogFacility AUTHPRIV - #LogLevel INFO


3、rsyslog支持的facility与priority

facility:设施、信道

从功能或程序上对日志进行分类,并由专门的工具负责记录其日志

常用的facility:
lpr: 打印相关的日志
auth: 认证相关的日志
user: 用户相关的日志
cron: 计划任务相关的日志
kern: 内核相关的日志
mail: 邮件相关的日志
mark: 标记相关的日志
news: 新闻相关的日志
uucp: 文件copy相关的日志
daemon: 系统服务相关的日志
authpri: 授权相关的日志
security: 安全相关的日志
syslog: 由syslogd服务产生的日志信息,虽然服务名称改为rsyslogd,但是很多配置都还是沿用了syslogd的,这里并没有修改服务名
local0-local7:自定义相关的日志信息(自定义时可以使用通配符)
priority:级别
debug           #有调式信息的,日志信息最多info            #一般信息的日志,最常用notice          #最具有重要性的普通条件的信息warning, warn   #警告级别err, error      #错误级别,阻止某个功能或者模块不能正常工作的信息crit            #严重级别,阻止整个系统或者整个软件不能正常工作的信息alert           #需要立刻修改的信息emerg, panic    #内核崩溃等严重信息###从上到下,级别从低到高,记录的信息越来越少,如果设置的日志内性为err,则日志不会记录比err级别低的日志

二、rsyslog配置

1、程序环境

程序包:rsyslog

配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/*.conf

主程序:/usr/sbin/rsyslogd

模块路径:/lib64/rsyslog/

Unit File:/usr/lib/systemd/system/rsyslog.service


2、配置文件/etc/rsyslog.conf格式详解

由三部分组成,必须严格按照配置段位置添加配置

1234[root@centos6.8~]# grep "####" /etc/rsyslog.conf#### MODULES ######## GLOBAL DIRECTIVES ######## RULES ####

MODULES:定义装载的模块,如接下来的使用mysql模块记录日志则需要在这里配置

GLOBAL DIRECTIVES:定义了全局的环境

RULES:定义了记录日志的设施以及等级等信息

定义规则的格式为:

facility.priority Target


facility可以使用的通配符:

*:所有

,:列表,如f1,f2,f3...

!:取反

priority可以使用的通配符:

*:所有日志级别

none:没有任何级别,也就是不记录日志信息

Target:目标,指日志保存的位置

可以使用的有:

文件,如/var/log/messages

用户:* 表示当前登录系统的所有用户

日志服务器:@host ##host: 必须要监听在tcp或udp协议514端口上提供服务;

管道:| COMMAND

例如:

mail.info /var/log/maillog

表示将mail产生的info日志级别以上的信息都记录在/var/log/maillog文件中

mail.=info 表示仅记录info级别日志

mail.!info 表示记录info以下级别的日志

*.info 表示所有设施的info级别

mail,news.info 表示mail和news都使用info级别


有些日志记录二进制格式:/var/log/wtmp,/var/log/btmp

/var/log/wtmp: 当前系统上成功登录的日志; last

/var/log/btmp:当前系统上失败的登录尝试; lastb

lastlog命令:显示当前系统每一个用户最近一次的登录时间;


3、配置文件/etc/rsyslog.conf详解

1234567891011121314151617181920212223242526#### MODULES 日志的模块####$ModLoad imuxsock #imuxsock是模块名,支持本地系统日志的模块$ModLoad imklog #imklog是模块名, 支持内核日志的模块#$ModLoad immark #immark是模块名,支持日志标记#$ModLoad imudp #imupd是模块名,支持udp协议#$UDPServerRun 514 #允许514端口接收使用UDP和TCP协议转发过来的日志#$ModLoad imtcp #imtcp是模块名,支持tcp协议#$InputTCPServerRun 514#### GLOBAL DIRECTIVES ####定义全局日志格式的指令$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #定义日志格式默认模板$IncludeConfig /etc/rsyslog.d/*.conf #载入rsyslog.d文件中所有以conf结尾的文件#### RULES ####*.info;mail.none;authpriv.none;cron.none /var/log/messages#####记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间#任务相关的信息除外authpriv.* /var/log/secure#####authpriv验证相关的所有信息存放在/var/log/securemail.* -/var/log/maillog#####邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大cron.* /var/log/cron####计划任务有关的信息存放在/var/log/cron*.emerg * (*表示所有用户)###记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人uucp,news.crit /var/log/spooler####记录uucp,news.crit等存放在/var/log/spoolerlocal7.* /var/log/boot.log####本地服务器的启动的所有日志存放在/var/log/boot.log中


三、配置使用基于mysql存储日志信息,并结合前端loganalyzer工具分析日志

1、配置rsyslog日志存储于mysql中

(1) 准备好MySQL服务器,创建用户,授权对Syslog数据库的全部访问权限;

mysql> grant all on Syslog.* to 'syslog'@'192.168.137.%' identified by '123456';


(2) rsyslog服务起上安装rsyslog-mysql程序包;

yum install -y rsyslog-mysql


(3) 创建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 ##建库脚本位置


# yum install mysql -y ##rsyslog服务器安装mysql客户端

# mysql -usyslog -p123456 -h292.168.137.130 --default-character-set=utf8 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

mysql> use Syslog

Database changed

mysql> show tables;

+------------------------+

| Tables_in_Syslog |

+------------------------+

| SystemEvents |

| SystemEventsProperties |


(4) 配置rsyslog使用ommysql模块

vim /etc/rsyslog.conf

#### MODULES ####

$ModLoad ommysql

#### RULES ####

*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.137.130,Syslog,syslog,123456

重启rsyslog服务: service rsyslog restart


(5)测试日志记录

rsyslog服务器:yum remove lrzsz

mysql> select * from SystemEvents\G


2、安装loganalyzer(rsyslog专用前端展示工具)

(1)准备环境,loganalyzer为php程序开发的web页面

yum install -y httpd php php-mysql php-gd (mysql mysql-server rsyslog-mysql前期已安装)

测试httpd能否正常工作,能否通过php工作

[root@master ~]# cd /var/www/html/

[root@master html]# vim index.php

Hello word!

My Blog is "http://guopeng7216.blog.51cto.com/"

phpinfo();

?>


测试php和mysql结合

[root@localhost html]# cat index.php

$link=mysql_connect('192.168.137.150','syslog','123456');

if($link){

echo "success..frank!";

}else{

echo "failed..frank!".mysql_error();

}

mysql_close($link);

phpinfo();

?>


(2)、下载loganalyzer并进行安装配置;

http://pan.baidu.com/s/1nvsN5rz

~]# tar xf loganalyzer-3.6.4.tar.gz

~]# cd loganalyzer-3.6.4

loganalyzer-3.6.4]# cp -r src /var/www/html/loganalyzer

loganalyzer-3.6.4]# cp contrib/*.sh /var/www/html/loganalyzer/

loganalyzer-3.6.4]# cd /var/www/html/loganalyzer/

loganalyzer]# chmod u+x *.sh

loganalyzer]# ./configure.sh

loganalyzer]# ./secure.sh

loganalyzer]# chown -R apache:apache ./*


修改rsyslog的配置文件rsyslog.conf,只需开启两个模块以及允许通过tcp,udp发出接受信息,并且设置信息都保存至mysql数据库的Syslog中,

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514


# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514


日志数据存储在数据库中,其它全部注释掉

*.* :ommysql:192.168.137.150,Syslog,syslog,123456


安装loganalyzer:

http://192.168.137.150/loganalyzer/install.php



对loganalyzer日志系统进行测试,在本机上通过ssh连接192.168.137.150

[root@centos-7 loganalyzer]# ssh 192.168.137.150

root@192.168.137.150's password:

Last login: Thu May 11 19:37:06 2017 from centos-7


重新配置loganalyzer:

loganalyzer]# rm -f config.php

loganalyzer]# ./configure.sh

loganalyzer]# ./secure.sh

loganalyzer]# chmod 666 config.php

http://192.168.137.150/loganalyzer/install.php

日志 信息 级别 系统 服务 模块 配置 文件 程序 支持 格式 数据 服务器 用户 信道 内核 数据库 存储 登录 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技股互联网 互联网与科技发展 凡科互联网科技 云电互联网科技 米客互联网科技 大白互联网科技 互联网金融科技委员会 居家互联网科技有限公司 创业天下互联网科技有限公司 昭通云南众福互联网科技有限公司 茂名市互联网科技产业园 花神(南京)互联网科技有限公司 知域互联网科技有限公司大骗子 宜昌元轩互联网科技有限公司 想开互联网科技公司怎么样 互联网金融科技名词解释 互联网公司高科技产品 互联网科技融合创新 马化腾互联网科技教学 互联网企业和网络科技有限公司 科技和互联网公司 广州互联网科技公司 互联网的科技创新 科技互联网公司logo 互联网巨头投资的硬核科技 互联网时代科技改变生活 速维有品互联网信息科技(苏州)有限公司 呼和浩特新华互联网科技学院 张家口科技产业互联网平台 如何强化互联网金融科技
0