rsyslog出现Unit rsyslog.service is masked不可用问题解决

博主在测试将日志发送到日志服务器的功能时遇到了rsyslog服务不可用的问题,具体来说,就是执行systemctl restart rsyslog或者 service rsyslog restart命令时,出现了标题中所述的Unit rsyslog.service is masked问题。网上查找了很多资料,都跟博主的情况不同,尝试后问题始终未得到解决。经过反复多次调测后,终于发现问题的原因,这里记录一下,希望对遇到类似问题的读者有所启发和帮助。

简单介绍一下背景。首先,调测环境是Ubuntu18.04。其次,目标是将日志发送到日志服务器。现在已经有一个Windows下的日志服务器,所以,需要做的工作时将Ubuntu里的日志发送到该服务器查看。

网上查找了一些资料,大都是讲如何将Linux配置为日志服务器的,也基本都是基于rsyslogd守护进程及其配置来做的。但博主的需求是如何将日志发送到日志服务器,而不是让Ubuntu做日志服务器,所以这些资料大都略过,然后从最简单的命令来尝试。

首先试了一下logger命令,通过-n指定服务器地址即可。

此时,server端可以看到敲入的信息

但是这种方式不够灵活,于是就查找其他方法。

最先看到的是syslogd命令。使用该命令,通过命令选项,就可以将日志发送到日志服务器。但是实际测试时,发现系统里没有这个命令,需要安装。

使用apt安装busybox版本后,syslogd命令可以用了,通过该命令可以将日志转发到日志服务器。

回过头来,博主还是想试试rsyslog,试试该服务做日志客户端。于是按照网上的资料,修改/etc/rsyslog.conf及相关配置文件后,重启该服务,测试。

重启服务时,出现了标题里的错误提示。怀疑是syslogd守护进程运行影响了rsyslogd的启动。于是kill掉syslogd,再试,问题依然存在。

查看服务状态,rsyslog前面是减号

查看进程,找不到rsyslogd进程,怀疑是不是配置文件改错了导致。将配置退回去,再试,还是不行。重启系统再试,仍然不行。

但是,重启后,观察进程,发现syslogd在运行。

这让我突然想到,可能是syslogd和rsyslogd相互冲突。而且发现系统中rsyslogd命令也找不到了,于是更加肯定是安装syslogd导致的。

为了验证这个想法,重新安装rsyslogd来看。果然,安装过程中,移除了syslogd,所以可以肯定在安装syslogd时会移除rsyslogd

安装后,发现rsyslogd回来了

rsyslog服务也回归正常了

之前的提示是exit,现在是running

之后,日志服务器端也可以看到日志了。

总结一下,目前涉及了三种方法将日志发送到日志服务器:

1 使用logger命令

2 使用syslogd守护进程

3 使用rsyslogd守护进程

目前测试,发现后两者不能共存。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙赤子

你的小小鼓励助我翻山越岭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值