系统日志的重要性,相信大家都深有体会,当发生故障后,第一时间就是查看相关报错信息和日志信息,以定位问题所在,还可以基于日志,进行日志的分析,从而获取系统运行状态的一些规律,本篇就介绍关于系统日志的先关内容,具体分为:

1、rsyslog相关概念的介绍

2、自定义日志存储的信道(facility)和存储位置,让rsyslog作为服务端记录rsyslog客户端的日志信息

3、定义rsyslog的日志存储在mysql数据库中

4、利用loganalyzer实现对存储在mysql数据库中的rsyslog日志信息,进行web图形化分析管理

环境:

CentOS7系统,IP为10.1.32.72

LAMP组合采用:yum方式的rpm包安装

httpd-2.4

php-fpm(也就是php基于fastcgi方式与httpd交互的实现)

mariadb

第一章rsyslog相关概念的介绍 1、rsyslog是什么

rsyslog是系统上用来进行日志管理的工具,其C/S架构的程序,可以为当前系统记录系统相关的日志信息,也支持为其他软件或其他的系统记录日志信息,其相关特性表现为:

多线程工作;

基于UDP、TCP、协议,还可以基于tls/ssl进行加密通信,还可以基于RELP进行通信;

存储日志信息于MySQL、PostgreSQL(PGSQL)、Oracle等RDBMS;

强大的过滤器,实现过滤日志信息中任何部分的内容;

自定义的输出格式;

2、rsyslog程序环境

程序包:

rsyslog 程序包

rsyslog-mysql 支持将日志信息记录到mysql的程序包

配置文件:

/etc/rsyslog.conf、/etc/rsyslog.d/*.conf

主程序:

/usr/sbin/rsyslogd

模块组件:

/usr/lib64/rsyslog/

Unit file:

/usr/lib/systemd/system/rsyslog.service

3、rsyslog相关的术语

facility:收集日志的通道设施,信道,可以理解为日志通过那个虚拟设备发送进来

常见的facility有:

auth # 认证相关的

authpriv # 权限,授权相关的

cron # 任务计划相关的

daemon # 守护进程相关的

kern # 内核相关的

lpr # 打印相关的

mail # 邮件相关的

mark # 标记相关的

news # 新闻相关的

security # 安全相关的,与auth 类似

syslog # syslog自己的

user # 用户相关的

uucp # unix to unix cp 相关的

local0 到 local7 # 用户自定义使用

* # *表示所有的facility

priority:(log level)日志的级别,一般有以下几种级别(从低到高)

debug # 程序或系统的调试信息

info # 一般信息

notice # 不影响正常功能,需要注意的消息

warning/warn # 可能影响系统功能,需要提醒用户的重要事件

err/error # 错误信息

crit # 比较严重的

alert # 必须马上处理的

emerg/panic # 会导致系统不可用的

* # 表示所有的日志级别

none # 跟* 相反,表示啥也没有

target:(动作)日志记录的位置,常见的有:

文件:

将指定的日志信息记录到指定的文件中

-文件:

表示将日志信息记录到指定的文件中,-表示异步写入

用户:

将日志事件通知给指定的用户,通常是将日志信息发送给登录到当前系统上的所有用户的终端

日志服务器:

[email protected]_SERVER ,表示将日志信息发送给指定的日志服务器

管道:

格式为 |COMMAND 表示将日志信息管道送给指定的命令

4、记录日志定义的格式为:

facility.priority target

表示将哪个信道传进来的日志,哪个日志级别(及其之上的日志级别),记录到哪个目标中

facility格式:

* 表示所有的facility

FACI1,FACI2,FACI1,… 列表中给定的所有facility

FACI1.PRI1;FACI2.PRI2;FACI3.PRI3;… 列表中给定的facility和对应的priority及其之上级别的记录

priority格式:

* 所有级别

none 没有级别,不记录日志

PRIORITY:此级别(含)及其以上的所有级别

=PRIORITY: 仅指定的级别

例如:

*.info;mail.none;authpriv.none;cron.none /var/log/messages

表示所有信道的info级别以上的信息,除了mail设备,authprioriv设备、cron设备的日志,都记录到/var/www/messages文件

authpriv.* /var/log/secure

表示authpriv设备上所有日志级别的日志,都记录到/var/log/secure文件中

mail.* -/var/log/maillog

表示mail设备所有日志级别的日志,都以异步方式记录到/var/log/mailog文件中

auth.=info @10.0.0.1

# 表示将auth相关的,级别为只为info的日志记录到10.0.0.1主机上去

前提是10.0.0.1要能接收其他主机发来的日志信息

user.!=error /var/log/test.log

# 表示记录user相关的,不包括error级别的信息,记录到/var/log/test.log文件中

cron.info;mail.info /var/log/test.log

# 多个日志来源可以用";" 隔开

cron,mail.info /var/log/test.log

# 与cron.info;mail.info 是一个意思

mail.*;mail.!=info /var/log/test.log

# 表示记录mail相关的所有级别的信息,但是不包括info级别的

第二章 自定义日志存储的信道(facility)和存储位置,让rsyslog作为服务端记录rsyslog客户端的日志信息

1、自定义存储位置―以文件为例
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
2、让本机rsyslog作为服务端,接受来自其他rsyslog客户端的日志

在本机的rsyslog中配置文件中定义其作为服务端工作需要的属性


rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
在其他rsyslog客户端主机上配置,让其把日志发送给rsyslog服务端
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
在rsyslog服务端验证是否有收到客户端的日志信息
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
第三章定义rsyslog的日志存储在mysql数据库中 1、安装mariadb数据库,启动服务
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
2、安装rsyslog连接mysql的驱动模块:rsyslog-mysql
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
2、导入rsyslog-mysql生成的sql脚本,实现对数据库的配置
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
3、在数据库上授权对Syslog库的管理用户
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
4、配置rsyslog利用mysql记录日志
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
5、修改完配置文件,重启rsyslog服务,查看数据库中是否有相关日志信息
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
第四章利用loganalyzer实现对存储在mysql数据库中的rsyslog日志信息,进行web图形化分析管理

上述过程,我们已经实现了将rsyslog的日志信息存储于mysql数据库中,但是查看日志时却不方便,需要利用SQL语句来查询

接下来我们来介绍下,利用loganalyzer实现对存储在mysql数据库中的日志进行web化管理

1、部署LAMP组合(以php与httpd结合方式为fastcgi为例)

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


rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
2、对httpd进行简单配置,然后启动httpd服务,配置php-fpm配置文件,然后启动php-fpm服务
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
测试访问,验证LAMP是否正常
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
4、下载loganalyzer软件包,解压,部署
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
5、登录网页,进行安装
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
重载httpd配置文件后刷新网页
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理

拍错过程:上图中,定义的数据库表名称与实际数据库(表名称为'SystemEvents')不对,修改config.php文件解决

忘记给php添加session目录

解决方案:mkdir /var/lib/php/session;chown apache:apache /var/lib/php/session


rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

分页:12
转载请注明
本文标题:rsyslog日志存储到mysql数据库中并利用loganalyzer进行web图形化分析管理
本站链接:http://www.codesec.net/view/485538.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(26)