Question about service checks and satellites

This forum was archived to /woltlab and is now in read-only mode.
  • Hello,


    I have a question regarding service checks from a specific endpoint. I monitor 4 separate "pods" in different rooms in a Datacenter. I figured the master/satellite configuration would work best for my use case. so far, its been working flawlessly. I have my hosts separated into directories as described by the documentation:


    zones.d/global-configs

    zones.d/master

    zones.d/monitor-poda

    zones.d/monitor-podb

    zones.d/monitor-podc

    zones.d/monitor-podd


    I was under the impression that placing service checks in each of these directories would tell the master server to send those checks to the endpoint of the same name as the directory they are in.


    For some reason, this is not the case. if I place a service check in any of the "monitor-*" folders, the checks get assigned to all hosts in all directories.


    I was reading the documentation and it says I need to specify which endpoint to use by using the "client_endpoint" variable.


    So I tried the client_endpoint variable and it seems to work. However, it still requires you to have the service definition on the satellite which is what I am trying to avoid.


    In the end, I would like to be able to add and remove hosts and services from the master node only without having to add any additional configuration on the satellites. I feel like I am halfway there but I am missing something rather simple.


    I'm not sure what configuration files or logs would help in this situation so any extra information needed I will be happy to provide.


    Can any one point me in the right direction?


    Thanks in advance

    -Jeff

  • I was under the impression that placing service checks in each of these directories would tell the master server to send those checks to the endpoint of the same name as the directory they are in.

    For some reason, this is not the case. if I place a service check in any of the "monitor-*" folders, the checks get assigned to all hosts in all directories.

    Correct. That is a bug.

    Work around it using something like assign where zone="zonename" in the services apply rule.

    I was reading the documentation and it says I need to specify which endpoint to use by using the "client_endpoint" variable.

    So I tried the client_endpoint variable and it seems to work. However, it still requires you to have the service definition on the satellite which is what I am trying to avoid.

    Guess you are talking about command_endpoint - You do not need to use it.

    Limit your apply rules scope as above and it wiull work.


    Also important: Checks are scheduled at the satellite then. This reduces the load of the master and ensures that the satellite continues running checks even if

    the network to the master temporarily drops.

    With command_endpoint, the master just tells the satellite to run a command - No backlog (thus no replay of it), no satellite scheduling.


    In the end, I would like to be able to add and remove hosts and services from the master node only without having to add any additional configuration on the satellites. I feel like I am halfway there but I am missing something rather simple.

    That would be my goal, too. Check the workaround, and you should be there :-)

    The post was edited 2 times, last by sru ().

  • Hi Sru,


    Thank you so much! That was exactly what I needed to do. I didn't realize I could assign checks via zone so I overlooked that completely.


    I have removed all of the command_endpoint variables and assigned services via host.zone as you mentioned.


    Now its as simple as ignoring the hosts I do not want the checks applied to in that room and I can do it all from the master server.


    Thanks again!


    -Jeff