Ad Widget

Collapse

Zabbix Server Redundancy

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • steve.tempest
    Junior Member
    • Aug 2005
    • 8

    #1

    Zabbix Server Redundancy

    How would I go about having multiple zabbix server monitoring the same networks/servers from different locations.

    So say you have zone A, zone B and zone C, each zone has a zabbix server which monitors all three zones.

    Is this someone here has done.

    Thanks

    Steve
  • James Wells
    Senior Member
    • Jun 2005
    • 664

    #2
    Greetings,

    Prior to the inclusion of active checks, no, you could only have one zabbix server per database, but with the addition of active checks, I believe you can, as long as you are only using active checks.

    This is actually something I would like to get as well.
    Unofficial Zabbix Developer

    Comment

    • James Wells
      Senior Member
      • Jun 2005
      • 664

      #3
      Okay, I thought about how to add this feature, and I am thinking that we would have to break it down to items by server and hosts by server.

      Like you, I have different "zones" in my network, I have my internal testing environments, external environments, and my public environments. Mind you I still have other "zones", but for purposes of this feature, these are the keys.

      My internal testing zones are only available from the internal network, and I will be monitoring up to 20 different Apache VirtualHosts on each one as well as various Unix / Win32 items. All of these are directly available to the main zabbix server. for purposes of determining how to make this work, I will call this zone A and it will be monitored by server A

      My external environments are like the internal, except that there is a firewall between my main Zabbix server and the 20 Apache VirtualHosts. For this one, I will need a second zabbix server that performs the VirtualHosts tests from outside the firewall. This will be zone B and will be monitored by server A internally and server B externally, with server B being outside my firewall.

      My public environments are are similar to my external environments, except that the servers are co-located with a firewall blocking the internal and external checks. This will be zone C and will be monitored by server C internally and server B externally.

      Okay, so Server A and Server B will be monitoring the same hosts, but using different item types. Server A will be using Zabbix Agent and Zabbix Agent Active, while server B will using mostly simple checks. Server C will be using Zabbix Agent and Zabbix Agent Active checks.

      So based on this, we will need to modify the Server source code so that it only monitors the hosts that it is supposed to, but also only monitor the items for those hosts that it is supposed to. Additionally, we will need to modify the PHP front end to support this. I am thinking we only need two additional fields for the DB, a server field in the items table and a server field in the hosts table.

      In the Zabbix server source code, we would simply add an extra where clause to it's DB select of the items that it checks to determine which items it is monitoring. But this will also require a change to the Zabbix server to distinguish which host to test against. This will also require a change to the Zabbix_serverd.conf file to tell the Zabbix server what to query for.

      The PHP frontend, will simply need change to support the extra two fields.
      Unofficial Zabbix Developer

      Comment

      • Wolfgang
        Senior Member
        Zabbix Certified Trainer
        Zabbix Certified Specialist
        • Apr 2005
        • 116

        #4
        Originally posted by James Wells
        ...
        Okay, so Server A and Server B will be monitoring the same hosts, but using different item types. Server A will be using Zabbix Agent and Zabbix Agent Active, while server B will using mostly simple checks. Server C will be using Zabbix Agent and Zabbix Agent Active checks.
        ...
        If i understand correctly, you would distinguish the server-client relation by active and -non-active checks. In other words:

        ClientA -> ServerA (active check)
        ClientA <- ServerB (non-active check)

        etc.

        Is this would you mean?

        Wolfgang
        http://www.intellitrend.de
        Specialised in monitoring large environments and Zabbix API programming.

        Comment

        • James Wells
          Senior Member
          • Jun 2005
          • 664

          #5
          Originally posted by Wolfgang
          If i understand correctly, you would distinguish the server-client relation by active and -non-active checks. In other words:

          ClientA -> ServerA (active check)
          ClientA <- ServerB (non-active check)

          etc.

          Is this would you mean?

          Wolfgang
          Partially, yes. That was my plan, before I started writing the patch I submitted, but while writing the patch, I realized that distinguishing at that level was a bit too simple.

          Instead the Patch is exclusively server side. The agents will request their checks from which every server is listed first on the server line of their configuration file. My patch though will allow the server to only perform the active checks that you allow it to perform, based on the database settings. This will allow you to have multiple servers use the same database, but check completely different items / triggers.

          In my case, Server A and Server B will use a single database. Both servers will perform tests against the exact same clients, with Server A testing inside the firewall and Server B testing from outside the firewall. Been testing it for a few days now, and it appears to work well.
          Unofficial Zabbix Developer

          Comment

          • Wolfgang
            Senior Member
            Zabbix Certified Trainer
            Zabbix Certified Specialist
            • Apr 2005
            • 116

            #6
            Thank you for the explanation.
            http://www.intellitrend.de
            Specialised in monitoring large environments and Zabbix API programming.

            Comment

            Working...