用syslog连接发送kafka后,得到一个需求,需要连接发送给加密的kafka,在官方文档
https://www.rsyslog.com/doc/master/configuration/modules/omkafka.html
中看了一圈,没有看到明确相关的配置参数,
后来看到这个地方时候,想到了去librdkafka(https://github.com/edenhill/librdkafka/)看下里面的参数
点开上面圈出来的这个文件(https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md),里面有关于kafka的配置参数:
看到了一些熟悉的关于加密的参数。
这些参数配置在syslog配置文件什么地方呢,又回头去rsyslog官方文档里面看了一圈,找到了这个提示:
综合得到连接加密kafka配置的参数是(根据项目kafka情况配置以下参数) :
confParam=[
"sasl.mechanism=PLAIN",
"security.protocol=SASL_SSL",
"ssl.ca.location=/文件所在目录/CARoot.pem",
"ssl.certificate.location=/文件所在目录/certificate.pem",
"ssl.key.location=/文件所在目录/key.pem",
"sasl.username=xxxxx",
"sasl.password=xxxxx密码"
]
完整的在/etc/rsyslog.d/目录下配置的conf文件配置如下:
#mkafka和imudp模块
module(load="omkafka")
module(load="imudp")
module(load="imtcp")
# template 接收syslog日志,组装成json格式发送出去
template(name="log_json_template" type="list" option.jsonf="on") {
constant(value="{")
property(outname="hostName" name="hostname" format="jsonf")
constant(value=",")
property(outname="hostIp" name="fromhost-ip" format="jsonf")
constant(value=",")
property(outname="content" name="rawmsg" format="jsonf")
constant(value="}")
}
ruleset(name="logToSSLKafka") {
# 日志存储到kafka
action (
type="omkafka"
template="log_json_template"
# 如果是多分区,需要配置分区数量
partitions.number="1"
topic="test_ssl_kafka"
broker="127.0.0.1:9092"
errorFile="/var/log/rlog_kafka_error.log"
# 连接加密的kafka需要配置以下信息,注意证书的存放位置
confParam=["sasl.mechanism=PLAIN", "security.protocol=SASL_SSL","ssl.ca.location=/文件所在目录/CARoot.pem", "ssl.certificate.location=/文件所在目录/certificate.pem","ssl.key.location=/文件所在目录/key.pem","sasl.username=XXXXX","sasl.password=XXXX密码"]
)
}
# udp
input(type="imudp" port="514" ruleset="logToSSLKafka")
# tcp
input(type="imtcp" port="514" ruleset="logToSSLKafka")



