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