如何配置 icinga2 apilistener 记录器

如何配置 icinga2 apilistener 记录器

ubuntu 16.04 上的 icinga2 将每个 api 调用记录到 /var/log/syslog。

我正在尝试在 xenial (ubuntu 16.04.1) 上运行 icinga2。我的系统日志中会收到与 api 相关的语句日志。我每 3 秒运行一次自动集成,每次运行会产生 10 多行。

Dec 16 15:02:43 dev-srv-01 icinga2[763]: [2016-12-16 15:02:41 -0500] information/HttpServerConnection: Request: GET /v1/objects/hosts/xxx?attrs[]=address&attrs[]=vars (root)
Dec 16 15:02:43 dev-srv-01 icinga2[763]: [2016-12-16 15:02:42 -0500] information/ApiListener: New client connection (no client certificate)

确实 icinga 记录操作(apilistener.cpp:403)

Log(LogInformation, "ApiListener") << "New client connection " << conninfo << " (no client certificate)";

如何配置此日志以使其更简洁?我无法从文档中弄清楚。

这是我目前的配置:

Disabled features: gelf graphite icingastatus mainlog opentsdb perfdata statusdata syslog
Enabled features: api checker command compatlog debuglog ido-mysql livestatus notification

我还创建了这个文件:/etc/icinga2/conf.d/api-users.conf

object ApiUser "root" {
     password = "x.x"
     permissions = [ "objects/*/Host" ]
}

系统服务:

[Unit]
Description=Icinga host/service/network monitoring system
After=postgresql.service mariadb.service carbon-cache.service mysql.service yslog.target

[Service]
Type=simple
ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2
ExecStart=/usr/sbin/icinga2 daemon -e /var/log/icinga2/error.log
ExecReload=/usr/lib/icinga2/safe-reload /usr/lib/icinga2/icinga2
PIDFile=/run/icinga2/icinga2.pid

[Install]
WantedBy=multi-user.target

阻止日志语句的唯一方法是禁用功能 API,但这当然是不可取的。

我尝试在 .conf 文件中配置 syslog、filelogger,但没有成功。禁用 debuglog、mainlog 功能也会导致垃圾邮件。

谢谢你!

答案1

这看起来像是一个“信息”级别的日志条目。要删除它,您需要将日志记录更改为更高级别。在

/etc/icinga2/features-enabled/mainlog.conf

我有

object FileLogger "main-log" {
  severity = "information"
  path = LocalStateDir + "/log/icinga2/icinga2.log"
}

根据文档“信息”的下一步是“警告”。

看起来相同的设置应该适用于SyslogLogger这应该是您正在使用的记录器。

答案2

事实证明这可能是系统性的问题。

ExecStart=/usr/sbin/icinga2 daemon -e /var/log/icinga2/error.log --log-level warning

以蛮力的方式解决了该问题。

这并不是我想要的,但我可以接受。

答案3

您看到的实际上不是 Icinga2 的 SyslogLogger 功能的输出,而是 icinga2 进程的标准输出,因此时间戳重复。文档说:

在终端上运行 Icinga 2 时,具有严重性信息或更高严重性信息的日志消息将写入控制台。

可以通过告诉 systemd 将 stdout 重定向到 /dev/null 来避免这种情况:

# cat /etc/systemd/system/icinga2.service.d/stdout.conf
[Service]                                      
StandardOutput=null

相关内容