news 2026/5/9 3:11:48

【懒人运维】rsyslog+mysql+loganalyzer 日志服务器搭建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【懒人运维】rsyslog+mysql+loganalyzer 日志服务器搭建

文章目录

    • 运行环境
    • 数据库配置
    • rsyslog配置
    • loganalyzer安装
    • 防火墙配置

《中华人民共和国网络安全法》第二十一条第三项明确规定,网络运营者必须采取监测、记录网络运行状态和网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月‌。‌

目前,市面上日志类产品接近10W左右,功能对于一些小公司来说有些过剩。

在这里分享一个我自己基于开源组件搭建的日志服务器(PC电脑即可满足性能要求),对于法律中的存储要求绰绰有余。不过loganalyzer的展示、搜索功能满足要求,分析功能差强人意,大家可按需搭建。

我自己也针对rsyslog的数据库接口写了一个API数据接口服务,后续将放在仓库里共享,可配合数据分析脚本使用。

运行环境

操作系统:CentOS 7
数据库:mysql5.6 (yum 默认安装)
rsyslogd:8.24.0 (系统自带)
中间件:httpd (Apache) 2.4.6 (yum 默认安装)
运行环境:php、php-mysql、gd、gd-devel、php-gd (yum 默认安装)
loganalyzer:4.1.6 (官网下载)

其他运行环境安装、配置类似,如有差异自行豆包

数据库配置

1、修改配置文件: /etc/my.cnf

skip_name_resolve=ONinnodb_file_per_table=ONinteractive_timeout=28800000wait_timeout=28800000#防止中文乱码character-set-server=utf8init_connect='SET NAMES utf8'

2、安装rsyslog连接至mysql的驱动模块;

yuminstallrsyslog-mysql

安装完成后,查看安装结果

[root@localhost rsyslog-8.24.0]$rpm-qlrsyslog-mysql /usr/lib64/rsyslog/ommysql.so /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

ommysql.so --> rsyslog输出时用到的模块,需要在/etc/rsyslog.conf配置文件里进行配置
mysql-createDB.sql --> 帮我们生成rsyslog所依赖的数据(表,字段,表结构等等)的sql脚本

3、导入rsyslog表结构

mysql-uUSER-hHOST-pPASSWORD</usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

查看执行结果

mysql>showdatabases;+--------------------+|Database|+--------------------+|information_schema||Syslog||mysql||performance_schema|+--------------------+4rowsinset(0.00sec)mysql>useSyslog Readingtableinformationforcompletionoftableandcolumnnames You can turnoffthis featuretoget a quicker startupwith-ADatabasechanged mysql>showtables;+------------------------+|Tables_in_Syslog|+------------------------+|SystemEvents||SystemEventsProperties|+------------------------+2rowsinset(0.00sec)

4、建立syslog专用的用户账号(数据库名叫Syslog,用户名和密码自己改)

GRANTALLONSyslog.*TO'rsyslog'@'127.0.0.1'IDENTIFIEDBY'abcd1234';GRANTALLONSyslog.*TO'rsyslog'@'localhost'IDENTIFIEDBY'abcd1234';flushprivileges;

5、修改表结构(可以不操作)
rsyslogd数据默认不会存储客户端IP信息,为保存客户端IP地址,修改数据库表结构(添加FromIP字段):

mysql>useSyslog;Readingtableinformationforcompletionoftableandcolumnnames You can turnoffthis featuretoget a quicker startupwith-ADatabasechanged mysql>altertableSystemEventsaddFromIPvarchar(60)defaultnullafterFromHost;Query OK,0rowsaffected(0.03sec)Records:0Duplicates:0Warnings:0

若执行本步操作后,rsyslog.conf中template insertpl语句为(自行对比差异):

$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, FromIP, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%', '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL

rsyslog配置

1、编辑配置文件: /etc/rsyslog.conf

在此只介绍修改后的配置项,其余项默认即可

$template insertpl,"insert into SystemEvents (Message, Facility, FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL $template Remote,"/var/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" :fromhost-ip, !isequal, "127.0.0.1" ?Remote :fromhost-ip, !isequal, "localhost" ?Remote if $fromhost-ip != '127.0.0.1' and $fromhost-ip != 'localhost' then { $ModLoad ommysql *.info,*.notice,*.warning;*.err;*.crit;*.alert;*.emerg :ommysql:127.0.0.1,Syslog,rsyslog,abcd1234;insertpl } # The imjournal module bellow is now used as a message source instead of imuxsock. $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal $ModLoad imklog # reads kernel messages (the same are read from journald) $ModLoad immark # provides --MARK-- message capability # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception #$ModLoad imtcp #$InputTCPServerRun 514

FACILITY定义

