1# Icinga 2 CLI Commands <a id="cli-commands"></a> 2 3Icinga 2 comes with a number of CLI commands which support bash autocompletion. 4 5These CLI commands will allow you to use certain functionality 6provided by and around Icinga 2. 7 8Each CLI command provides its own help and usage information, so please 9make sure to always run them with the `--help` parameter. 10 11Run `icinga2` without any arguments to get a list of all available global 12options. 13 14``` 15# icinga2 16icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 17 18Usage: 19 icinga2 <command> [<arguments>] 20 21Supported commands: 22 * api setup (setup for API) 23 * ca list (lists all certificate signing requests) 24 * ca restore (restores a removed certificate request) 25 * ca remove (removes an outstanding certificate request) 26 * ca sign (signs an outstanding certificate request) 27 * console (Icinga debug console) 28 * daemon (starts Icinga 2) 29 * feature disable (disables specified feature) 30 * feature enable (enables specified feature) 31 * feature list (lists all available features) 32 * node setup (set up node) 33 * node wizard (wizard for node setup) 34 * object list (lists all objects) 35 * pki new-ca (sets up a new CA) 36 * pki new-cert (creates a new CSR) 37 * pki request (requests a certificate) 38 * pki save-cert (saves another Icinga 2 instance's certificate) 39 * pki sign-csr (signs a CSR) 40 * pki ticket (generates a ticket) 41 * pki verify (verify TLS certificates: CN, signed by CA, is CA; Print certificate) 42 * variable get (gets a variable) 43 * variable list (lists all variables) 44 45Global options: 46 -h [ --help ] show this help message 47 -V [ --version ] show version information 48 --color use VT100 color codes even when stdout is not a 49 terminal 50 -D [ --define ] arg define a constant 51 -a [ --app ] arg application library name (default: icinga) 52 -l [ --library ] arg load a library 53 -I [ --include ] arg add include search directory 54 -x [ --log-level ] arg specify the log level for the console log. 55 The valid value is either debug, notice, 56 information (default), warning, or critical 57 -X [ --script-debugger ] whether to enable the script debugger 58 59Report bugs at <https://github.com/Icinga/icinga2> 60Icinga home page: <https://icinga.com/> 61``` 62 63 64## Icinga 2 CLI Bash Autocompletion <a id="cli-commands-autocompletion"></a> 65 66Bash Auto-Completion (pressing `<TAB>`) is provided only for the corresponding context. 67 68While `--config` suggests and auto-completes files and directories on disk, 69`feature enable` only suggests disabled features. 70 71RPM and Debian packages install the bash completion files into 72`/etc/bash_completion.d/icinga2`. 73 74You need to install the `bash-completion` package if not already installed. 75 76RHEL/CentOS/Fedora: 77 78```bash 79yum install bash-completion 80``` 81 82SUSE: 83 84```bash 85zypper install bash-completion 86``` 87 88Debian/Ubuntu: 89 90```bash 91apt-get install bash-completion 92``` 93 94Ensure that the `bash-completion.d` directory is added to your shell 95environment. You can manually source the icinga2 bash-completion file 96into your current session and test it: 97 98```bash 99source /etc/bash-completion.d/icinga2 100``` 101 102 103## Icinga 2 CLI Global Options <a id="cli-commands-global-options"></a> 104 105### Application Type 106 107By default the `icinga2` binary loads the `icinga` library. A different application type 108can be specified with the `--app` command-line option. 109Note: This is not needed by the average Icinga user, only developers. 110 111### Libraries 112 113Instead of loading libraries using the [`library` config directive](17-language-reference.md#library) 114you can also use the `--library` command-line option. 115Note: This is not needed by the average Icinga user, only developers. 116 117### Constants 118 119[Global constants](17-language-reference.md#constants) can be set using the `--define` command-line option. 120 121### Config Include Path <a id="config-include-path"></a> 122 123When including files you can specify that the include search path should be 124checked. You can do this by putting your configuration file name in angle 125brackets like this: 126 127``` 128include <test.conf> 129``` 130 131This causes Icinga 2 to search its include path for the configuration file 132`test.conf`. By default the installation path for the [Icinga Template Library](10-icinga-template-library.md#icinga-template-library) 133is the only search directory. 134 135Using the `--include` command-line option additional search directories can be 136added. 137 138## CLI command: Api <a id="cli-command-api"></a> 139 140Provides helper functions to enable and setup the 141[Icinga 2 API](12-icinga2-api.md#icinga2-api-setup). 142 143### CLI command: Api Setup <a id="cli-command-api-setup "></a> 144 145``` 146# icinga2 api setup --help 147icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 148 149Usage: 150 icinga2 api setup [<arguments>] 151 152Setup for Icinga 2 API. 153 154Global options: 155 -h [ --help ] show this help message 156 -V [ --version ] show version information 157 --color use VT100 color codes even when stdout is not a 158 terminal 159 -D [ --define ] arg define a constant 160 -I [ --include ] arg add include search directory 161 -x [ --log-level ] arg specify the log level for the console log. 162 The valid value is either debug, notice, 163 information (default), warning, or critical 164 -X [ --script-debugger ] whether to enable the script debugger 165 166Command options: 167 --cn arg The certificate's common name 168 169Report bugs at <https://github.com/Icinga/icinga2> 170Get support: <https://icinga.com/support/> 171Documentation: <https://icinga.com/docs/> 172Icinga home page: <https://icinga.com/> 173``` 174 175## CLI command: Ca <a id="cli-command-ca"></a> 176 177List and manage incoming certificate signing requests. More details 178can be found in the [signing methods](06-distributed-monitoring.md#distributed-monitoring-setup-sign-certificates-master) 179chapter. This CLI command is available since v2.8. 180 181``` 182# icinga2 ca --help 183icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 184 185Usage: 186 icinga2 <command> [<arguments>] 187 188Supported commands: 189 * ca list (lists all certificate signing requests) 190 * ca sign (signs an outstanding certificate request) 191 * ca restore (restores a removed certificate request) 192 * ca remove (removes an outstanding certificate request) 193 194Global options: 195 -h [ --help ] show this help message 196 -V [ --version ] show version information 197 --color use VT100 color codes even when stdout is not a 198 terminal 199 -D [ --define ] arg define a constant 200 -a [ --app ] arg application library name (default: icinga) 201 -l [ --library ] arg load a library 202 -I [ --include ] arg add include search directory 203 -x [ --log-level ] arg specify the log level for the console log. 204 The valid value is either debug, notice, 205 information (default), warning, or critical 206 -X [ --script-debugger ] whether to enable the script debugger 207 208Report bugs at <https://github.com/Icinga/icinga2> 209Icinga home page: <https://icinga.com/> 210``` 211 212 213### CLI command: Ca List <a id="cli-command-ca-list"></a> 214 215``` 216icinga2 ca list --help 217icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 218 219Usage: 220 icinga2 ca list [<arguments>] 221 222Lists pending certificate signing requests. 223 224Global options: 225 -h [ --help ] show this help message 226 -V [ --version ] show version information 227 --color use VT100 color codes even when stdout is not a 228 terminal 229 -D [ --define ] arg define a constant 230 -I [ --include ] arg add include search directory 231 -x [ --log-level ] arg specify the log level for the console log. 232 The valid value is either debug, notice, 233 information (default), warning, or critical 234 -X [ --script-debugger ] whether to enable the script debugger 235 236Command options: 237 --all List all certificate signing requests, including 238 signed. Note: Old requests are automatically 239 cleaned by Icinga after 1 week. 240 --removed List all removed CSRs (for use with 'ca restore') 241 --json encode output as JSON 242 243Report bugs at <https://github.com/Icinga/icinga2> 244Get support: <https://icinga.com/support/> 245Documentation: <https://icinga.com/docs/> 246Icinga home page: <https://icinga.com/> 247``` 248 249## CLI command: Console <a id="cli-command-console"></a> 250 251The CLI command `console` can be used to debug and evaluate Icinga 2 config expressions, 252e.g. to test [functions](17-language-reference.md#functions) in your local sandbox. 253 254``` 255$ icinga2 console 256Icinga 2 (version: v2.11.0) 257<1> => function test(name) { 258<1> .. log("Hello " + name) 259<1> .. } 260null 261<2> => test("World") 262information/config: Hello World 263null 264<3> => 265``` 266 267Further usage examples can be found in the [library reference](18-library-reference.md#library-reference) chapter. 268 269``` 270# icinga2 console --help 271icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 272 273Usage: 274 icinga2 console [<arguments>] 275 276Interprets Icinga script expressions. 277 278Global options: 279 -h [ --help ] show this help message 280 -V [ --version ] show version information 281 --color use VT100 color codes even when stdout is not a 282 terminal 283 -D [ --define ] arg define a constant 284 -a [ --app ] arg application library name (default: icinga) 285 -l [ --library ] arg load a library 286 -I [ --include ] arg add include search directory 287 -x [ --log-level ] arg specify the log level for the console log. 288 The valid value is either debug, notice, 289 information (default), warning, or critical 290 -X [ --script-debugger ] whether to enable the script debugger 291 292Command options: 293 -c [ --connect ] arg connect to an Icinga 2 instance 294 -e [ --eval ] arg evaluate expression and terminate 295 -r [ --file ] arg evaluate a file and terminate 296 --syntax-only only validate syntax (requires --eval or --file) 297 --sandbox enable sandbox mode 298 299Report bugs at <https://github.com/Icinga/icinga2> 300Icinga home page: <https://icinga.com/> 301``` 302 303 304On operating systems without the `libedit` library installed there is no 305support for line-editing or a command history. However you can 306use the `rlwrap` program if you require those features: 307 308```bash 309rlwrap icinga2 console 310``` 311 312The debug console can be used to connect to a running Icinga 2 instance using 313the [REST API](12-icinga2-api.md#icinga2-api). [API permissions](12-icinga2-api.md#icinga2-api-permissions) 314are required for executing config expressions and auto-completion. 315 316> **Note** 317> 318> The debug console does not currently support TLS certificate verification. 319> 320> Runtime modifications are not validated and might cause the Icinga 2 321> daemon to crash or behave in an unexpected way. Use these runtime changes 322> at your own risk and rather *inspect and debug objects read-only*. 323 324You can specify the API URL using the `--connect` parameter. 325 326Although the password can be specified there process arguments on UNIX platforms are 327usually visible to other users (e.g. through `ps`). In order to securely specify the 328user credentials the debug console supports two environment variables: 329 330 Environment variable | Description 331 ---------------------|------------- 332 ICINGA2_API_USERNAME | The API username. 333 ICINGA2_API_PASSWORD | The API password. 334 335Here's an example: 336 337``` 338$ ICINGA2_API_PASSWORD=icinga icinga2 console --connect 'https://root@localhost:5665/' 339Icinga 2 (version: v2.11.0) 340<1> => 341``` 342 343Once connected you can inspect variables and execute other expressions by entering them at the prompt: 344 345``` 346<1> => var h = get_host("icinga2-agent1.localdomain") 347null 348<2> => h.last_check_result 349{ 350 active = true 351 check_source = "icinga2-agent1.localdomain" 352 command = [ "/usr/local/sbin/check_ping", "-H", "127.0.0.1", "-c", "5000,100%", "-w", "3000,80%" ] 353 execution_end = 1446653527.174983 354 execution_start = 1446653523.152673 355 exit_status = 0.000000 356 output = "PING OK - Packet loss = 0%, RTA = 0.11 ms" 357 performance_data = [ "rta=0.114000ms;3000.000000;5000.000000;0.000000", "pl=0%;80;100;0" ] 358 schedule_end = 1446653527.175133 359 schedule_start = 1446653583.150000 360 state = 0.000000 361 type = "CheckResult" 362 vars_after = { 363 attempt = 1.000000 364 reachable = true 365 state = 0.000000 366 state_type = 1.000000 367 } 368 vars_before = { 369 attempt = 1.000000 370 reachable = true 371 state = 0.000000 372 state_type = 1.000000 373 } 374} 375<3> => 376``` 377 378You can use the `--eval` parameter to evaluate a single expression in batch mode. 379Using the `--file` option you can specify a file which should be evaluated. 380The output format for batch mode is JSON. 381 382The `--syntax-only` option can be used in combination with `--eval` or `--file` 383to check a script for syntax errors. In this mode the script is parsed to identify 384syntax errors but not evaluated. 385 386Here's an example that retrieves the command that was used by Icinga to check the `icinga2-agent1.localdomain` host: 387 388``` 389$ ICINGA2_API_PASSWORD=icinga icinga2 console --connect 'https://root@localhost:5665/' --eval 'get_host("icinga2-agent1.localdomain").last_check_result.command' | python -m json.tool 390[ 391 "/usr/local/sbin/check_ping", 392 "-H", 393 "127.0.0.1", 394 "-c", 395 "5000,100%", 396 "-w", 397 "3000,80%" 398] 399``` 400 401## CLI command: Daemon <a id="cli-command-daemon"></a> 402 403The CLI command `daemon` provides the functionality to start/stop Icinga 2. 404Furthermore it allows to run the [configuration validation](11-cli-commands.md#config-validation). 405 406``` 407# icinga2 daemon --help 408icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 409 410Usage: 411 icinga2 daemon [<arguments>] 412 413Starts Icinga 2. 414 415Global options: 416 -h [ --help ] show this help message 417 -V [ --version ] show version information 418 --color use VT100 color codes even when stdout is not a 419 terminal 420 -D [ --define ] arg define a constant 421 -a [ --app ] arg application library name (default: icinga) 422 -l [ --library ] arg load a library 423 -I [ --include ] arg add include search directory 424 -x [ --log-level ] arg specify the log level for the console log. 425 The valid value is either debug, notice, 426 information (default), warning, or critical 427 -X [ --script-debugger ] whether to enable the script debugger 428 429Command options: 430 -c [ --config ] arg parse a configuration file 431 -z [ --no-config ] start without a configuration file 432 -C [ --validate ] exit after validating the configuration 433 -e [ --errorlog ] arg log fatal errors to the specified log file (only 434 works in combination with --daemonize or 435 --close-stdio) 436 -d [ --daemonize ] detach from the controlling terminal 437 --close-stdio do not log to stdout (or stderr) after startup 438 439Report bugs at <https://github.com/Icinga/icinga2> 440Icinga home page: <https://icinga.com/> 441``` 442 443### Config Files <a id="cli-command-daemon-config-files"></a> 444 445You can specify one or more configuration files with the `--config` option. 446Configuration files are processed in the order they're specified on the command-line. 447 448When no configuration file is specified and the `--no-config` is not used 449Icinga 2 automatically falls back to using the configuration file 450`ConfigDir + "/icinga2.conf"` (where ConfigDir is usually `/etc/icinga2`). 451 452### Validation <a id="cli-command-daemon-validation"></a> 453 454The `--validate` option can be used to check if configuration files 455contain errors. If any errors are found, the exit status is 1, otherwise 0 456is returned. More details in the [configuration validation](11-cli-commands.md#config-validation) chapter. 457 458## CLI command: Feature <a id="cli-command-feature"></a> 459 460The `feature enable` and `feature disable` commands can be used to enable and disable features: 461 462``` 463# icinga2 feature disable <tab> 464--app --define --include --log-level --version checker graphite mainlog 465--color --help --library --script-debugger api command ido-mysql notification 466``` 467 468``` 469# icinga2 feature enable <tab> 470--app --define --include --log-level --version debuglog ido-pgsql livestatus perfdata syslog 471--color --help --library --script-debugger compatlog gelf influxdb opentsdb statusdata 472``` 473 474The `feature list` command shows which features are currently enabled: 475 476``` 477# icinga2 feature list 478Disabled features: compatlog debuglog gelf ido-pgsql influxdb livestatus opentsdb perfdata statusdata syslog 479Enabled features: api checker command graphite ido-mysql mainlog notification 480``` 481 482## CLI command: Node <a id="cli-command-node"></a> 483 484Provides the functionality to setup master and client 485nodes in a [distributed monitoring](06-distributed-monitoring.md#distributed-monitoring) scenario. 486 487``` 488# icinga2 node --help 489icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 490 491Usage: 492 icinga2 <command> [<arguments>] 493 494Supported commands: 495 * node setup (set up node) 496 * node wizard (wizard for node setup) 497 498Global options: 499 -h [ --help ] show this help message 500 -V [ --version ] show version information 501 --color use VT100 color codes even when stdout is not a 502 terminal 503 -D [ --define ] arg define a constant 504 -a [ --app ] arg application library name (default: icinga) 505 -l [ --library ] arg load a library 506 -I [ --include ] arg add include search directory 507 -x [ --log-level ] arg specify the log level for the console log. 508 The valid value is either debug, notice, 509 information (default), warning, or critical 510 -X [ --script-debugger ] whether to enable the script debugger 511 512Report bugs at <https://github.com/Icinga/icinga2> 513Icinga home page: <https://icinga.com/> 514``` 515 516## CLI command: Object <a id="cli-command-object"></a> 517 518The `object` CLI command can be used to list all configuration objects and their 519attributes. The command also shows where each of the attributes was modified and as such 520provides debug information for further configuration problem analysis. 521That way you can also identify which objects have been created from your [apply rules](17-language-reference.md#apply). 522 523Runtime modifications via the [REST API](12-icinga2-api.md#icinga2-api-config-objects) 524are not immediately updated. Furthermore there is a known issue with 525[group assign expressions](17-language-reference.md#group-assign) which are not reflected in the host object output. 526You need to restart Icinga 2 in order to update the `icinga2.debug` cache file. 527 528More information can be found in the [troubleshooting](15-troubleshooting.md#troubleshooting-list-configuration-objects) section. 529 530``` 531# icinga2 object --help 532icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 533 534Usage: 535 icinga2 <command> [<arguments>] 536 537Supported commands: 538 * object list (lists all objects) 539 540Global options: 541 -h [ --help ] show this help message 542 -V [ --version ] show version information 543 --color use VT100 color codes even when stdout is not a 544 terminal 545 -D [ --define ] arg define a constant 546 -a [ --app ] arg application library name (default: icinga) 547 -l [ --library ] arg load a library 548 -I [ --include ] arg add include search directory 549 -x [ --log-level ] arg specify the log level for the console log. 550 The valid value is either debug, notice, 551 information (default), warning, or critical 552 -X [ --script-debugger ] whether to enable the script debugger 553 554Report bugs at <https://github.com/Icinga/icinga2> 555Icinga home page: <https://icinga.com/> 556``` 557 558## CLI command: Pki <a id="cli-command-pki"></a> 559 560Provides the CLI commands to 561 562* generate a new certificate authority (CA) 563* generate a new CSR or self-signed certificate 564* sign a CSR and return a certificate 565* save a master certificate manually 566* request a signed certificate from the master 567* generate a new ticket for the client setup 568 569This functionality is used by the [node setup/wizard](11-cli-commands.md#cli-command-node) CLI commands. 570You will need them in the [distributed monitoring chapter](06-distributed-monitoring.md#distributed-monitoring). 571 572``` 573# icinga2 pki --help 574icinga2 - The Icinga 2 network monitoring daemon (version: v2.12.0) 575 576Usage: 577 icinga2 <command> [<arguments>] 578 579Supported commands: 580 * pki new-ca (sets up a new CA) 581 * pki new-cert (creates a new CSR) 582 * pki request (requests a certificate) 583 * pki save-cert (saves another Icinga 2 instance's certificate) 584 * pki sign-csr (signs a CSR) 585 * pki ticket (generates a ticket) 586 * pki verify (verify TLS certificates: CN, signed by CA, is CA; Print certificate) 587 588Global options: 589 -h [ --help ] show this help message 590 -V [ --version ] show version information 591 --color use VT100 color codes even when stdout is not a 592 terminal 593 -D [ --define ] arg define a constant 594 -a [ --app ] arg application library name (default: icinga) 595 -l [ --library ] arg load a library 596 -I [ --include ] arg add include search directory 597 -x [ --log-level ] arg specify the log level for the console log. 598 The valid value is either debug, notice, 599 information (default), warning, or critical 600 -X [ --script-debugger ] whether to enable the script debugger 601 602Report bugs at <https://github.com/Icinga/icinga2> 603Icinga home page: <https://icinga.com/> 604``` 605 606## CLI command: Variable <a id="cli-command-variable"></a> 607 608Lists all configured variables (constants) in a similar fashion like [object list](11-cli-commands.md#cli-command-object). 609 610``` 611# icinga2 variable --help 612icinga2 - The Icinga 2 network monitoring daemon (version: v2.11.0) 613 614Usage: 615 icinga2 <command> [<arguments>] 616 617Supported commands: 618 * variable get (gets a variable) 619 * variable list (lists all variables) 620 621Global options: 622 -h [ --help ] show this help message 623 -V [ --version ] show version information 624 --color use VT100 color codes even when stdout is not a 625 terminal 626 -D [ --define ] arg define a constant 627 -a [ --app ] arg application library name (default: icinga) 628 -l [ --library ] arg load a library 629 -I [ --include ] arg add include search directory 630 -x [ --log-level ] arg specify the log level for the console log. 631 The valid value is either debug, notice, 632 information (default), warning, or critical 633 -X [ --script-debugger ] whether to enable the script debugger 634 635Report bugs at <https://github.com/Icinga/icinga2> 636Icinga home page: <https://icinga.com/> 637``` 638 639## Enabling/Disabling Features <a id="enable-features"></a> 640 641Icinga 2 provides configuration files for some commonly used features. These 642are installed in the `/etc/icinga2/features-available` directory and can be 643enabled and disabled using the `icinga2 feature enable` and `icinga2 feature disable` 644[CLI commands](11-cli-commands.md#cli-command-feature), respectively. 645 646The `icinga2 feature enable` CLI command creates symlinks in the 647`/etc/icinga2/features-enabled` directory which is included by default 648in the example configuration file. 649 650You can view a list of enabled and disabled features: 651 652``` 653# icinga2 feature list 654Disabled features: api command compatlog debuglog graphite icingastatus ido-mysql ido-pgsql livestatus notification perfdata statusdata syslog 655Enabled features: checker mainlog notification 656``` 657 658Using the `icinga2 feature enable` command you can enable features: 659 660``` 661# icinga2 feature enable graphite 662Enabling feature graphite. Make sure to restart Icinga 2 for these changes to take effect. 663``` 664 665You can disable features using the `icinga2 feature disable` command: 666 667``` 668# icinga2 feature disable ido-mysql livestatus 669Disabling feature ido-mysql. Make sure to restart Icinga 2 for these changes to take effect. 670Disabling feature livestatus. Make sure to restart Icinga 2 for these changes to take effect. 671``` 672 673The `icinga2 feature enable` and `icinga2 feature disable` commands do not 674restart Icinga 2. You will need to restart Icinga 2 using the init script 675after enabling or disabling features. 676 677 678 679## Configuration Validation <a id="config-validation"></a> 680 681Once you've edited the configuration files make sure to tell Icinga 2 to validate 682the configuration changes. Icinga 2 will log any configuration error including 683a hint on the file, the line number and the affected configuration line itself. 684 685The following example creates an apply rule without any `assign` condition. 686 687``` 688apply Service "my-ping4" { 689 import "generic-service" 690 check_command = "ping4" 691 //assign where host.address 692} 693``` 694 695Validate the configuration: 696 697``` 698# icinga2 daemon -C 699 700[2014-05-22 17:07:25 +0200] critical/ConfigItem: Location: 701/etc/icinga2/conf.d/tests/my.conf(5): } 702/etc/icinga2/conf.d/tests/my.conf(6): 703/etc/icinga2/conf.d/tests/my.conf(7): apply Service "my-ping4" { 704 ^^^^^^^^^^^^^ 705/etc/icinga2/conf.d/tests/my.conf(8): import "test-generic-service" 706/etc/icinga2/conf.d/tests/my.conf(9): check_command = "ping4" 707 708Config error: 'apply' is missing 'assign' 709[2014-05-22 17:07:25 +0200] critical/ConfigItem: 1 errors, 0 warnings. 710Icinga 2 detected configuration errors. 711``` 712 713If you encounter errors during configuration validation, please make sure 714to read the [troubleshooting](15-troubleshooting.md#troubleshooting) chapter. 715 716You can also use the [CLI command](11-cli-commands.md#cli-command-object) `icinga2 object list` 717after validation passes to analyze object attributes, inheritance or created 718objects by apply rules. 719Find more on troubleshooting with `object list` in [this chapter](15-troubleshooting.md#troubleshooting-list-configuration-objects). 720 721 722## Reload on Configuration Changes <a id="config-change-reload"></a> 723 724Every time you have changed your configuration you should first tell Icinga 2 725to [validate](11-cli-commands.md#config-validation). If there are no validation errors, you can 726safely reload the Icinga 2 daemon. 727 728```bash 729systemctl reload icinga2 730``` 731 732The `reload` action will send the `SIGHUP` signal to the Icinga 2 daemon 733which will validate the configuration in a separate process and not stop 734the other events like check execution, notifications, etc. 735