rsyslog研究——第一章 rsyslog整体架构

最近因为工作需要研究了rsyslog,主要是把官网的文档看了一遍,因为学习的过程中,发现中文资料很少,所以研究的差不多以后,决定拿出来分享一下。

rsyslog官网的文档还是挺烂的(在我看完后,官网有了一次改版,可能好一些了),尤其是配置文件部分,每个版本都有改动,但是官网只有最新版本的参数介绍,好几次我按照文档的参数写配置文件,或者报错,或者参数不起作用,因此大家使用哪个版本的rsyslog,最好是下个该版本的源代码,以供核查参数是否准确。

本文的结构,来自我的内部分享。

使用的rsyslog版本为:7.2.5

第一章 rsyslog整体架构

我主要使用rsyslog来保证日志的可靠性传输,日志中心宕机,client端可以本地保存日志,因此rsyslog与数据库结合方面的知识在文章中没有涉及。

10231124-47833e3a70d24191aeb6435264c4392f.png 

Rsyslog架构,这是rsyslog官网上的一张图,用来介绍rsyslog的架构,rsyslog的消息流是从输入模块->预处理模块->主队列->过滤模块->执行队列->输出模块。

在这个流程图中,输入、输出、过滤三个部分称为module,输入模块有imklg、imsock、imfile。输出模块有omudp、omtcp、omfile、omprog、ommysql、omruleset(后两者我没有研究,本文不会涉及)。过滤模块研究不多,只会提到mmnormalize。

预处理模块主要解决各种syslog协议实现间的差异,举例说明如果日志系统client端使用rsyslog、server端使用syslog-ng,如果自己不做特殊处理syslog-ng是无法识别的。但是反过来,rsyslog的server端就可以识别syslog-ng发过来的消息。

Input模块包括imklg、imsock、imfile、imtcp等,是消息来源。

Filetr模块处理消息的分析和过滤,rsyslog可以根据消息的任何部分进行过滤,后面会介绍到具体的做法。

Output模块包括omfile、omprog、omtcp、ommysql等。是消息的目的地。

Queue模块负责消息的存储,从Input传入的未经过滤的消息放在主队列中,过滤后的消息放入到不同action queue中,再由action queue送到各个输出模块。

1.1启动参数

正常启动:指定-f和-i就可以了,新版本不需要-c 5 这样的参数。

  1. rsyslogd -f /root/rsyslog_worker_dir/rsyslog.conf -i /root/rsyslog_worker_dir/rsyslog.pid
复制代码

debug版本:debug消息会输出到标注输出,如果出现未预期的结果,可以尝试使用debug方式,查看处理流程

  1. rsyslogd -f /root/rsyslog_worker_dir/rsyslog.conf -i /root/rsyslog_worker_dir/rsyslog.pid -dn >debuglog
复制代码

测试配置文件是否正确:

  1. rsyslogd -N1 -f file
复制代码

### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况时,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可证服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为或完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值