您的位置:首页 > 其它

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

2017-05-11 20:31 615 查看
一、日志概述
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与priorityfacility:设施、信道从功能或程序上对日志进行分类,并由专门的工具负责记录其日志
常用的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格式详解由三部分组成,必须严格按照配置段位置添加配置
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详解
三、配置使用基于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 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/"
<?php
phpinfo();
?>

测试php和mysql结合



(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rsyslog loganalyzer