rsyslog + mysql + loganalyzer 构建日志服务器

rsyslog支持的特性

支持多线程

支持tcp,ssl,tls.relp

可以把日志存储于关系型数据库中

支持过滤器,可以实现过滤日志中的任意部分。

支持自定义格式

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

功能模块化

rsyslog用facility接收各个应用和程序的日志,并把日志分类。有以下几类

auth        与认证相关的

authpriv 与用户认证授权相关的,如用户登陆

cron     与周期任务相关的

daemon    与守护进程相关的

kern        与内核相关的

lpr     与打印相关的

mail   与邮件子系统相关

mark   与防火墙标记相关的

security  与安装相关的

syslog   与日志服务本身相关的

user     与用户相关的

uucp  unix早期共享文件的协议

news  与新闻组相关

local 0  到 local 7  8个自定义级别。

通配符,用来指定facility时使用字符

*   表示所有的facility

,    用来facility例表中,分隔facility使用

!    用来取反

facility记录日志的级别,(称为 priority),越向下级别越高。

debug  调试级别,信息最为详细

info       仅次于debug

notic      通知级别

warn       警告,另一种写法:warning

err         错误,还有另一种写法:error

crit        蓝色警报

alert      橙色警报

emerg   红色警报,此级别相当严重了。

指定级别时还有其它写法

*   表示所有级别

none  没有任何级别,一般表示不做记录。

日志发送位置称为target,有以下几类

文件路径   如:/var/log/message   ,如果文件路径前面加-表示此日志记录不用同步写入。

用户          如:*   星表示发送给登陆当前系统的所有用户

日志服务器     如:@172.16.2.10

管道                如: | awk     表示把日志交给awk处理。

rsyslog的配置文件:

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

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

主配置文件分为三段

#### MODULES ####      用来加载各个模块

# Provides UDP syslog reception    使用udp协议为其它主机提供日志服务器功能

#$ModLoad imudp      加载udp模块

#$UDPServerRun 514     指定监听udp协议的端口

# Provides TCP syslog reception  启动tcp协议为其它主机提供日志服务功能

#$ModLoad imtcp                         加载模块

#$InputTCPServerRun 514            监听tcp端口

#### GLOBAL DIRECTIVES ####        全局指定,定义rsyslog工作特性

#### RULES ####                                定义日志记录类型和级别

日志记录要写在 #### RULES ####  中,写法如下:

<记录日志类型><.><记录日志级别>      <target>   该级别以上级别的日志都会被记录

<记录日志类型><.>=<记录日志级别>      <target>   只记录该级别的日志,其它级别不记录。

<记录日志类型><.>!<记录日志级别>      <target>   除了该级别的其它日志级别

日志文件记录格式如下:

时间      地点       人物            动作详细信息

====================================================================

配置rsyslog为其它主提供日志服务--------大体配置步骤如下:

1,服务器端配置:编辑/etc/rsyslog.conf文件,启动监听的端口。是否修改日志文件存放位置,根据自己的需要而定,重启rsyslog服务。

2,修改客户机日志配置文件/etc/rsyslog.conf,把需要发送到日志服务器的日志段的发送位置修改为  @日志服务器的ip。

日志服务器配置

# vim /etc/rsyslog.conf

#### MODULES ####启动以下行

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

# service rsyslog restart

客户机配置,这里假设把本机的全部日志都发送到日志服务器。

# vim /etc/rsyslog.conf  编辑主配置文件

#*.info;mail.none;authpriv.none;cron.none /var/log/messages          注释此行

*.info @172.16.2.16                添加此行,172.16.2.16是我的日志服务器。此时会把本机的所有日志都发给日志服务器。

# service rsyslog   restart

测试是否配置成功,以管理软件为例----------------------------------------

在日志服务器执行

# tail -f  /var/log/messages   动态监视日志文件新产生的日志,最下面是没有关于安装软件记录的。

客户机操作

# echo ===============  >> /var/log/message             给message文件一个分隔线。

# tail /var/log/message

#  yum -y install elinks     安装软件,让系统发生日志。

#  tail /var/log/messages      查看是否有日志,正确配置是没有日志的。

到日志服务器查看监视的日志

==================================================================

配置日志服务器,记录日志存储于mysql数据库中--------大体配置步骤如下

1,安装日志服务器mysql的驱动模块。

2,修改配置文件,启用mysql驱动模块,把日志记录位置修改为mysql数据库。

3,在mysql数据库服务器为日志服务器授权。

4,安装

# yum -y install rsyslog-mysql               安装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     mysql创建数据库用的脚本,把此文件放在mysql服务器执行。

# vim /etc/rsyslog.conf      修改配置文件

#### MODULES ####      加入以下行,启动支持mysql模块

$ModLoad ommysql

#### RULES ####           修改以下行,把日志文件都记录在mysql中。

*.info;mail.none;authpriv.none;cron.none :ommysql:172.16.2.13,Syslog,rsyslog,rsyslog   加入此行,Syslog为数据库名,第一个rsyslog为mysql用户名第二个是密码

执行完mysql服务器授权后再重启rsyslog服务

----在mysql服务器执行---------------------------------------------

