Apache kafka rsyslog的omkafka模块中的权限被拒绝
我正在尝试使用omkafka模块在远程计算机上将消息从rsyslog发布到kafkaApache 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
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]
我不确定这是否与omkafka或librdkafka有关
需要帮助。我知道了这个问题的原因。这是因为在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