Apache kafka rsyslog的omkafka模块中的权限被拒绝

Apache kafka rsyslog的omkafka模块中的权限被拒绝,apache-kafka,kafka-producer-api,rsyslog,Apache Kafka,Kafka Producer Api,Rsyslog,我正在尝试使用omkafka模块在远程计算机上将消息从rsyslog发布到kafka My omkafka action is configured as: if $HOSTNAME == 'localhost' then { action(type="omkafka" name="log_kafka" broker="192.168.100.50:9092" topic="rsyslog_kafka" errorfile="/var/log/omkafk

我正在尝试使用omkafka模块在远程计算机上将消息从rsyslog发布到kafka

My omkafka action is configured as:
if $HOSTNAME == 'localhost' then {
    action(type="omkafka"
    name="log_kafka"
    broker="192.168.100.50:9092"
    topic="rsyslog_kafka"
    errorfile="/var/log/omkafka/log_kafka_failures.log"
    template="hostipFormat"<br/>
    )
}
我的omkafka操作配置为:
如果$HOSTNAME=='localhost',则{
行动(type=“omkafka”
name=“log_kafka”
经纪人=“192.168.100.50:9092”
topic=“rsyslog\u kafka”
errorfile=“/var/log/omkafka/log\u kafka\u failures.log”
template=“hostipFormat”
) }
我的kafka实例运行良好,我能够使用另一台windows计算机上的kafka-producer.bat文件发布数据

但是,当我启动rsyslog服务时,会出现以下错误:

二月17日16:42:01本地主机rsyslogd:[origin software=“rsyslogd”swVersion=“8.24.0”x-pid=“1764”x-info=”http://www.rsyslog.com“]开始 二月17日16:42:05本地主机rsyslogd:omkafka:kafka消息192.168.100.50:9092/引导:无法连接到192.168.100.50:9092处的代理:权限被拒绝[v8.24.0 try] 2月17日16:42:05本地主机rsyslogd:omkafka:kafka消息1/1代理已关闭[v8.24.0 try] 二月17日16:42:05本地主机rsyslogd:omkafka:kafka消息192.168.100.50:9092/引导:无法连接到192.168.100.50:9092处的代理:权限被拒绝[v8.24.0 try] 2月17日16:42:05本地主机rsyslogd:omkafka:kafka消息1/1代理已关闭[v8.24.0 try]

我不确定这是否与omkafkalibrdkafka有关


需要帮助。

我知道了这个问题的原因。这是因为在centos的SELINUX。禁用SELINUX服务后,配置工作正常。

我也遇到了同样的问题。而不是让SELinux瘫痪,从而让自己进入一个充满伤害的世界。我使用了
audit2why
,它确切地告诉您为什么在他们的avc拒绝中有些东西被拒绝。它也很有帮助,因为它可以告诉您需要做什么来解决问题

Audit2why读取
/var/log/audit/audit.log
,然后告诉您拒绝某些内容的原因,有时还可以告诉您需要做什么来修复问题。在我的情况下是这样的

type=AVC msg=audit(1492149030.280:296487):AVC:denied{name\u connect}for pid=2277 comm=72733A6D61696E20513A526567 dest=9092 scontext=system\u:system\r:syslogd\u t:s0 tcontext=system\u:object\r:unreserved\u port\t:s0 tclass=tcp\u socket
原因是:
已启用的布尔nis_设置不正确。
说明:
允许启用nis
通过执行以下命令允许访问:
#setsebool-P nis_已启用1


最后一行注释正好是需要键入的内容,以允许执行此操作,并且可以在不禁用适当的安全控制的情况下完成此操作。执行了
sudo setsebool-P nis_enabled 1
之后,我重新启动了rsyslog,卡夫卡可以很好地使用我的消息

这肯定与SELinux有关,但由于禁用SELinux不是最佳选择,我纠正了以下问题:

sudo semanage port -d -t unreserved_port_t -p tcp 9092
sudo semanage port -a -t http_port_t -p tcp 9092
以及重启syslogd