Linux 日志管理 Rsyslog Loganalyzer


睫毛膏俊秀
睫毛膏俊秀 2022-09-27 09:50:28 63919
分类专栏: 资讯

Syslog常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网上中传递记录档消息的标准。这个词汇常用来指涉实际的syslog 协议,或者那些提交syslog消息的应用程序或数据库。

syslog协议属于一种主从式协议:syslog发送端会发送出一个小的文字消息(小于1024位组)到syslog接收端。接收端通常名为“syslogd”、“syslog daemon”或syslog服务器。系统日志消息可以被以UDP协议及╱或TCP协议来发送。这些数据是以明码类型被发送。不过由于SSL加密外套(例如Stunnel、sslio或sslwrap等)并非syslog协议本身的一部分,因此可以被用来透过SSL/TLS方式提供一层加密。

Rsyslog 是syslog 的升级版,一个快速处理收集系统日志的程序,提供了高性能、安全功能和模块化设计,将多种来源输入输出转换结果到目的地。

Rsyslog的传输方式有三种:

  • UDP 传输协议 

  • 基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议;

  • 可靠性比较低,但性能损耗最少

  • 在网络情况比较差,或者接收服务器压力比较高情况下,可能存在丢日志情况。

  • TCP 传输协议 

  • 基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高;

  • 但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。

  • RELP 传输协议 

  • RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议;

  • 是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。

  • 对于线上服务器,为了日志安全起见,建议使用 RELP 协议进行传输。


  • 查看系统中 Rsyslog 版本信息

  • Rsyslog 的主配置文件为 /etc/rsyslog.conf 
  • Rsyslog 的配置主要有以下模块:
  • modules:模块,配置加载的模块,如:ModLoad imrelp  配置加载RELP传输模块
  • global directives:全局配置,配置ryslog守护进程的全局属性,比如主信息队列大小(MainMessageQueueSize)
  • rules:规则(选择器+动作),每个规则由两部分组成,selector部分和action部分,这两部分由一个或多个空格或tab分隔,selector部分指定源和日志等级,action部分指定对应的操作

  • 常用的modules

  • imudp,传统方式的UDP传输,有损耗
  • imtcp,基于TCP明文的传输,只在特定情况下丢失信息,并被广泛使用
  • imrelp,RELP传输,不会丢失信息

  • 规则(rules)

规则的选择器(selectors)由两部分组成,设施和优先级,由点号.分隔。多个选择器用;分隔,如:*.info;mail.none

  • facility:设施,从功能或程序上对日志收集进行分类

内建的日志设施有:
auth(security), authpriv:认证授权和安全相关的消息
kern:来自Linux内核的消息
mail:邮件服务系统的各种组件
mark:防火墙标记
cron:周期任务计划相关的信息

daemon:守护进程产生的信息
news:网络消息子系统
lpr:打印相关的日志信息
user:用户进程相关的信息
local0 to local7:保留,本地使用

  • priority:优先级,日志级别(由低到高)

debug:包含详细的开发情报的信息,通常只在调试一个程序时使用
info:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理
notice: 不是错误情况,也不需要立即处理
warning: 警告信息,不是错误,比如系统磁盘使用了85%等
err:错误,不是非常紧急,在一定时间内修复即可
crit:重要情况,如硬盘错误,备用连接丢失
alert:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失
emerg:紧急情况,需要立即通知技术人员

指定级别

功能

*

所有级别

none

没有级别

priority

此级别及高于此级别的所有级别

=priority

仅此级别

  • 动作 (action)

action是规则描述的一部分,位于选择器的后面,规则用于处理消息。总的来说,消息内容被写到一种日志文件上,但也可以执行其他动作,比如写到数据库表中或转发到其他主机。

写到mysql数据库中


  • 实验环境
  • LOG Server CentOS 7.5 192.168.1.2
  • LOG Client CentOS 7.5 192.168.1.3

  • 首先在 LOGServer 192.168.1.2 端安装 Rsyslog、以及RELP协议支持:rsyslog-relp
  • yum -y install rsyslog rsyslog-relp
  • 编辑 /etc/rsyslog.conf 主配置文件

  • vim /etc/rsyslog.conf

  • MODULES 下面添加以下信息:

    $ModLoad imrelp    开启RELP传输协议
    $InputRELPServerRun 514   设定监听端口

  • 编辑 /etc/sysconfig/rsyslog 开启传输端口监听

  • vim /etc/sysconfig/rsyslog

    -r指定监听端口,-c2 使用兼容模式

  • SYSLOGD_OPTIONS="-r514 -c2"

  • 确认无误 启动 Rsyslog 服务

  • systemctl start rsyslog

  • 查看 514 端口是否被监听

  • ss -alnt | grep 514

  • 在服务器端用 tail -f /var/log/messages 追踪日志

  • tail -f /var/log/messages


  • 接下来在 LOGClient 192.168.1.3 端安装配置 Rsyslog
  • yum -y install rsyslog rsyslog-relp
  • 编辑 /etc/rsyslog.conf 添加以下信息:
    $ModLoad omrelp        指定传输协议
    *.*    :omrelp:192.168.1.2:514     设置那些LOG日志被记录以及LOG服务器IP和端口
  • 重启 Rsyslog 服务
  • systemctl restart rsyslog
  • 发送一条测试日志
  • logger -t kern -p err "This is a testlog"


  • 然后回到 LOG Server 192.168.1.2 端查看是否接收到刚才的测试 LOG
  • tail -f /var/log/messages
  • Mar 22 15:47:29 C75_192_168_1_3 kern: This is a testlog


