详细的部署

详细的部署,第1张

简易部署Rsyslog和LogAnalyzer

大纲:

一.导言

第二,将日志存储到远程数据库

三。LogAnalyzer日志分析工具

四。Rsyslog传输应用程序日志

动词(verb的缩写)Rsyslog记录用户 *** 作


一.导言

1.概观

Rsyslog是一个快速日志处理系统;提供高性能、高安全性和模块化设计。可以接收各种输入,输出到不同的目的地,处理速度超级快。

2.新功能

Multi-threading#多线程 TCP, SSL, TLS, RELP#支持的协议 MySQL, PostgreSQL, Oracle and more#支持数据库的类型 Filter any part of syslog message#强大的过滤器,可实现过滤系统信息中的任意部分 Fully configurable output format#自定义输出格式 Suitable for enterprise-class relay chains#适用于企业级别日志记录需求

3.优势

(1)日志统一,集中式管理; (2)日志实时传送到一个更加安全的远端服务器上,真正记录用户行为,使日志的2次更改可能性大大降低,从而能够对日志进行真实回放,便于问题追踪。

4.核心成分

Rsyslog由三部分组成:工具、优先级和目标。


Facility:Facility,按照功能或过程对日志进行分类,专用工具(facility)负责记录相应的日志信息;

auth:认证相关 authpriv:认证权限相关 cron:计划任务相关 daemon:守护进程相关 kern:内核相关 lpr:打印相关 mail:邮件相关 mark:防火墙标记 news:新闻信息 security:安全相关 syslog:自身日志 user:用户相关 uucp:Unix to Unix copy,早期系统文件共享服务 local0 - local7:用户自定义facility

优先级:级别

debug:调试 info:除debug外的所有信息 notice:注意 warn, warning:警告 err, error:错误信息 crit:蓝色警报 alert:橙色警报 emerg, panic:红色警报 指定级别的方式: *: 所有级别 none: 没有级别 priority: 比此级别高的(包含)所有级别的日志信息都会记录 =priority: 仅记录指定级别

目标:路径

文件路径:将日志记录于指定的文件中;在文件路径之前使用"-",表示异步写入; 用户:将日志信息通知给文件 *: 所有用户 日志服务器:@SERVER 管道:| COMMAND

5.参考文件

Rsyslog doc:http://www.rsyslog.com/doc/v8-stable/ redhat doc:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/s1-basic_configuration_of_rsyslog.html Other:http://xmodulo.com/configure-syslog-server-linux.html


第二,将日志存储到远程数据库

1.主机地址分配

Rsyslog :192.168.1.106 Client:192.168.1.109 Rsyslog中心日志服务器,负责接收其它Client传输到Rsyslog的日志信息,并将其传输到本地的MySQL数据库中。

2、Rsyslog *** 作

rsyslog-mysql:rsyslog连接mysql的驱动包模块。 # yum -y install mysql mysql-server rsyslog-mysql 查看rsyslog-mysql安装了哪些文件 # rpm -ql rsyslog-mysql /lib64/rsyslog/ommysql.so//om代表输出模块im代表输入模块 /usr/share/doc/rsyslog-mysql-5.8.10 /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql#数据库初始化脚本,表结构 # service mysqld start # mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql # mysql -e 'USE Syslog;show tables;' +------------------------+ | Tables_in_Syslog       | +------------------------+ | SystemEvents           | | SystemEventsProperties | +------------------------+ # mysql -e 'USE Syslog;SELECT * FROM SystemEvents;' # mysql -e 'USE Syslog;SELECT * FROM SystemEventsProperties;' 以上两条命令的返回值都为空,表示表中无内容。 # mysql -e "grant all privileges on Syslog.* to 'rsysloguser'@'192.168.1.%' identified by 'rsyslogpass';flush privileges;" 修改Rsyslog.conf文件 # vim /etc/rsyslog.conf $ModLoad imudp #通过UDP的514端口搜集日志信息,即将自己当做日志服务器 $UDPServerRun 514 $ModLoad imtcp #通过TCP的514端口搜集日志信息,即将自己当做日志服务器 $InputTCPServerRun 514 $ModLoad ommysql#装载mysql模块 *.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.1.106,Syslog,rsysloguser,rsyslogpass # service rsyslog restart

3.客户端 *** 作

# vim /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none                @192.168.1.106:514#指定Rsyslog日志服务器的地址 # service rsyslog restart

4.测试

在Client上手动向/var/log/messages文件中写入一条信息,这里用logger命令 # logger -t dhcp "zhengyansheng's log"

您将在Rsyslog上的/var/log/messages文件和数据库中的记录中找到相同的记录信息。

[root@Rsyslog ~]# tail -f /var/log/messages  Oct 10 05:52:35 localhost dhcp: zhengyansheng's log


