目前,我在 Ubuntu 22.04.1 LTS 上运行 syslog-ng 3 (3.35.1)。目标是使用 https 安全协议发送数据并使用基本身份验证。Syslog-ng 正在使用 elasticsearch-http 模块将日志正确发送到 Elasticsearch API,如下所示:
destination elk_http {
elasticsearch-http(
index("testing_index")
type("")
url("http://a.b.c.d:port/_bulk")
workers(4)
);
};
现在我必须将目标地址从 http 更改为 https,据我所知不会有问题,但我该如何配置基本身份验证?我试图在 Google 上寻找解决方案,但我只找到了带有 elasticsearch2 模块 (@module mod-java) 的示例。问题是我无法以任何方式安装 elasticsearch2 模块 (apt-get install syslog-ng-mod-elasticsearch、apt-get install syslog-ng-mod-java 等等)。有没有办法使用“elasticsearch-http”模块启用基本身份验证,如果没有,我是否必须使用源安装 syslog-ng,然后启用 mod-java,或者也许有简单的方法来安装 mod-java?
如果您有任何想法,请告诉我。
问候
答案1
您可以使用 elasticsearch-http() 目标,只需设置user()
和password()
选项。如果您想验证服务器的证书,您还需要设置一些选项(请参阅这里的例子),或者peer-verify(no)
如果您只想测试不带证书验证的 https,则只需使用。
答案2
我已经弄清楚了,对于那些需要线索的人来说,配置如下所示:
destination elk_http {
elasticsearch-http(
index("testing_index")
type("")
user("login")
password("password")
url("https://a.b.c.d")
workers(4)
tls(peer-verify(no))
);
};