我正在尝试使用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/>
)
}
我的kafka实例运行正常,我可以使用另一台Windows机器上的kafka-producer.bat文件发布数据。
但是当我启动我的rsyslog服务时,我收到以下错误:
2月17日16:42:01 localhost rsyslogd:[origin software =&#34; rsyslogd&#34; swVersion =&#34; 8.24.0&#34; X-PID =&#34; 1764&#34; x-info =&#34; http://www.rsyslog.com"]开始 2月17日16:42:05 localhost rsyslogd:omkafka:kafka message 192.168.100.50:9092/bootstrap:无法连接到192.168.100.50:9092的代理:权限被拒绝[v8.24.0 try http://www.rsyslog.com/e/2422] 2月17日16:42:05 localhost rsyslogd:omkafka:kafka消息1/1经纪人关闭[v8.24.0 try http://www.rsyslog.com/e/2422] 2月17日16:42:05 localhost rsyslogd:omkafka:kafka message 192.168.100.50:9092/bootstrap:无法连接到192.168.100.50:9092的代理:权限被拒绝[v8.24.0 try http://www.rsyslog.com/e/2422] 2月17日16:42:05 localhost rsyslogd:omkafka:kafka消息1/1经纪人关闭[v8.24.0 try http://www.rsyslog.com/e/2422]
我不确定这是否与 omkafka 或 librdkafka 有关。
需要帮助。
答案 0 :(得分:0)
我明白了这个问题的原因。这是因为centos中的 SELINUX 。一旦我禁用了SELINUX服务,配置就可以了。
答案 1 :(得分:0)
我有同样的问题。而不是禁用SELinux,从而让自己打开一个受伤的世界。我使用了audit2why
来告诉你为什么在他们的avc否认中拒绝某些东西。它也很有用,因为它可以告诉您需要做些什么来解决问题。
Audit2为什么会读取/var/log/audit/audit.log
,然后告诉您为什么要拒绝某些内容,有时可以告诉您需要做些什么来解决问题。就我而言,它是
type=AVC msg=audit(1492149030.280:296487): avc: denied { name_connect } for pid=2277 comm=72733A6D61696E20513A526567 dest=9092 scontext=system_u:system_r:syslogd_t:s0 tcontext=system_u:object_r:unreserved_port_t:s0 tclass=tcp_socket
Was caused by:
The boolean nis_enabled was set incorrectly.
Description:
Allow nis to enabled
Allow access by executing:
# setsebool -P nis_enabled 1
最后的注释行确实需要输入以允许执行它,并且可以在不禁用适当的安全控制的情况下完成。执行sudo setsebool -P nis_enabled 1
后,我重新启动了rsyslog,kafka能够正常使用我的消息。
答案 2 :(得分:0)
这肯定与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。