三。LogAnalyzer日志分析工具

1.介绍

LogAnalyzer是syslog日志和其他网络事件数据的Web前端,提供了日志的简单浏览、搜索、基本分析和一些图表报告等功能。

2.安装灯环境

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

3.安装loganalyzer

# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz # tar zxf loganalyzer-3.6.5.tar.gz  # mv loganalyzer-3.6.5/src /var/www/html/loganalyzer # cd /var/www/html/loganalyzer/ # touch config.php # chmod 666 config.php

4.浏览器访问loganalyzer

http://192.168.1.102/loganalyzer/install.PHP


关于loganalyzer的安装可以参考这篇文章:http://tecadmin.net/setup-loganalyzer-with-rsyslog-and-MySQL/


四。Rsyslog传输应用日志(补充)

1.修改rsyslog.conf并添加imfile模块

# vim /etc/rsyslog.conf $ModLoad imfile $InputFileName /var/log/httpd/access_log $InputFileTag packetfence: $InputFileStateFile stat-packetfence $InputFileSeverity info  $InputFileFacility local5 $InputFilePollInterval 1 $InputFilePersistStateInterval 1 $InputRunFileMonitor local5.*  @192.168.1.106:514 File [/path/to/file] 被监控的文件必须是一个绝对路径 Tag [tag:] 用于文件消息标记会记录到日志标签上 Facility [facility] 设施:比如local1,local2,localN;默认是local0 Severity [syslogSeverity] 级别:比如info,warning...默认是notice PersistStateInterval [lines] 被用来控制状态文件的持久化频率,测试阶段,可以把它设置的小点儿,正式阶段,出于效率的考虑,可以把它调大点儿,但是相应的也会出现丢失数据的潜在风险, 具体设置多少合适需要结合自己的情况来斟酌。

2.显示存储在数据库中的Apache日志

*************************** 69. row ***************************                 ID: 69         CustomerID: NULL         ReceivedAt: 2015-10-10 19:52:47 DeviceReportedTime: 2015-10-10 19:52:47           Facility: 21           Priority: 6           FromHost: localhost            Message:  192.168.1.101 - - [10/Oct/2015:19:52:39 -0400] "GET /icons/poweredby.png HTTP/1.1" 304 - "http://192.168.1.109/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1653.0 Safari/537.36"         NTSeverity: NULL         Importance: NULL        EventSource: NULL          EventUser: NULL      EventCategory: NULL            EventID: NULL    EventBinaryData: NULL       MaxAvailable: NULL          CurrUsage: NULL           MinUsage: NULL           MaxUsage: NULL         InfoUnitID: 1          SysLogTag: packetfence:    //此处就是那个tag标签       EventLogType: NULL    GenericFileName: NULL           SystemID: NULL


动词(verb的缩写)Rsyslog记录用户 *** 作

在Client上执行以下 *** 作,会记录用户在命令行执行的所有命令记录 # vim /etc/bashrc export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }' # source /etc/bashrc *************************** 74. row ***************************                 ID: 74         CustomerID: NULL         ReceivedAt: 2015-10-10 21:06:59 DeviceReportedTime: 2015-10-10 21:06:59           Facility: 1           Priority: 5           FromHost: localhost            Message:  [euid=root]:root pts/1 2015-10-10 19:51 (192.168.1.101):[/root]history         NTSeverity: NULL         Importance: NULL        EventSource: NULL          EventUser: NULL      EventCategory: NULL            EventID: NULL    EventBinaryData: NULL       MaxAvailable: NULL          CurrUsage: NULL           MinUsage: NULL           MaxUsage: NULL         InfoUnitID: 1          SysLogTag: root:       EventLogType: NULL    GenericFileName: NULL           SystemID: NULL

>>>>>添加知识点

#Rsyslog支持tcp和udp的传输方式 *.*       @@192.168.1.106:514      #通过tcp传 *.*       @192.168.1.106:514       #通过udp传 #上面的实验是Client通过tcp的方式传输到Rsyslog服务器的日志文件中,然后又转储到数据库当中,如果感觉这里没有必要的话,其实Client可以直接存储到远程的数据库当中。 *** 作如下 修改Client *** 作 # vim /etc/rsyslog.conf $ModLoad ommysql  *.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.1.102,Syslog,rsysloguser,rsyslogpass 以上 *** 作即可 这里我在解释下*.info;mail.none;authpriv.none;cron.none表示什么意思? 除mail、authpriv和cron之外的日志并且级别为info或者比info更高的都会被发送到远程192.168.1.102的数据库当中,后面是数据库的用户名和密码。

Rsyslog的imfile模块可以参考文档:http://www.rsyslog.com/doc/V8-stable/configuration/modules/imfile.html。


Rsyslog简介参考:http://qinyinbolan.blog.51cto.com/4359507/1347383

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/779881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存