我现在和卡夫卡相处得很艰难,但我觉得我很接近。
我在 FreeNAS 上有两个虚拟机在本地运行。两者都运行 Ubuntu 18.04 LTS。
虚拟机灰色日志:192.168.1.25。运行 Graylog 服务器。从自身检索 rsyslogs 和 apache 运行良好。
虚拟机卡夫卡:192.168.1.16。运行卡夫卡。
我的目标是让 VM Graylog 通过 Graylog Kafka UDP 输入从 VM Kafka 中提取日志。第二个目标是复制这个,除了 Kafka 实例将位于我的 VPS 服务器上,从网站提供 apache 日志。当然,我想先在开发环境中进行测试。
我可以通过这行代码让我的 VM Kafka 服务器成功监听:
/opt/kafka_2.13-2.6.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic rsyslog_kafka --from-beginning
这是我的 60-kafka.conf 文件:
module(load="omkafka")
template(name="json"
type="list"
option.json="on") {
constant(value="{")
constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc33$
constant(value="\",\"@version\":\"1")
constant(value="\",\"message\":\"") property(name="msg")
constant(value="\",\"host\":\"") property(name="hostname")
constant(value="\",\"severity\":\"") property(name="syslogseverity-text")
constant(value="\",\"facility\":\"") property(name="syslogfacility-text")
constant(value="\",\"programname\":\"") property(name="programname")
constant(value="\",\"procid\":\"") property(name="procid")
constant(value="\"}\n")
}
action(
broker=["192.168.1.16:9092"]
type="omkafka"
topic="rsyslog_kafka"
template="json"
)
我正在使用默认的 server.properties 文件,它不包含任何侦听器,只是默认值。我明白我需要设置listeners
and advertised.listeners
。我尝试了以下设置无济于事:
尝试 1: listeners = PLAINTEXT://localhost:9092adverted.listeners=PLAINTEXT://192.168.1.16:9092
尝试 2:听众 = PLAINTEXT://127.0.0.1:9092 广告.listeners=PLAINTEXT://192.168.1.16:9092
这是在重新加载 Kafka 和 Rsyslog 并确认它们的状态处于活动状态之后。
尝试阅读消息时的示例错误。这一堆
[2020-08-20 00:52:42,248] WARN [Consumer clientId=consumer-console-consumer-70205-1, groupId=console-consumer-70205] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
其次是无限数量的这些:
[2020-08-20 00:48:50,598] WARN [Consumer clientId=consumer-console-consumer-11975-1, groupId=console-consumer-11975] Error while fetching metadata with correlation id 254 : {rsyslog_kafka=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
我觉得我很接近了。也许有些事情我只是在理解。我读过很多类似的文章,他们说只需用您的服务器替换 IP 地址。我觉得我已经做到了,但没有成功。