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格式详解

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


1

2

3

4


[[email protected]~]# 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详解


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26


#### 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/secure

mail.*                -/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/spooler

local7.*              /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  -h192.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            (mysql mysql-server rsyslog-mysql前期已安装)

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

[[email protected] ~]# cd /var/www/html/

[[email protected] html]# vim index.php

Hello word!

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

<?php

phpinfo();

?>

测试php和mysql结合

[[email protected] html]# cat index.php



<?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

[[email protected] loganalyzer]# ssh 192.168.137.150

[email protected]‘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

时间: 2025-01-31 08:53:59

Rsyslog日志收集服务并结合Loganalyzer工具展示的相关文章

linux下syslog-ng日志集中管理服务部署记录

syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点.比较 syslog ,syslog-ng 具有众多高级的功能:更好的网络支持,更加方便的配置,集中式的网络日志存储,并且更具有弹性.比如,使用syslogd时,所有的iptables日志与其他内核日志一起全部存储到了kern.log文件里.Syslog-ng则可以让你有选择性的将iptables部

rsyslog日志记录服务器

一.syslog系统 1.syslog:系统日志服务,统一日志管理 支持C/S架构:可通过UDP或TCP协议提供日志记录服务:实现集中收集日志功能 (1)日志.事件 历史事件日志,保存系统上过去一段时间的发生的事件 事件:系统引导启动.应用程序启动.应用程序尤其是服务类应用程序运行过程中的一些事件: (2)syslog种类 syslogd:system系统日志 klogd:kernel内核日志 2.syslog格式 事件产生的日期时间               主机        进程[pid

日志收集(一)

废话不多说,直接进入主题. 总体架构是 客户端统一用rsyslog日志收集,--->fluentd服务器上--->mongondb集群--->Elasticsearch+Kibana服务器上展示. rsyslog安装和配置 1.更改history格式 在/etc/profile.d目录下创建history.sh脚本,内容如下 HISTTIMEFORMAT='%F %T  ' HISTFILESIZE=10000 HISTSIZE=1000 HISTIGNORE='ls -l:pwd:da

日志收集分析系统架构

日志收集分析系统架构   一.部署架构 日志收集系统一般包括如图所示三层.Web服务器层,日志收集层,日志存储层.Web服务器层是日志的来源,一般部署web应用供用户访问,产生日志,该节点上一般需要部署日志收集程序的agent.日志收集层手机web服务器产生的日志传输给日志存储层,存储层一般使用分布式文件系统HDFS,日志可以存储在hdfs上或者hbase上. 以scribe作为日志收集系统架构,scribe分为scribe agent和scribe server 以kafka作为日志收集系统架

python 日志收集服务器

引因:  python 的日志收集服务是线程安全的(对同一个文件的写入,使用了锁),但是对于多进程的情况,它是无法处理的.python 官方文档推荐的做法是,使用tcp 服务器专门用于日志的收集,以确保对的文件的写入是安全的.这里提供了日志收集服务器基于twisted的实现,可供参考,程序在centos上进行了测试,并可用于生产环境 当client 和server 在一台机器上时,每秒可以处理6000条日志记录 #!/usr/bin/env python # -*- coding:utf-8 -

分布式日志收集系统实践(视频教程)

日志收集软件五花八门,最终用户没有精力,也不可能把所有的日志工具都拿过来试一遍,很多企业常见架构如图1所示. 图1 传统日志收集架构 这种架构中,除了日志标准化问题.存储的性能问题,关键是在故障来临时,无法在上亿条的日志中迅速找出故障日志,及诱发因素.接着我们看看OSSIM系统是如何处理的. 图2 分布式日志收集 在图2中,展示了基于OSSIM的分布式日志收集架构,其中还包含了Redis+RabbitMQ消息中间件处理系统,技术实现已经在<开源安全运维平台OSSIM最佳实践>中讲述,下面为大家

Linux 之rsyslog+LogAnalyzer 日志收集系统

一.LogAnalyzer介绍 LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络活动数据,包括系统日志,事件日志和其他许多日志源.由于它只是将数据展示到我们用户的面前,所以数据本身需要由另一个程序收集,比如syslogd,rsyslog(现在是发行版的默认的syslogd),WinSyslog或MonitorWare代理.LogAnalyzer同样适用于Linux和Windows.它主要是用PHP编写的自由软件,基于GPL的开源应用程序.数据可以从数据库,也

RHEL6.4 搭建 rsyslog 日志服务 rsyslog+mysql+loganalyzer

软件提供的功能: 1.rsyslog是RHEL或centos系统6.x版本的日志服务,代替以前系统的syslog服务.在这个架构中rsyslog服务主要是收集日志的功能,把日志归类,写入数据库. 2.mysql是简单的数据库,在这个架构中主要任务是存放收集过来的日志信息,以便提供给loganalyzer软件来显示出来. 3.loganalyzer是一个日志分析工具,比较简单.在这个架构中主要是从mysql数据库中提取数据依条形和图形直观的显示出来,提供筛选.搜索.归类.统计等功能. 4.evts

rsyslog日志服务

日志 下周 文件服务 ftp,nfs,samba *防火墙 iptables pam 下下周 nginx 集群 lvs 日志:历史事件记录:但不是操作步骤的记录 事件:时间,时间,日志级别(定义事件的关键程度) syslog: c5 klogd:为kernel记录信息 syslogd:为系统记录日志 较小规模的日志系统 记录格式:日期时间,主机,进程号:事件内容 C/S架构:通过tcp或udp提供日志记录服务 rsyslog 增强版syslog   c6,7 rsyslogd特性:多线程 udp