Icinga 2.16.5 常用 CLI 命令与工具详解
Icinga 2.16.5 命令行工具全解:icinga2 的 daemon/feature/object/variable/console/pki/ca/api/node 子命令与 icingacli 的 module/monitoring 命令,外加 REST API 常用调用,每条命令与回显均在 Ubuntu 22.04 实测。
Icinga 2.16.5 常用 CLI 命令与工具详解
目标:把 Icinga 2 日常运维要用的两套命令行工具——监控核心的
icinga2与 Web 层的icingacli——逐子命令讲透,覆盖配置校验、特性管理、对象查询、脚本控制台、PKI 证书、REST API 调用与监控数据查询。全部命令与回显在 Ubuntu 22.04.5(icinga2 r2.16.5-1 + Icinga Web 2.12.7)上实测采集,每条都能照抄执行。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS,x86_64,主机名 icinga1.example.com
- Icinga 2:r2.16.5-1(安装过程见《Ubuntu 22.04 安装 Icinga 2.16.5 指南》)
- Icinga Web 2:2.12.7,monitoring 模块 2.12.6 已启用
- 已启用特性:api checker ido-mysql mainlog notification
- API 账号:root / q1w2e3r4(演示值,5665 端口,自建 CA 证书)
- 默认安装路径:配置
/etc/icinga2、状态/var/lib/icinga2、缓存/var/cache/icinga2、日志/var/log/icinga2
二、工具概览
Icinga 的命令行分两套,职责不同:
| 工具 | 归属 | 面向对象 | 典型用途 |
|---|---|---|---|
icinga2 | 监控核心 | 守护进程本身 | 配置校验、特性开关、对象/变量查询、证书 PKI、集群节点注册、脚本控制台 |
icingacli | Icinga Web 2 | Web 与模块 | 模块启停、Setup 初始化、监控数据查询、Web 服务调试 |
icinga2 不带参数或执行未知命令时打印用法总览(实测):
icinga2 --help
icinga2 - The Icinga 2 network monitoring daemon (version: r2.16.5-1)
Usage:
icinga2 <command> [<arguments>]
Supported commands:
* api setup (setup for API)
* ca list (lists pending certificate signing requests)
* ca remove (removes an outstanding certificate request)
* ca restore (restores a removed certificate request)
* ca sign (signs an outstanding certificate request)
* console (Icinga console)
* daemon (starts Icinga 2)
* feature disable (disables specified feature)
* feature enable (enables specified feature)
* feature list (lists all available features)
* node setup (set up node)
* node wizard (wizard for node setup)
* object list (lists all objects)
* pki new-ca (sets up a new CA)
* pki new-cert (creates a new CSR)
* pki request (requests a certificate)
* pki save-cert (saves another Icinga 2 instance's certificate)
* pki sign-csr (signs a CSR)
* pki ticket (generates a ticket)
* pki verify (verify TLS certificates: CN, signed by CA, is CA; Print certificate)
* variable get (gets a variable)
* variable list (lists all variables)
Global options:
-h [ --help ] show this help message
-V [ --version ] show version information
--color use VT100 color codes even when stdout is not a
terminal
-D [ --define ] arg define a constant
-I [ --include ] arg add include search directory
-x [ --log-level ] arg specify the log level for the console log.
The valid value is either debug, notice,
information (default), warning, or critical
-X [ --script-debugger ] whether to enable the script debugger
💡 说明:2.16.5 的命令树就这 22 条。注意没有独立的
icinga2 configtest(老命令已并入icinga2 daemon -C),也没有icinga2 troubleshoot子命令(输入它只会回显本总览)。icingacli的命令树见第十三节。
三、前置条件
- 已按《Ubuntu 22.04 安装 Icinga 2.16.5 指南》完成核心安装,
systemctl is-active icinga2为 active。 - 涉及 API 调用的示例依赖一个 ApiUser(本文用
root/q1w2e3r4)与 5665 端口可达。 icinga2的多数子命令以 root 运行;pki new-cert/save-cert/sign-csr等涉及文件写入的命令内部会以 nagios 用户落盘,输出文件路径必须 nagios 可写(/tmp可以,/root不行——实测在/root下报Permission denied)。
四、icinga2 全局选项与版本信息
本节先掌握所有子命令共享的全局选项,日常最有用的是 -x(日志级别)与 -D(定义常量,临时覆盖配置测试用)。
icinga2 --version
icinga2 - The Icinga 2 network monitoring daemon (version: r2.16.5-1)
Copyright (c) 2012-2026 Icinga GmbH (https://icinga.com/)
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl-3.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
System information:
Platform: Ubuntu
Platform version: 22.04.5 LTS (Jammy Jellyfish)
Kernel: Linux
Kernel version: 6.8.0-138-generic
Architecture: x86_64
Build information:
Compiler: GNU 11.4.0
Build host: runner-5jugdrtyg-project-575-concurrent-5
OpenSSL version: OpenSSL 3.0.2 15 Mar 2022
Application information:
General paths:
Config directory: /etc/icinga2
Data directory: /var/lib/icinga2
Log directory: /var/log/icinga2
Cache directory: /var/cache/icinga2
Spool directory: /var/spool/icinga2
Run directory: /run/icinga2
Internal paths:
Package data directory: /usr/share/icinga2
State path: /var/lib/icinga2/icinga2.state
Modified attributes path: /var/lib/icinga2/modified-attributes.conf
Objects path: /var/cache/icinga2/icinga2.debug
Vars path: /var/cache/icinga2/icinga2.vars
PID path: /run/icinga2/icinga2.pid
常用全局选项速查(均为 --help 实测原文):
| 选项 | 作用 | 默认值 |
|---|---|---|
-x <level> | 控制台日志级别 | information(可选 debug/notice/warning/critical) |
-D <name>=<value> | 定义常量,优先级高于配置文件 | 无 |
-I <dir> | 追加 include 搜索目录 | 无 |
-X | 启用脚本调试器 | 关闭 |
-V | 打印版本信息 | — |
五、icinga2 daemon:运行与配置校验
daemon 是核心本体(systemd 服务背后就是它),日常最常用的是校验模式。
icinga2 daemon --help
Usage:
icinga2 daemon [<arguments>]
Starts Icinga 2.
Command options:
-c [ --config ] arg parse a configuration file
-z [ --no-config ] start without a configuration file
-C [ --validate ] exit after validating the configuration
--dump-objects write icinga2.debug cache file for icinga2 object
list
-e [ --errorlog ] arg log fatal errors to the specified log file (only
works in combination with --daemonize or
--close-stdio)
-d [ --daemonize ] detach from the controlling terminal
--close-stdio do not log to stdout (or stderr) after startup
改完配置后的标准动作——校验再重载(实测回显):
icinga2 daemon -C
[2026-10-19 20:30:04 +0000] information/ConfigItem: Instantiated 3 ServiceGroups.
[2026-10-19 20:30:04 +0000] information/ConfigItem: Instantiated 3 TimePeriods.
[2026-10-19 20:30:04 +0000] information/ConfigItem: Instantiated 12 Services.
[2026-10-19 20:30:04 +0000] information/ConfigItem: Instantiated 1 ScheduledDowntime.
[2026-10-19 20:30:04 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2026-10-19 20:30:04 +0000] information/cli: Finished validating the configuration file(s).
Finished validating the configuration file(s) 即校验通过;有错时会给出文件名与行列号。校验通过后 systemctl reload icinga2 平滑生效。
为 object list 生成对象缓存(--dump-objects 只能配合 -C 使用,见第七节排障实录):
icinga2 daemon -C --dump-objects
[2026-10-19 20:30:16 +0000] information/ConfigItem: Instantiated 12 Services.
[2026-10-19 20:30:16 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2026-10-19 20:30:16 +0000] information/cli: Finished validating the configuration file(s).
六、icinga2 feature:特性管理
特性是 Icinga 2 的功能开关体系:enable/disable 实际操作 /etc/icinga2/features-enabled/ 软链,list 展示全景。
icinga2 feature list
Disabled features: command compatlog debuglog elasticsearch gelf graphite icingadb influxdb influxdb2 journald livestatus opentsdb perfdata syslog
Enabled features: api checker ido-mysql mainlog notification
启用/停用的实测回显(以演示特性 gelf 为例,启用后立即停用还原):
icinga2 feature enable gelf
icinga2 feature disable gelf
Enabling feature gelf. Make sure to restart Icinga 2 for these changes to take effect.
Disabling feature gelf. Make sure to restart Icinga 2 for these changes to take effect.
icinga2 feature disable gelf # 对本就未启用的特性执行,实测回显:
warning/cli: Feature 'gelf' already disabled.
⚠️ 注意:enable/disable 只改软链,必须重启服务(
systemctl restart icinga2)或按特性文档 reload 才生效。每个特性一个配置文件在/etc/icinga2/features-available/<name>.conf,开特性前先看一眼默认参数(如 ido-mysql.conf 的数据库连接串)。
七、icinga2 object list:对象查询
查询当前生效的监控对象及每个属性的来源(声明位置带文件行号,排查"这条配置哪来的"非常有效)。
排障实录:直接查询会报缓存缺失——
icinga2 object list --type Host
critical/cli: Cannot open objects file '/var/cache/icinga2/icinga2.debug'.
critical/cli: Run 'icinga2 daemon -C --dump-objects' to validate config and generate the cache file.
按提示先生成缓存(第五节命令),再查询:
icinga2 object list --type Host
Object 'icinga1.example.com' of type 'Host':
% declared in '/etc/icinga2/conf.d/hosts.conf', lines 18:1-18:20
* __name = "icinga1.example.com"
* action_url = ""
* address = "127.0.0.1"
% = modified in '/etc/icinga2/conf.d/templates.conf', lines 16:3-16:21
* address6 = "::1"
* check_command = "hostalive"
% = modified in '/etc/icinga2/conf.d/templates.conf', lines 19:3-19:29
* check_interval = 60
* display_name = "icinga1.example.com"
* enable_active_checks = true
...(输出节选:对象全部属性与覆盖来源随查询展开,本机默认对象约百余行)
常用形态:--type Host / --type Service / --type User / --type Zone;--name <对象名> 精确到单个对象。--types 不是有效选项(实测 unrecognised option '--types'),合法类型名以配置文件里的对象类型为准(Host、Service、CheckerComponent、ApiListener 等)。
八、icinga2 variable:变量查询
查询 DSL 运行时变量——常量、全局变量、模板库注入的路径变量都在这。
icinga2 variable get NodeName
icinga2 variable list
icinga1.example.com
ActiveStages = {
_api = "d3af4814-220d-4199-a544-0cf6e06ef5d7"
}
Icinga = Object of type 'Namespace'
Internal = Object of type 'Namespace'
ManubulonPluginDir = /usr/lib/nagios/plugins
...(输出节选:变量众多,含 PluginDir、PluginContribDir、MaxConcurrentChecks 等)
variable get NodeName 返回本节点名——写集群配置、API 过滤器前先核对它;variable list 全量列出,配合 grep 找变量名(如 icinga2 variable list | grep Plugin)。
九、icinga2 console:脚本控制台
Icinga DSL 的交互/求值控制台,可本地求值,也可连到运行中的守护进程查询真实对象。
icinga2 console --help
Usage:
icinga2 console [<arguments>]
Interprets Icinga script expressions.
Command options:
-c [ --connect ] arg connect to an Icinga 2 instance
-e [ --eval ] arg evaluate expression and terminate
-r [ --file ] arg evaluate a file and terminate
--syntax-only only validate syntax (requires --eval or --file)
--sandbox enable sandbox mode
本地模式(不连守护进程):能做表达式运算与语法验证,但查不到运行时对象——
icinga2 console --eval 'get_host("icinga1.example.com").name'
icinga2 console --eval '2 + 3 * 4'
null
14
get_host(...) 返回 null 是因为本地模式没有加载守护进程的对象缓存,查对象必须连守护进程。
连接模式:--connect 必须写完整 URL(实测结论):
icinga2 console --connect 'https://root:q1w2e3r4@localhost:5665/' --eval 'get_host("icinga1.example.com").name'
icinga2 console --connect 'https://root:q1w2e3r4@localhost:5665/' --eval 'len(get_services("icinga1.example.com"))'
"icinga1.example.com"
6
URL 写法的实测边界(写错时的真实报错,便于对照排错):
| 输入 | 实测报错 |
|---|---|
root@localhost:5665 | critical/ConsoleCommand: Invalid URL Scheme. |
https://localhost:5665(无路径) | critical/ConsoleCommand: Invalid URL: Missing '/' after authority. |
icinga2://root:...@localhost:5665 | critical/ConsoleCommand: Invalid URL: Missing '/' after authority. |
https://root:q1w2e3r4@localhost:5665/ | 正常执行 |
结论:scheme 必须是 https,且 URL 末尾带 / 路径;账号密码以 user:pass@ 形式内嵌。
十、icinga2 pki:证书与 PKI
集群(satellite/agent 接入)与 API 安全全靠这套命令。以下全部实测。
生成 CA(本机已有 CA 时拒绝重复生成):
icinga2 pki new-ca
warning/cli: CA files '/var/lib/icinga2/ca//ca.crt' and '/var/lib/icinga2/ca//ca.key' already exist.
为新节点生成私钥与 CSR(输出路径必须是 nagios 可写目录):
icinga2 pki new-cert --cn web1.example.com --csr /tmp/web1.csr --key /tmp/web1.key
information/base: Writing private key to '/tmp/web1.key'.
information/base: Writing certificate signing request to '/tmp/web1.csr'.
生成接入票据(ticket):agent/satellite 向 master 自动签发证书时校验身份的 HMAC 凭据,--salt 必须显式给出(master 侧自定义并妥善保管,同一 salt 生成的 ticket 才能被接受):
icinga2 pki ticket --cn web1.example.com --salt "1e29f0a4c7b35d68"
0a6868af10b54cb06af7fdd94f8177bae0ca7ea3
抓取对端证书(自签环境互相信任的第一步):
icinga2 pki save-cert --host localhost --port 5665 --trustedcert /tmp/peer.crt
information/pki: Writing certificate to file '/tmp/peer.crt'.
校验证书(CN 匹配性 + CA 签名链,正反两个实测样例):
icinga2 pki verify --cn icinga1.example.com --cert /var/lib/icinga2/certs/icinga1.example.com.crt
Valid Until: Nov 20 20:25:04 2027 GMT
Serial: A47F59948C6EF06E0A432FD829693C9035953558
Signature Algorithm: sha256WithRSAEncryption
Subject Alt Names: icinga1.example.com
Fingerprint: 9F 54 CC CE 5E FD 65 17 2C 86 88 0C 07 DE 65 4F 6B 47 3D 6E CD FF 15 E0 EB B7 55 3A 77 C5 56 9D
information/cli: OK: CN 'icinga1.example.com' matches certificate CN 'icinga1.example.com'.
icinga2 pki verify --cn web1.example.com --cert /tmp/peer.crt
Fingerprint: 9F 54 CC CE 5E FD 65 17 2C 86 88 0C 07 DE 65 4F 6B 47 3D 6E CD FF 15 E0 EB B7 55 3A 77 C5 56 9D
critical/cli: CRITICAL: CN 'web1.example.com' does NOT match certificate CN 'icinga1.example.com'.
签发 CSR(测试环境手工签发节点证书):
icinga2 pki sign-csr --csr /tmp/web1.csr --cert /tmp/web1.crt
information/pki: Writing certificate to file '/tmp/web1.crt'.
💡 技术拓展:Icinga 的证书签发有两条路线——手动路线(本节的 new-cert/ticket/save-cert/sign-csr 组合,适合排查或极端隔离环境)与自动路线(agent 用
icinga2 node setup --parent_host --ticket发起,master 侧经ca系列命令自动签)。生产建议走自动路线,手动路线留作排障手段。
十一、icinga2 ca:CA 请求队列管理
查看/审批经 node wizard 发来的证书请求(本机没有待签请求,实测输出为空表):
icinga2 ca list
Fingerprint | Timestamp | Signed | Subject
-----------------------------------------------------------------|--------------------------|--------|--------
配套子命令:ca sign --fingerprint <指纹> 签发、ca remove --fingerprint <指纹> 删除(可用 ca restore 恢复)。agent 端 ticket 校验通过时会自动签署,ca list 主要用于排查"agent 一直在等证书"类问题。
十二、icinga2 api setup 与 node:节点角色配置
api setup:单机/master 的 API 一键初始化(生成 CA、节点证书、ApiUser、写 NodeName/ZoneName 常量),实测完整回显:
icinga2 api setup
information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Reading '/etc/icinga2/icinga2.conf'.
information/cli: Enabling the 'api' feature.
warning/cli: Feature 'api' already enabled.
information/cli: Updating 'NodeName' constant in '/etc/icinga2/constants.conf'.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating 'ZoneName' constant in '/etc/icinga2/constants.conf'.
information/cli: Backup file '/etc/icinga2/constants.conf.orig' already exists. Skipping backup.
Done.
Now restart your Icinga 2 daemon to finish the installation!
node wizard:交互式向导(agent/satellite 接入或 master 初始化),回车默认走 agent/satellite 路线(实测截取):
icinga2 node wizard
Welcome to the Icinga 2 Setup Wizard!
We will guide you through all required configuration details.
Please specify if this is an agent/satellite setup ('n' installs a master setup) [Y/n]:
非交互场景用 node setup 直接传参(--help 实测节选):
Usage:
icinga2 node setup [<arguments>]
Sets up an Icinga 2 node.
Command options:
--zone arg The name of the local zone
--endpoint arg Connect to remote endpoint; syntax:
cn[,host,port]
--parent_host arg The name of the parent host for auto-signing the
csr; syntax: host[,port]
--parent_zone arg The name of the parent zone
--listen arg Listen on host,port
--ticket arg Generated ticket number for this request
(optional)
--trustedcert arg Trusted parent certificate file as connection
verification (received via 'pki save-cert')
--cn arg The certificate's common name
--accept-config Accept config from parent node
--accept-commands Accept commands from parent node
--master Use setup for a master instance
--global_zones arg The names of the additional global zones to
'global-templates' and 'director-global'.
--no-default-global-zones Do not add the default global zones
--disable-confd Disables the conf.d directory during the setup
agent 接入 master 的标准形态(在 agent 机器上执行,ticket 来自 master 的 pki ticket):
icinga2 node setup --zone agent-web1 --endpoint icinga1.example.com,192.168.1.10,5665 --parent_zone master --parent_host icinga1.example.com,192.168.1.10,5665 --ticket 0a6868af10b54cb06af7fdd94f8177bae0ca7ea3 --accept-config --accept-commands
十三、icingacli:Web 层命令行
icingacli 管理的是 Icinga Web 2 及其模块。直接运行打印命令树(实测):
icingacli
USAGE: icingacli [module] <command> [action] [options]
Available commands:
help Help for modules, commands and actions
module List and handle modules
version Shows version of Icinga Web 2, loaded modules and PHP
web
Available modules:
monitoring
版本信息(Web 与模块、PHP 版本一次看全):
icingacli version
Icinga Web 2 2.12.7
Git Commit 36bafad37c6edc138b0353d6ade2f1b99704454d
PHP Version 8.1.2-1ubuntu2.27
MODULE VERSION
monitoring 2.12.6
模块管理(启停真实生效,实测往返):
icingacli module list
icingacli module disable monitoring
icingacli module list
icingacli module enable monitoring
icingacli module list
MODULE VERSION STATE DESCRIPTION
monitoring 2.12.6 enabled Icinga monitoring module
There are no enabled modules
MODULE VERSION STATE DESCRIPTION
monitoring 2.12.6 enabled Icinga monitoring module
⚠️ 注意:
module disable monitoring会立刻让 Web 界面失去监控视图(列表只剩There are no enabled modules),生产上操作前先告知使用者。
监控数据查询(数据来自 IDO,与 Web 界面同源):
icingacli monitoring list hosts
icingacli monitoring list services
UP icinga1.example.com: PING OK - Packet loss = 0%, RTA = 0.03 ms
UP icinga1.example.com: PING OK - Packet loss = 0%, RTA = 0.03 ms
CRIT ├─ apt (For 17m 43s)
OK ├─ ping4 (For 17m 17s)
OK ├─ http (For 16m 58s)
OK ├─ ping6 (For 17m 16s)
OK ├─ disk (For 17m 48s)
(apt 服务 CRIT 是因为系统有未安装的安全更新,check_apt 如实上报——输出里还能看到各服务已运行时长。)命令体系用 icingacli help 逐级展开,例如 icingacli help monitoring 会列出 list、nrpe 两个子命令及用法。注意 2.12 的 monitoring 模块没有 icingacli monitoring health 这类命令(实测输入后仅回显用法),健康检查走 list 或 API。
Setup 模块与 token:安装期的 icingacli setup token create(实测输出 The newly generated setup token is: ca66327a1c2e5a45 形态)在向导完成后 setup 模块会自动停用,此时 icingacli setup 报 ERROR: There is no such module or command: 'setup'——这是安全设计,不是故障;需要重新初始化时用 icingacli module enable setup 临时启用。
十四、REST API 常用调用(curl)
CLI 之外,日常巡检与自动化最常走 5665 的 REST API。以下 curl 全部实测(-k 用于自建 CA)。
查询应用状态(拿 node_name/版本/进程号):
curl -sk -u root:q1w2e3r4 -H "Accept: application/json" \
-X GET "https://localhost:5665/v1/status/IcingaApplication"
{"results":[{"name":"IcingaApplication","perfdata":[],"status":{"icingaapplication":{"app":{"enable_event_handlers":true,"enable_flapping":true,"enable_host_checks":true,"enable_notifications":true,"enable_perfdata":true,"enable_service_checks":true,"environment":"","node_name":"icinga1.example.com","pid":8800,"program_start":1792441508.364058,"version":"r2.16.5-1"}}}}]}
查询对象(主机属性快照):
curl -sk -u root:q1w2e3r4 -H "Accept: application/json" \
-X GET "https://localhost:5665/v1/objects/hosts"
{"results":[{"attrs":{"__name":"icinga1.example.com","acknowledgement":0,"check_command":"hostalive","state":0, ...},"joins":{},"meta":{},"name":"icinga1.example.com","type":"Host"}]}
(输出节选:attrs 含全部属性,state: 0 即 UP。)
执行动作——强制重查(动作类必须 POST):
curl -sk -u root:q1w2e3r4 -H "Accept: application/json" \
-X POST "https://localhost:5665/v1/actions/reschedule-check" \
-d '{"type":"Service","filter":"host.name==\"icinga1.example.com\" && service.name==\"apt\"","force":true}'
{"results":[{"code":200,"status":"Successfully rescheduled check for object 'icinga1.example.com!apt'."}]}
执行动作——确认告警(acknowledge):
curl -sk -u root:q1w2e3r4 -H "Accept: application/json" \
-X POST "https://localhost:5665/v1/actions/acknowledge-problem" \
-d '{"type":"Service","filter":"host.name==\"icinga1.example.com\" && service.name==\"apt\"","author":"admin","comment":"known pending updates (demo)"}'
{"results":[{"code":200,"status":"Successfully acknowledged problem for object 'icinga1.example.com!apt'."}]}
实测坑位:POST 动作漏掉 -H "Accept: application/json" 会得到 HTML 错误页 <h1>Accept header is missing or not set to 'application/json'.</h1>——每个请求都带上 Accept 头最稳妥。
十五、注意事项
- 配置变更三步曲:
icinga2 daemon -C(校验)→systemctl reload icinga2(生效)→icinga2 object list --type <T>(复核);object list 前如无缓存先icinga2 daemon -C --dump-objects。 - feature 改动要重启:
feature enable/disable只写软链,systemctl restart icinga2后才生效。 - pki 文件权限:new-cert/save-cert/sign-csr 的输出路径必须 nagios 用户可写,
/root下实测报Permission denied。 - pki ticket 的 salt:只在 master 侧使用,同一 salt 才能验证通过 ticket;agent 的
node setup --ticket值必须来自同一 salt。 - console 查对象必须
--connect:本地模式get_host()恒为 null,别误判成"主机不存在"。 - API 用户最小权限:
permissions = [ "*" ]仅适合演示;生产按需收敛(如只授objects/query/:*与特定 action 权限)。 - 演示口令:本文
q1w2e3r4为实测演示值,生产环境务必换成强随机口令并同步/etc/icinga2/conf.d/api-users.conf与 Web 端 command transport 配置。
十六、常见问题(FAQ)
Q1:icinga2 object list 报 Cannot open objects file?
先生成缓存:icinga2 daemon -C --dump-objects(完整实录见第七节)。
Q2:icinga2 console --connect 报 Invalid URL Scheme 或 Missing '/' after authority?
URL 必须形如 https://user:pass@host:port/——scheme 要 https、末尾要带 /,对照第九节的实测边界表排查。
Q3:icingacli setup 提示没有这个命令?
Setup 向导完成后 setup 模块自动停用(安全设计)。icingacli module enable setup 临时启用,用完记得 disable。
Q4:icingacli monitoring list services 前面打印 tput: No value for $TERM 警告?
非交互 shell 没有终端类型导致的着色警告,不影响数据输出;需要干净输出时 export TERM=xterm 后再执行。
Q5:API 返回 <h1>Accept header is missing...?
加 -H "Accept: application/json"(第十四节实测坑位)。
Q6:想确认某条配置最终长什么样?
icinga2 object list --type <类型> --name <对象名> 输出全属性与声明来源(文件+行号);再配合 icinga2 variable list 看宏取值,绝大多数"配置不生效"都能定位。
十七、参考链接
- Icinga 2 官方文档(CLI Reference / REST API):
https://icinga.com/docs/icinga-2/latest/ - Icinga Web 2 文档(icingacli):
https://icinga.com/docs/icinga-web-2/latest/ - 安装与环境准备:见《Ubuntu 22.04 安装 Icinga 2.16.5 指南》
- 组件背景与选型:见《Icinga 2.16.5 介绍与选型指南》
- 仓库:https://github.com/Icinga/icinga2