服务类型功能、描述符号syslog序列号
kern内核信息LOG_KERN0
user用户进程LOG_USER1
mail邮件LOG_MAIL2
daemon后台进程LOG_DAEM3
authpriv授权信息LOG_AUTH4
syslog系统日志LOG_SYSLOG5
lpr打印信息LOG_LPR6
news新闻组信息LOG_NEWS7
uucpUUCP程序LOG_UUCP8
cron计划和任务信息LOG_CRON9
认证消息LOG_AUTHPRIV10
FTP daemonLOG_LOGTP11
NTP subsystemLOG_NTP12
log auditLOG_AUDIT13
log alertLOG_ALERT14
clock daemonLOG_CLOCK15
local0-local7本地用户LOG_LOCALn16-23

PRIORITY定义

优先级含义符号syslog序列号
debug调试级——信息量最多LOG_DEBUG7
info通知性消息LOG_INFO6
notice普通但重要的消息LOG_NOTICE5
warning警告消息LOG_WARNING4
err出错消息LOG_ERR3
crit重要消息LOG_CRIT2
alert紧急消息LOG_ALERT1
emerg最紧急的消息LOG_EMERG0
none不保存信息

2、重启rsyslog

servicersyslog restart

loganalyzer安装

loganalyzer安装比较简单,按步骤慢慢来就行。
参考网站:http://www.ifzhai.com/article.php?id=9

Tips:
安装时先关闭selinux,否则会因无法写入文件而报错(坑啊,测试时被坑了一天。。。)

修改文件 /etc/selinux/config

SELINUX=disabled

这一步骤还可以使用命令直接修改

sed-i's#SELINUX=enforcing#SELINUX=disabled#g'/etc/selinux/config

CentOS 6.9及以下好像没这个问题(没测试过)

防火墙配置

CentOS 7开始使用firewalld默认的防火墙,代替iptables(相比iptables,firewalld真难用)

#开放80端口(网段自己加)firewall-cmd--permanent--add-rich-rule='rule family="ipv4" source address="xxx.xxx.xxx.0/24" port procotol="tcp" port="80" accept '#开放514端口(网段自己加)firewall-cmd--permanent--add-rich-rule='rule family="ipv4" source address="xxx.xxx.xxx.0/24" port procotol="udp" port="514" accept '#对调试机开放3306firewall-cmd--permanent--add-rich-rule='rule family="ipv4" source address="xxx.xxx.xxx.xx" port procotol="tcp" port="3306" accept '#限制ssh登陆firewall-cmd--permanent--remove-service=ssh firewall-cmd--permanent--add-rich-rule='rule family="ipv4" source address="xxx.xxx.xxx.xx" port procotol="tcp" port="22" accept '#加载防火墙策略firewall-cmd--reload#查看防火墙策略firewall-cmd --list-all
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 3:11:03

抖音直播间数据抓取终极指南:5分钟实现实时弹幕监控

抖音直播间数据抓取终极指南&#xff1a;5分钟实现实时弹幕监控 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取&#xff08;2025最新版本&#xff09; 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher DouyinLiveWebFetcher…

作者头像 李华
网站建设 2026/5/9 3:10:19

苏州沃虎电子(VOOHU)功率线用共模电感WHACM07A40R101产品介绍

苏州沃虎电子科技有限公司&#xff08;品牌&#xff1a;VOOHU&#xff09;供应的 WHACM07A40R101 是一款高性能功率线用共模电感&#xff0c;采用紧凑的7.06.04.0mm封装&#xff0c;专为电源线电磁干扰&#xff08;EMI&#xff09;抑制设计。该产品具备大电流承载能力和优异的共…

作者头像 李华
网站建设 2026/5/9 3:09:09

Unity URP Shader从CG迁移到HLSL的完整避坑指南(含SRP Batcher配置)

Unity URP Shader从CG迁移到HLSL的完整避坑指南&#xff08;含SRP Batcher配置&#xff09; 当Unity开发者将项目升级到通用渲染管线&#xff08;URP&#xff09;时&#xff0c;Shader语言的迁移往往成为最棘手的环节之一。从熟悉的CG过渡到HLSL&#xff0c;看似只是语法微调&a…

作者头像 李华
网站建设 2026/5/9 3:07:23

LangChain之核心组件--提示词模板

2. 提示词模板&#xff08;Prompt Template&#xff09; 关于提示词模板。这里只挑拣几个简单讲解&#xff0c;更多的去官方文档查询使用方法即可 2.1 概念 提示词模板&#xff08;Prompt Template&#xff09;是 LangChain 的核心抽象之一&#xff0c;它被广泛应用于构建大语言…

作者头像 李华
网站建设 2026/5/9 3:06:28

javassit使用过程的坑

https://segmentfault.com/a/1190000044154053 https://blog.csdn.net/Kingairy/article/details/104003524 经过不断的试错和研究&#xff0c;总结如下&#xff1a; 以CtMethod#setBody 方法为例 不要在代码中使用范型&#xff0c;哪怕是定义List<Object>这样基础范型…

作者头像 李华