Loganalyzer是一款syslog日志和其他网络时间数据的web前端,它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般syslog文本文件中获取,所有loganalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息windows事件日志记录,支持故障排除,使用户能快速查找日志数据中看出问题的解决方案。

  loganalyzer获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log目录下的日志并保存到服务端该目录下,一种是读取后保存日志服务器数据库中,这里测试的是mariadb数据库

  Loganalyzer基于php开发,需要搭建php运行环境

  • 接下来在 LOGServer 192.168.1.2 端安装配置 lamp 和 日志管理工具:loganalyzer
  • lamp 具体设置请参照拙作:https://blog.csdn.net/gaofei0428/article/details/104058580https://blog.csdn.net/gaofei0428/article/details/104224132
  • yum -y install mariadb mariadb-server php php-fpm php-gd php-mysql httpd rsyslog rsyslog-mysql rsyslog-relp
  • 导入所需要的数据库和表:

  • mysql -uroot -p123456 < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

  • mysql-createDB.sql 是安装 rsyslog-mysql 生成的,可以用命令查看

    rpm –ql rsyslog-mysql

  • 添加、授权用户 rsyslog 使用 Syslog 库

  • mysql -uroot -p123456 -e "GRANT ALL ON Syslog.* TO 'rsyslog'@'%' IDENTIFIED BY 'rsyspass';" 需要从网络登陆,%或者 192.168.1.%,localhost只能本地登陆。

  • mysql -uroot -p123456 -e "flush privileges;"   立即刷新权限

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

  • vim /etc/rsyslog.conf

  • MODULES 下面添加以下信息:

    $ModLoad imrelp    开启RELP传输协议
    $InputRELPServerRun 514   设定监听端口

    $ModLoad ommysql   开启 mysql 模块

  • RULES  下面添加

    rule, send to mysql
    *.*  :ommysql:database-server,database-name,database-userid,database-password
    *.*     :ommysql:192.168.1.2,Syslog,rsyslog,rsyspass

  • 从 loganalyzer 官网下载
  • wget https://download.adiscon.com/loganalyzer/loganalyzer-4.1.7.tar.gz
  • tar xf loganalyzer-4.1.7.tar.gz
  • cd loganalyzer-4.1.7
  • cp -ar ./src/* /data/web/
  • cp -ar ./contrib/*.sh /data/web/
  • cd /data/web
  • chmod +x ./*.sh
    ./configure.sh   生成 config.php  文件,属性为 666
  • 确认无误启动服务
  • systemctl start httpd
  • systemctl start php-fpm
  • systemctl restart rsyslog
  • 打开浏览器输入 http://192.168.1.2
  • 点击 here 开始配置
  • Step 1 默认即可 点击 Next
  • Step 2 测试是否可以写入 config.php 点击 Next
  • Step 3 默认 点击 Next
  • Step 7 

    Source Type MYSQL Native  选择 MYSQL 记录方式
    Select View  EventLog Fields  

    Database Type Options  

    Table type MonitorWare  默认
    Database Host  192.168.1.2  MariaDB Server IP
    Database Name  Syslog  选择数据库
    Database Tablename  SystemEvents  选择表,注意大小写!
    Database User  rsyslog   MariaDB授权用户
    Database Password  rsyspass 用户密码
    Enable Row Counting   默认

  • Step 8 Finish

  • chmod 644 /data/web/config.php

  •  LOGClient 192.168.1.3 端,编辑 /etc/rsyslog.conf 修改以下信息:
  • $Modload ommysql     
    *.* :ommysql:192.168.1.2,Syslog,rsyslog,rsyspass
  • logger -t kern -p err "This is a testlog"

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10575
赞同 0
评论 0 条
睫毛膏俊秀L0
粉丝 0 发表 8 + 关注 私信
上周热门
银河麒麟添加网络打印机时,出现“client-error-not-possible”错误提示  1448
银河麒麟打印带有图像的文档时出错  1365
银河麒麟添加打印机时,出现“server-error-internal-error”  1151
统信桌面专业版【如何查询系统安装时间】  1073
统信操作系统各版本介绍  1070
统信桌面专业版【全盘安装UOS系统】介绍  1028
麒麟系统也能完整体验微信啦!  984
统信【启动盘制作工具】使用介绍  627
统信桌面专业版【一个U盘做多个系统启动盘】的方法  575
信刻全自动档案蓝光光盘检测一体机  484
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

添加我为好友,拉您入交流群!

请使用微信扫一扫!