# mysql < /root/createDB.sql   因在日志服务器已经把此脚本传到mysql服务器了。

# mysql

MariaDB [(none)]> grant all on Syslog.* to [email protected] identified by ‘rsyslog‘;

MariaDB [(none)]> flush privileges;

测试 ----------------------------------

在rsyslog服务器执行

# echo ======================== >> /var/log/messages

#  tail -f  /var/log/messages             监视日志,如果配置正确,应该没有日志产生。

在客户机端执安装软件测试

# yum -y install bind   测试安装一个软件用来产生日志。

在mysql查看

MariaDB [Syslog]> select * from SystemEvents;       查看表中有没有数据

==============================================================

数据库中有记录了,在数据库查看比较难。所以使用web页面展示的软件 loganalyzer软件。

loganalyzer是一个php程序,所以需要web服务。

# yum -y install httpd php php-mysql php-gd mysql-server     安装发布loganalyzer所需要的软件。

# service httpd start      启动httpd服务,测试服务是否能正常运行,级提供服务。

# cd /var/www/html

# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz   下载loganalyzer程序

#  cp loganalyzer-3.6.5/src ./log

# cp loganalyzer-3.6.5/contrib/* log/

# cd log

# chmod u+x configure.sh secure.sh

# ./configure.sh

# ./secure.sh

# chown -R apache:apache ../log

配置完成,到windows的浏览器里输入http://172.16.2.16/log/。

出现了以上错误,因为没的日志文件导致

# touch /var/log/syslog

# chown apache:apache /var/log/syslog

至此日志就可以在网页查看分析了。

rsyslog + mysql + loganalyzer 构建日志服务器,布布扣,bubuko.com

时间: 2024-08-02 10:56:53

rsyslog + mysql + loganalyzer 构建日志服务器的相关文章

django+nginx+xshell简易日志查询,接上&lt;关于《rsyslog+mysql+loganalyzer搭建日志服务器&lt;个人笔记&gt;》的反思&gt;

纠正一下之前在<关于<rsyslog+mysql+loganalyzer搭建日志服务器<个人笔记>>的反思>中说到的PHP+MySQL太慢,这里只是说我技术不好,没有技术可以修改这个开源的php日志程序罢了,当然,在做这个的时候,也是菜鸟一个,只是想自己尝试一下.高手可以直接跳过..... 首先,写在前面,因为上班空闲时间不多,只有忙里偷闲或自己回家的时间弄下,所以这个前后的时间就比较久了. 之前在上篇写到,是准备使用apache+django来搭建的,但是真的,我折腾

Rsyslog+MySQL+LogAnalyzer部署日志服务器

实验要求 搭建可视化日志搜集分析平台,用于集中搜集日志,并通过可视化日志分析工具呈现: Apps Server是要搜集日志的Nodes,可以有多台,这里我只用1台Node: Rsyslog Server是统一接收各Nodes提交过来的日志,监听在TCP/UDP 514节点: MySQL Server是用于存储提交的日志信息,做独立服务器,也可做Cluster: LogAnalyzer是一款基于LAMP的可视化日志分析工具,后端查询数据库,将结果整理输出: 拓扑如下: 实现机理 Linux上的Rs

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

rsyslog简介: 在CentOS上rsyslog服务专门负责记录系统日志信息(更早的版本系统使用的是syslog,rsyslog是syslog的下一代版本),rsyslog有三部分组成:syslogd,klogd,logrotate syslogd主要记录系统与网络等服务的日志信息: klogd主要记录内核产生的各项信息: logrotate主要用来对日志文件进行切割循环记录: mysql简介: MySQL是一个关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Re

rsyslog+mysql+loganalyzer搭建日志服务器&lt;个人笔记&gt;

大概思路如下: 使用Linux自带的rsyslog服务来做底层,然后再使用mysql与rsyslog的模板来存储文件,并且以web来进行显示出来.<模板的存储以日期的树形结构来存储,并且以服务器客户端IP为文件名进行划分. 最终的效果如下图: 大概步骤如下: 1.配置好rsyslog server的服务 2.配置好lamp架构 3.安装好Loganalyzer日志web 4.建好web权限控制 一.配置好rsyslog server的服务 以下为/etc/rsyslog.conf的配置文件,自行

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

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

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+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日志集中分析管理

前言   rsyslog系统日志,在CentOS5上叫syslog,而在CentOS6上叫rsyslog,叫增强版的syslog,CentOS5上的配置文件在/etc/syslog.conf下,而CentOS6在/etc/rsyslog.conf下.       syslog默认是把我们的日志放到文件.用户.日志服务器.管道中.       rsyslog在syslog的基础上还多了一条途径,允许把日志放到mysql数据中.       rsyslog比syslog好在哪里:       Mul

Centos6上rsyslog应用(rsyslog+mysql+loganalyzer)

1.配置日志服务器,         (1)启用日志服务器的功能:(UDP和TCP开启一个即可) # Provides UDP syslog reception             $ModLoad imudp--------开启udp开启记录其他机器的             $UDPServerRun 514-------监听在514端口上 # Provides TCP syslog reception             $ModLoad imtcp             $In