rsyslog+loganalyzer+mysql部署日志服务器

rsyslog是一个用来管理系统日志的开源程序,是早前syslog的升级版,对原有的日志系统进行了功能的扩展。

rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。另外就是可以配置为客户端,用来过滤和发送内部日志数据到本地文件夹(如/var/log)或一台远程rsyslog服务器上。

一、rsyslog特性

多线程

支持通过TCP,SSL,TLS,RELP协议实现日志数据的可靠传输

支持输出日志到MySQL, PGSQL, Oracle等多种关系型数据中

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

可自定义输出格式

支持数据的加密和压缩传输

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

二、rsyslog配置

rsyslog的主配置文件:/etc/rsyslog.conf

1、定义过滤和输出规则的格式为:

facility.priority   Target

⑴facility:设施,产生日志消息的子系统,从功能或程序上分类

可选值:auth,authpriv,cron,daemon,ftp,kern,lpr,mail,mark,news,security,syslog,user,uucp,local0~local7

指定设施时可以使用通配符:

*:所有

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

!:取反

⑵priority:日志级别

从低到高依次为:debug(7),info(6),notice(5),warning(4),err(3),crit(2),alert(1),emerg(0)

通配符:

*:所有级别

none:没有任何级别

示例:

mail.info:info级别及比info级别更高级别的日志消息都会被记录

mail.=info:仅记录info级别

mail.!info:除了info级别的都会被记录

*.info:所有facility的info(及以上)级别

mail.*:mail的所有级别

mail.notice;news.info:

mail,news.info:mail和news的info(及以上)级别

⑶Target:

文件路径:例如/var/log/messages

系统日志是比较重要的信息,一般是同步写入磁盘,但这样也会影响性能,路径前若带有“-”则表示异步写入

用户:*,当前系统上所有已登录的用户

日志服务器:@SERVER_IP

管道:| COMMAND

2、启用日志服务器功能

# Provides UDP syslog reception

$ModLoad imudp

$UDPServerRun 514

# Provides TCP syslog reception

$ModLoad imtcp

$InputTCPServerRun 514

[[email protected] ~]# rpm -q rsyslog
rsyslog-5.8.10-10.el6_6.x86_64
[[email protected] ~]# rpm -ql rsyslog
/etc/logrotate.d/syslog
/etc/pki/rsyslog
/etc/rc.d/init.d/rsyslog
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/sysconfig/rsyslog
/lib64/rsyslog
...
[[email protected] ~]# vim /etc/rsyslog.conf
...
#### MODULES ####

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
...
...
#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# 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                                                 *

