Icinga 2.8 CentOS Documentation help

  • Hi, i am a newbie setting up Icinga 2.8 on CentOS 7. The localhost setup works fine and the grpahs show the service checks, etc.. However I added an additional satellite node and it has been sitting in "Pending" always. Tried going through the documentation as much as possible, but not able to get it working successfully. Would be happy if someone can guide me on this, I am willing to do even some screen share or something. The most difficult part me for was to do the setup with very basic rough examples in the icinga website. I dont want to compare documentation to others, but finding it little difficult without an actual working example.

    The post was edited 1 time, last by Diraja ().

  • Hi Diraja ,


    Welcome to our community! Whenever you ask a question, it'd be helpful to show what configurations you currently have so that we can get you a solution quicker. Specifically, show us your zone configurations on both master and satellite (in zones.conf by default) and tell us what your goal is in doing so. If you haven't read through this part in the documentation yet, I suggest doing so.


    Also, it may be helpful to look in the logs (default /var/log/icinga2/icinga2.log) to see the error you're receiving for zone configs.

  • Hi,


    you installed Icinga 2 on your second host (the satellite node)?


    You master is "ready", meaning you successfully ran the node wizard on it to configure a master node?

    https://www.icinga.com/docs/ic…-monitoring/#master-setup


    Did you run the node wizard on the satellite to configure a satellite node?

    https://www.icinga.com/docs/ic…tsatellite-setup-on-linux


    Please provide the zones.conf file from your master and satellite, also run # icinga2 feature list on both nodes an post the output here.

  • Hi, I am trying to a POC setup of Icinga2 monitoring and I am a total newbie to the Linux\Devops\Icinga world. Thanks watermelon and mcktr for your comments on this. The intention of my setup is to have a Single Master Node (Icinga2+Icinga web2 installed) and use it to monitor all my current running Infra nodes and get both their service metrics (http,icmp,ssh,disk,etc) and their server metrics (cpu,memory,etc..) on the Satelitte nodes.


    My current setup is just with one Master node and One Satellite node, so that I get a hang of configuration files and complete the work. Please find the details you requested below:


    Master Node:


    [root@monitor ~]# icinga2 feature list

    Disabled features: compatlog debuglog elasticsearch gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog

    Enabled features: api checker command ido-mysql mainlog notification


    Zones.Conf:



    /*

    * Generated by Icinga 2 node setup commands

    * on 2017-11-23 22:23:23 +0530

    */


    object Endpoint "monitor.cgautolab.net" {

    host = "172.1.2.1"

    }


    object Endpoint "tpass.novalocal" {

    host = "172.1.2.2"

    }


    object Zone "master" {

    endpoints = [ "monitor.cgautolab.net" ]

    }


    object Zone "tpass.novalocal" {

    endpoints = [ "tpass.novalocal" ]

    parent = "master"

    }


    object Zone "global-templates" {

    global = true

    }


    object Zone "director-global" {

    global = true

    }



    Satellite Node:


    [root@tpass ~]# icinga2 feature list

    Disabled features: command compatlog elasticsearch gelf graphite influxdb notification opentsdb perfdata statusdata syslog

    Enabled features: api checker debuglog livestatus mainlog


    Zones.conf:

    /*

    * Generated by Icinga 2 node setup commands

    * on 2017-11-24 02:23:40 +0530

    */


    object Endpoint "monitor.cgautolab.net" {

    host = "172.1.2.1"

    }


    object Endpoint "tpass.novalocal" {

    host = "172.1.2.2"

    }


    object Zone "master" {

    endpoints = [ "monitor.cgautolab.net" ]

    }


    object Zone "tpass.novalocal" {

    endpoints = [ "tpass.novalocal" ]

    parent = "master"

    }


    object Zone "global-templates" {

    global = true

    }


    object Zone "director-global" {

    global = true

    }


    Kindly let me know if you are looking for any additional details. The icinga 2 log does not show me any error messages.

  • Your zone configs look fine. Given that you ran icinga2 node wizard (as mcktr says) on each instance, the next possible problem would be that you haven't chosen a configuration mode. Do you want to use top-down command endpoint or top-down config sync?


    As mentioned in the docs I linked my initial response, these are the two ways to go about configuring your distributed monitoring setup. The pros and cons of each are described in those docs. Personally, I use the config sync mode. Therefore, I need to create a directory for my satellite in zones.d on the master node and specify each host object to have a zone variable. For example:


    Code: /etc/icinga2/zones.d/satellite1/hosts/hosts.conf
    1. object Host "test" {
    2. import "generic-host"
    3. zone = "satellite1"
    4. address = "..."
    5. ...
    6. }

    A note on the zone: it's up to you for whether or not you want to check that host using either the master instance or the satellite. I personally use the satellite to do the checking and just have the results sent back to the master, so I specify zone = "satellite1".


    The other way (command endpoint configuration) is very similar, but I'll leave it to you to read up about it but, given your described setup, I think the config sync mode would be sufficient.

  • Thanks for your response watermelon , I did check the zones.d location in the Master node. The hosts.conf of satellite node was present in /etc/icinga2/zones.d/teampass.novalocal/hosts.conf. After your reply, I have now moved the hosts.conf file by creating the directory "hosts".


    Then I did a icinga2 daemon -C to check the configuration and started the service and things looked green and service started. The daemon is running fine on both the nodes. However the the icinga2 log files on each node show some message\warnings, not sure what it is though, pasting it here for reference:


    Note: However the Icinga2 dashboard still shows the Satellite node as PENDING, and shows up with an ! mark with the message "UNHANDLED"


    Master Node:


    [2017-12-06 11:51:19 +0530] information/ApiListener: Sending config updates for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Syncing configuration files for zone 'tpass.novalocal' to endpoint 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Finished sending config file updates for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Syncing runtime objects to endpoint 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Finished syncing runtime objects to endpoint 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Finished sending runtime config updates for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Sending replay log for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Replayed 12 messages.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Finished sending replay log for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/ApiListener: Finished syncing endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 11:51:19 +0530] information/JsonRpcConnection: Received certificate request for CN 'tpass.novalocal' signed by our CA.

    [2017-12-06 11:51:19 +0530] information/JsonRpcConnection: The certificate for CN 'tpass.novalocal' cannot be renewed yet.

    [2017-12-06 11:51:26 +0530] information/WorkQueue: #7 (IdoMysqlConnection, ido-mysql) items: 3, rate: 2.6/s (156/min 190/5min 190/15min);

    [2017-12-06 11:51:29 +0530] information/WorkQueue: #13 (JsonRpcConnection, #3) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 11:51:29 +0530] information/WorkQueue: #11 (JsonRpcConnection, #1) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 11:51:29 +0530] information/WorkQueue: #12 (JsonRpcConnection, #2) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 11:51:29 +0530] information/WorkQueue: #10 (JsonRpcConnection, #0) items: 0, rate: 0.0833333/s (5/min 5/5min 5/15min);

    [2017-12-06 11:51:56 +0530] information/WorkQueue: #7 (IdoMysqlConnection, ido-mysql) items: 1, rate: 2.6/s (156/min 271/5min 271/15min);

    [2017-12-06 11:52:06 +0530] information/WorkQueue: #7 (IdoMysqlConnection, ido-mysql) items: 4, rate: 2.6/s (156/min 298/5min 298/15min);




    Satellite Node:


    [2017-12-06 04:52:18 +0530] information/ApiListener: Applying configuration file update for path '/var/lib/icinga2/api/zones/tpass.novalocal' (1609 Bytes). Received timestamp '2017-12-06 11:50:16 +0530' (1512541216.215213), Current timestamp '2017-11-24 15:07:29 +0530' (1511516249.029517).

    [2017-12-06 04:52:18 +0530] information/ApiListener: Restarting after configuration change.

    [2017-12-06 04:52:21 +0530] information/Application: Got reload command: Starting new instance.

    [2017-12-06 04:52:21 +0530] critical/Application: Found error in config: reloading aborted

    [2017-12-06 04:52:28 +0530] information/WorkQueue: #4 (ApiListener, RelayQueue) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 04:52:28 +0530] information/WorkQueue: #5 (ApiListener, SyncQueue) items: 0, rate: 0.0166667/s (1/min 1/5min 1/15min);

    [2017-12-06 04:52:28 +0530] information/WorkQueue: #8 (JsonRpcConnection, #0) items: 0, rate: 0.266667/s (16/min 16/5min 16/15min);

  • So far so good, the log from your satellite node indicates that there is a error in your configuration. You can run # icinga2 daemon -C on the satellite to validate the configuration and getting possbile errors in the configuration. I suppose that the satellite can not see some objects e.g. a template. You need to put such objects (templates, check command definitions, time period objects, etc) in the global-template zone. As the name indicates this is a global zone that means that the "content" of this zone will synced to all nodes (if they have it configured in the zones.conf). I recommand to read the documenation about global zones, to understand how they work: https://www.icinga.com/docs/ic…obal-zone-for-config-sync

  • Thanks mcktr .


    I have now defined or copied all my *.conf files under the global-templates folder. The new logs look good and the compilation also has no errors. (Below)


    However the Satellite node is still showing as "PENDING" and "UNHANDLED". :(


    I know this is the most ridiculous question I can ask:


    1) I believe I have configured my setup in configure-sync mode as explained above "My Satellite is doing the work and just sending the results to Master? Is this correct?"


    2) What am I still doing wrong, that I cannot see any statistics for my Satellite node?


    This is where I loose my hair and get stuck without some actual demo configuration of the Master-Satellite node, which is not explicitly mentioned for a dumb\newbie user like me





    Master Node:


    [2017-12-06 18:30:57 +0530] information/ApiListener: Syncing configuration files for zone 'tpass.novalocal' to endpoint 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Finished sending config file updates for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Syncing runtime objects to endpoint 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Finished syncing runtime objects to endpoint 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Finished sending runtime config updates for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Sending replay log for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/JsonRpcConnection: Received certificate request for CN 'tpass.novalocal' signed by our CA.

    [2017-12-06 18:30:57 +0530] information/JsonRpcConnection: The certificate for CN 'tpass.novalocal' cannot be renewed yet.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Replayed 7 messages.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Finished sending replay log for endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 18:30:57 +0530] information/ApiListener: Finished syncing endpoint 'tpass.novalocal' in zone 'tpass.novalocal'.

    [2017-12-06 18:31:07 +0530] information/ExternalCommandListener: Executing external command: [1512565267] SCHEDULE_FORCED_HOST_CHECK;tpass.novalocal;1512565267

    [2017-12-06 18:31:07 +0530] information/WorkQueue: #10 (JsonRpcConnection, #0) items: 0, rate: 0.0833333/s (5/min 5/5min 5/15min);

    [2017-12-06 18:31:07 +0530] information/WorkQueue: #13 (JsonRpcConnection, #3) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 18:31:07 +0530] information/WorkQueue: #12 (JsonRpcConnection, #2) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 18:31:07 +0530] information/WorkQueue: #11 (JsonRpcConnection, #1) items: 0, rate: 0/s (0/min 0/5min 0/15min);

    [2017-12-06 18:31:08 +0530] information/WorkQueue: #7 (IdoMysqlConnection, ido-mysql) items: 3, rate: 9232.95/s (553977/min 672592/5min 672592/15min);

    [2017-12-06 18:31:35 +0530] information/ExternalCommandListener: Executing external command: [1512565295] SCHEDULE_FORCED_SVC_CHECK;monitor.cgautolab.net;swap;1512565295





    Satellite Node:


    [2017-12-06 11:31:57 +0530] information/ApiListener: Syncing runtime objects to endpoint 'monitor.cgautolab.net'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Finished syncing runtime objects to endpoint 'monitor.cgautolab.net'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Finished sending runtime config updates for endpoint 'monitor.cgautolab.net' in zone 'master'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Sending replay log for endpoint 'monitor.cgautolab.net' in zone 'master'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Finished sending replay log for endpoint 'monitor.cgautolab.net' in zone 'master'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Finished syncing endpoint 'monitor.cgautolab.net' in zone 'master'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Applying config update from endpoint 'monitor.cgautolab.net' of zone 'master'.

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//.timestamp

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/commands.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/downtimes.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/groups.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/notifications.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/templates.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/timeperiods.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/global-templates//_etc/users.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Applying configuration file update for path '/var/lib/icinga2/api/zones/global-templates' (10354 Bytes). Received timestamp '2017-12-06 18:30:08 +0530' (1512565208.201548), Current timestamp '1970-01-01 05:30:00 +0530' (0.000000).

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/tpass.novalocal//.timestamp

    [2017-12-06 11:31:57 +0530] information/ApiListener: Updating configuration file: /var/lib/icinga2/api/zones/tpass.novalocal//_etc/hosts/hosts.conf

    [2017-12-06 11:31:57 +0530] information/ApiListener: Applying configuration file update for path '/var/lib/icinga2/api/zones/tpass.novalocal' (1609 Bytes). Received timestamp '2017-12-06 18:30:08 +0530' (1512565208.203707), Current timestamp '2017-12-06 11:50:16 +0530' (1512541216.215213).

    [2017-12-06 11:31:57 +0530] information/ApiListener: Restarting after configuration change.

    [2017-12-06 11:31:59 +0530] information/Application: Got reload command: Starting new instance.

    [2017-12-06 11:31:59 +0530] critical/Application: Found error in config: reloading aborted

    [2017-12-06 11:32:07 +0530] information/WorkQueue: #8 (JsonRpcConnection, #0) items: 0, rate: 0.2/s (12/min 12/5min 12/15min);

  • Apologies I jumped the gun, I see under my Satellite node after writing the above post, I see the below errors:


    critical/config: Error: Import references unknown template: 'generic-host'

    Location: in /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf: 20:3-20:23

    /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf(18): object Host "tpass.novalocal" {

    /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf(19): /* Import the default host template defined in `templates.conf`. */

    /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf(20): import "generic-host"

    ^^^^^^^^^^^^^^^^^^^^^

    /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf(21):

    /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf(22): check_command = "hostalive"


    critical/config: Error: Import references unknown template: 'generic-user'

    Location: in /var/lib/icinga2/api/zones/global-templates/_etc/users.conf: 7:3-7:23

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(5):

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(6): object User "icingaadmin" {

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(7): import "generic-user"

    ^^^^^^^^^^^^^^^^^^^^^

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(8):

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(9): display_name = "Icinga 2 Admin"


    I dont understand the reason of this, but if I remove the file hosts.conf from the above location mentioned and recompile, the service starts and then fails.

  • You are pushing configuration updates which do miss specific templates, in this case "generic-host" and "generic-user" are not defined. Do they exist on your master inside the global-templates zone?

  • Hi dnsmichi ,


    My Master node global-templates zone is having the below files:


    commands.conf groups.conf templates.conf users.conf

    downtimes.conf notifications.conf timeperiods.conf


    The error:

    critical/config: Error: Import references unknown template: 'generic-host'

    Location: in /var/lib/icinga2/api/zones/tpass.novalocal/_etc/hosts/hosts.conf: 20:3-20:23 is seen in my "SATELLITE NODE".


    Is any more details required?

  • In My Master node, Under Zones.d, in the folder: /etc/icinga2/zones.d/teampass.novalocal/hosts.conf, I did see the word "generic-host" defined. I have changed it now and rebooted the servers.


    Did a compile on the Icinga daemon in Master and Satellite node - Did see the below:


    Master:


    information/cli: Icinga application loader (version: r2.8.0-1)

    information/cli: Loading configuration file(s).

    information/ConfigItem: Committing config item(s).

    information/ApiListener: My API identity: monitor.cgautolab.net

    critical/config: Error: Import references unknown template: 'satellite-user'

    Location: in /etc/icinga2/zones.d/global-templates/users.conf: 7:3-7:25

    /etc/icinga2/zones.d/global-templates/users.conf(5):

    /etc/icinga2/zones.d/global-templates/users.conf(6): object User "icingaadmin" {

    /etc/icinga2/zones.d/global-templates/users.conf(7): import "satellite-user"

    ^^^^^^^^^^^^^^^^^^^^^^^

    /etc/icinga2/zones.d/global-templates/users.conf(8):

    /etc/icinga2/zones.d/global-templates/users.conf(9): display_name = "Icinga 2 Admin"


    critical/config: Error: Stack overflow while evaluating expression: Recursion level too deep.




    Satellite:


    information/cli: Icinga application loader (version: r2.8.0-1)

    information/cli: Loading configuration file(s).

    information/ConfigItem: Committing config item(s).

    information/ApiListener: My API identity: tpass.novalocal

    critical/config: Error: Import references unknown template: 'generic-user'

    Location: in /var/lib/icinga2/api/zones/global-templates/_etc/users.conf: 7:3-7:23

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(5):

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(6): object User "icingaadmin" {

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(7): import "generic-user"

    ^^^^^^^^^^^^^^^^^^^^^

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(8):

    /var/lib/icinga2/api/zones/global-templates/_etc/users.conf(9): display_name = "Icinga 2 Admin"


    I think I have broken my setup.

    As per the link: https://www.icinga.com/docs/ic…obal-zone-for-config-sync, I copied all the files with command:

    Code
    1. cp {commands,downtimes,groups,notifications,templates,timeperiods,users}.conf /etc/icinga2/zones.d/global-templates
  • I suggest that you have a read about the monitoring basics, especially how templates are defined and how importing them into actual objects works.


    https://www.icinga.com/docs/ic…itoring-basics/#templates

  • I did read them and got it to an working state so far but its broken again. As I mentioned in my first post, the documentation is on the difficult side for a newbie\novice like me in this DevOps world. I will be able to remove the configuration file changes I have done to bring it to a service UP state. However with no active examples it not really possible someone to get this setup working.

  • To me it sounds like you are relying on copying existing examples. Documentation should always be your starting point, especially when someone asks you how you've configured things. The more you are willing to invest by trying things out and learning from suggestions, the more you benefit later on.


    When I am asking about if the templates do exist inside the global-templates zone, I don't expect an answer like "I've copied everything from conf.d" but instead "Yes, the xyz template is defined in this file, and it is actually loaded on the master. Verified it with the config validation." or "No, I cannot find it. Must have been missed, tried to add it now."


    So, does the template exist in your global-templates zone on the master? How does it look like?

  • My complain was more towards the very generic example which is making it difficult for someone like me (first timer on everything linux\icinga\etc). From my understanding, yes the default templates existed in the global-templates zone of the master.


    I have now removed them to redo it from start based on the documentation again to take a step forward. The icinga2 daemon is now started on both my Master and Satellite nodes. The Dashboard shows all the metrics of the local Master.


    Hence I am going to start with the documentation: https://www.icinga.com/docs/ic…6-distributed-monitoring/ again and set this up. Hope I am on the right document section to make my case working?

  • I have re-done the config files again step by step for the Top Down Config Sync method. Now the Master is able to check the PING service and Disk Service status for the client node.


    The zones.d in the Master node, has the services.conf file created to check for the disk as below:


    object Service "disk" {

    host_name = "tpass.novalocal"


    check_command = "disk"

    }


    However the disk status is not showing up for the Satellite node in the Icinga2 dashboard and stuck at PENDING.


    Does this mean, I should define where this disk check command should be executed? or should the object service for each client node should be unique?


    Looking forward to the next steps please?

  • Thanks mcktr , dnsmichi and watermelon


    With an vast tool like this, I can understand the documentation cannot have all - and best way is to keep re-doing things as many times as possible and understand it. Some understand when reading, some when explained and some only upon seeing the picture. Probably I would fall in the last category, and like a kid who can sing the ABC song, but cannot write it unless the teacher hold hands and do it. As request I would like to see Level100 or Jumpstart training video on Icinga with examples or even an demo environment - :) just a request


    Got my hands and brains very dirty, made a small change to services.conf file in the Master in Zones.d location as below:


    apply Service for (disk => config in host.vars.disks) {

    import "generic-service"


    check_command = "disk"


    vars += config

    }


    Now with doing the above, I see the disk values for my Satellite node gets generated in the Dashboard, however there are 2 Entries : "disk" and "disk /". Ideally I think we should be see just One entry?


    I am not able to figure out the reason behind the same, any help or pointers on this would help in my overall understanding and replicate the same for my other Infrastructure nodes.



  • I know that it is hard, and I also know how many developers and contributors and company man hours are invested into this project. It will never be enough to satisfy anyone out there.


    Though, I also have heard that Icinga has a very good documentation for an open source project. From many different users. It might always be a matter of personal experience and how things look like, but at some point, the "perfect documentation as a howto" won't exist. That is your homework with finding out, and writing your own documentation, howto, blogpost.


    I personally don't have the time to create such howto videos. If anyone is really into creating howto videos, let me know. I can assist and help coordinate/promote the stuff, but this needs a concept and planned time.


    Regarding the problem: Look how "apply for" works, it fetches the values from "host.vars.disks". I bet the host object has two keys here.