# 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.lo
...
[[email protected] ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[[email protected] ~]# netstat -tuanp | grep ‘rsyslogd‘
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      5063/rsyslogd       
tcp        0      0 :::514                      :::*                        LISTEN      5063/rsyslogd       
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               5063/rsyslogd       
udp        0      0 :::514                      :::*                                    5063/rsyslogd
[[email protected] ~]# vim /etc/rsyslog.conf
...
*.info;mail.none;authpriv.none;cron.none                @192.168.30.20
...
[[email protected] ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[[email protected] ~]# yum -y install tree
...
[[email protected] ~]# tail /var/log/messages 
...
Feb 20 23:56:06 node3 kernel: imklog 5.8.10, log source = /proc/kmsg started.
Feb 20 23:56:06 node3 rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="5442" x-info="http://www.rsyslog.com"] start
Feb 20 23:56:19 node3 yum[5447]: Installed: tree-1.5.3-3.el6.x86_64

3、rsyslog支持将日志存储于MySQL服务器中:

①安装rsyslog-mysql包;

②创建rsyslog依赖的数据库:

# mysql < /usr/share/doc/rsyslog-5.8.10/createDB.sql

③启用相关模块

在#### Modules #####段启用模块:

$ModLoad ommysql

在####rules####段中定义记录日志信息于数据库中

facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD

④重启rsyslog服务

[[email protected] ~]# yum -y install rsyslog-mysql
...
[[email protected] ~]# 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
[[email protected] ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
[[email protected] ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.36-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| performance_schema |
| test               |
| vsftpd             |
+--------------------+
6 rows in set (0.26 sec)

MariaDB [(none)]> use Syslog
Database changed
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

MariaDB [Syslog]> grant all on Syslog.* to [email protected] identified by ‘logpass‘;
Query OK, 0 rows affected (0.24 sec)

MariaDB [Syslog]> grant all on Syslog.* to [email protected] identified by ‘logpass‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [Syslog]> flush privileges;
Query OK, 0 rows affected (0.08 sec)

MariaDB [Syslog]> exit

[[email protected] ~]# vim /etc/rsyslog.conf
...
#### MODULES ####
...
$ModLoad ommysql
...
#### RULES ####
...
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog,loguser,logpass
...
[[email protected] ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[[email protected] ~]# yum -y remove tree
...
[[email protected] ~]# mysql
...
MariaDB [(none)]> use Syslog
Database changed

MariaDB [Syslog]> select * from SystemEvents\G
...
*************************** 3. row ***************************
                ID: 3
        CustomerID: NULL
        ReceivedAt: 2016-02-19 01:29:14
DeviceReportedTime: 2016-02-21 00:59:50
          Facility: 1
          Priority: 6
          FromHost: node3
           Message:  Erased: tree
        NTSeverity: NULL
...

4、loganalyzer:一款通过webGUI展示日志信息的工具

# yum -y install httpd php php-mysql php-gd

# tar xf loganalyzer-3.6.5.tar.gz

# mkdir /var/www/html/loganalyzer

# cp -r loganalyzer-3.6.5/src/* /var/www/html/loganalyzer/

# cp -r loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer/

# cd /var/www/html/loganalyzer/

# chmod +x configure.sh secure.sh

# ./configure.sh

# ./secure.sh

# chmod 666 config.php

# chown -R apache.apache ./*  #编译安装的httpd其服务进程是以daemon用户的身份运行的

访问:http://SERVER_IP/loganalyzer/

[[email protected] ~]# tar xf loganalyzer-3.6.5.tar.gz 
[[email protected] ~]# ls loganalyzer-3.6.5
ChangeLog  contrib  COPYING  doc  INSTALL  src
[[email protected] ~]# less loganalyzer-3.6.5/INSTALL
...
 Installation in Detail
 ----------------------

  1. Upload all files from the loganalyzer/src/ folder to you webserver. 
     The other files are not needed on the webserver. 

  2. If your webserver has write access to the LogAnalyzer folder, 
     you can skip the following step: 
     
         Upload the scripts configure.sh and secure.sh from the 
         contrib folder to your webserver, into the same folder 
         where you uploaded the other LogAnalyzer files into. Then set 
         the execution flag to them (chmod +x configure.sh secure.sh). 
         
         Now run ./configure.sh, this will create a blank config.php, 
         and will also set write access to everyone to it.
         
         You can of course do this manually if you want. 
...
[[email protected] ~]# mkdir /web/htdocs/loganalyzer   #本例中web服务器的站点根目录为/web/htdocs
[[email protected] ~]# cp -r loganalyzer-3.6.5/src/* /web/htdocs/loganalyzer/
[[email protected] ~]# cp -r loganalyzer-3.6.5/contrib/* /web/htdocs/loganalyzer/
[[email protected] ~]# cd /web/htdocs/loganalyzer/
[[email protected] htdocs]# ls
admin               chartgenerator.php  convert.php  details.php  favicon.ico  index.php    lang                 reports.php  statistics.php  userchange.php
asktheoracle.php    classes             cron         doc          images       install.php  login.php            search.php   templates
BitstreamVeraFonts  configure.sh        css          export.php   include      js           reportgenerator.php  secure.sh    themes
[[email protected] htdocs]# chmod +x configure.sh secure.sh
[[email protected] htdocs]# ./configure.sh
[[email protected] htdocs]# ./secure.sh
[[email protected] htdocs]## ls   #执行以上两个脚本后会生成文件config.php
admin               chartgenerator.php  configure.sh  css          export.php   include      js         reportgenerator.php  secure.sh       themes
asktheoracle.php    classes             convert.php   details.php  favicon.ico  index.php    lang       reports.php          statistics.php  userchange.php
BitstreamVeraFonts  config.php          cron          doc          images       install.php  login.php  search.php           templates
[[email protected] htdocs]# chmod 666 config.php
[[email protected] htdocs]# chown -R daemon.daemon ./*   #本例中的httpd是编译安装的,其服务进程以daemon用户身份运行

时间: 02-21

rsyslog+loganalyzer+mysql部署日志服务器的相关文章

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

CentOS 下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.安装并设置LAMP环境       yum -y install httpd mysql* php* 二.安装Rsyslog     服务器端:    yum install  rsyslog rsyslog-mysql      rsyslog-mysql :将日志传送到MySQL 数据库     mysql -uroot -p1234 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql    配置数据权限    # mysql -uroo

Centos6.5下利用rsyslog+loganalyzer+mysql部署日志服务器

RHEL 6.x 搭建rsyslog日志服务器和loganalyzer日志分析工具 =============================================== rsyslog的介绍 logrotate日志滚动的介绍 rsyslog的存储途径 基于web的loganalyzer日志分析工具的搭建 ====================================================== 一.rsyslog的介绍 Linux的日志记录了用户在系统上一切操作,看日

lamp+loganalyzer+rsyslog server部署日志服务器

lamp+loganalyzer+rsyslogserver部署日志服务器 网络环境 日志服务器 (lamp+loganalyzer+rsyslog) IP : 172.16.6.63/16 主机名: log.com 系统发行本: CentOS release 6.6 (Final) loganalyzer 版本:loganalyzer-3.6.5.tar.gz lamp apche rpm: rpmhttpd-2.2.15-39.el6.centos.x86_64 php rpm: php-g

Rsyslog+Loganalyer+MySQL下部署日志服务器

Rsyslog+Loganalyer+MySQL下部署日志服务器 准备工作(三台Centos服务器Centos7): MySQL服务器(192.168.1.70):收集储存管理日志 web/Rsyslog服务器(192.168.1.52):搭建httpd服务,提供在web端查看日志信息 测试服务器(192.168.1.71):生成日志,并将日志信息发送给Rsyslog服务器 关闭防火墙和selinux 配置MySQL服务器 安装MySQL服务,创建用户,授权对Syslog数据库的访问. #yum

rsyslog+mysql+loganalyzer 环境搭建日志服务器

环境:CentOS6.6 rsyslog+mysql+loganalyzer 环境搭建日志服务器 Client端:    192.168.2.10 MySQL服务器:  192.168.2.11 # Client端安装必备的软件包 yum install rsyslog-mysql -y 生成了2个文件: /lib64/rsyslog/ommysql.so           #rsyslog支持数据库的模块文件 /usr/share/doc/rsyslog-mysql-5.8.10/creat

rsyslog+analyzer+mysql实现日志收集展示

why->what->where->when->who->how 1.为什么要进行日志收集?为什么要用到rsyslog? 日志是我们对系统和应用程序的运行状况分析的根本依据,同时一些日志也有其特殊的作用,例如mysql的二进制日志和事务日志.因此要进行日志收集,为了避免重复的进行日志系统的实现,因此在linux发行版中提供了系统日志收集-rsyslogd 2.什么是rsyslog? rsyslog的前身是syslog,其是一个日志收集器,用于应用程序日志收集和内核日志收集.

基于rsyslog+mysql+loganalyzer构建一个小而美的日志服务器

前言: 每当我们遇到问题抓耳挠腮,一脸懵那啥的时候,也许看一下日志就瞬间豁然开朗,所以,一个易用的日志服务器还是很重要的.我们先不介绍elk,那个牛逼吊炸天的日志分析系统.今天我们先来构建一个小的日志服务器.elk我们以后再说~ 正文: 当我们配置完一个服务,启动报错时,那感觉就像吃了啥一样,别提多难受,除非服务程序本身有检测配置文件的程序,不然我们就得依赖linux自己的集中日志服务器rsyslog了.不过,有时候也许我们想搜索一下某条日志,或者向用可视化的界面进行统计分析.此时我们可以把日志