Ad Widget

Collapse

Implementation of high availability for a geographically distributed solution

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Simmer
    Junior Member
    • May 2016
    • 10

    #1

    Implementation of high availability for a geographically distributed solution

    Good afternoon! I ask for your help or advice in this matter. I have the task of building not just a fault-tolerant monitoring system, but a system capable of being in a divided state, to continue to perform its functions. That's what I mean by what is written above ... There are several data centers you need to organize a monitoring system so that you have a single management console (frontend) and at the same time independent nodes of the system on each of the sites.
    In the first approximation, I see the solution to this problem as follows:
    1) The question of a common frontend is solved by a common database for all segments. For this, the Postgres-BDR solution will be applied.
    2) The most difficult point in this matter is the server zabbix, which should work with different proxy servers in different segments. At the moment, I see only one way to solve this issue, namely, the completion of the server code zabbix so that he could understand that server 1 - works with proxy 1.1, 1.2 and 1.3, and server 2 - works with proxy 2.1, 2.2 and 2.3 ... and so on.
    Maybe I'm wrong and there is a more beautiful and correct decision. I think this topic can be useful to many. Let's discuss this ...
    Last edited by Simmer; 02-07-2017, 21:59.
  • onallion
    Senior Member
    • Mar 2016
    • 131

    #2
    Having trouble understanding your post...

    Are you talking about having multiple Zabbix servers with one frontend? Because that is not possible.

    You can have Zabbix proxies in remote locations that report to the main Zabbix server.

    Comment

    • Simmer
      Junior Member
      • May 2016
      • 10

      #3
      Hello! Yes, I really need zabbix with a single frontend. Come on, I'll try to explain so ... There are 3 geographically distributed datacenters in which I need to arrange the elements of the system so that when everything is working in the normal mode, then all elements work in the cluster, but as soon as we assume the connection is broken between data centers, The elements of the system begin to work as a self-sustaining monitoring system, continuing to collect data on elements within its segment of the network. Once the connection between data centers is restored, the data generated by all systems must again be combined into one database.
      To provide such work from the database, I want to use Postgres-BDR. But here's what you can do with the server zabbix, I'm still not sure to answer. There is an idea to add its functionality to a level where the system can work with several servers that will manage each of their proxy servers.

      P.S. I apologize for my English. My knowledge of the language is enough for reading and understanding, but not enough for literate writing.

      Comment

      • jan.garaj
        Senior Member
        Zabbix Certified Specialist
        • Jan 2010
        • 506

        #4
        The worst case: all your datacenters will lose connectivity = you will have 3 independent DB masters. Are you sure that your chosen DB (Postgres-BDR) is able to handle that 3x split-brain situation automatically, when connections will be restored?

        IMHO your design is not best one/requirements are not very clear. It's worth to contact Zabbix directly.
        Devops Monitoring Expert advice: Dockerize/automate/monitor all the things.
        My DevOps stack: Docker / Kubernetes / Mesos / ECS / Terraform / Elasticsearch / Zabbix / Grafana / Puppet / Ansible / Vagrant

        Comment

        • Simmer
          Junior Member
          • May 2016
          • 10

          #5
          Hello! Yes, I'm sure that the database server cluster will work correctly in this situation. I already conducted its testing (not on the zabbix database). Here is a description from the Postgres-BDR website.
          Bi-Directional Replication for PostgreSQL (Postgres-BDR, or BDR) is the first open source multi-master replication system for PostgreSQL to reach full production status, developed by 2ndQuadrant and assisted by an active user community. BDR is specifically designed for use in geographically distributed clusters, using highly efficient asynchronous logical replication, supporting anything from 2 to more than 48 nodes in a distributed database.
          Organizations with geographically distributed databases will understand the complexity of replication and the goal of achieving efficient and accurate replicas of data. Unlike other solutions, BDR doesn't rely on using triggers to collect changes and insert them into a queue table. Instead it processes the WAL using the changeset extraction mechanism developed by 2ndQuadrant for version 9.4 of PostgreSQL. This solution avoids the write amplification involved in trigger-based solutions.
          That's why I'm just talking about the zabbix server at the moment. I ask about how I can make it so that each server is responsible only for its own data center, but all work for the same database.
          Last edited by Simmer; 04-07-2017, 05:46.

          Comment

          • onallion
            Senior Member
            • Mar 2016
            • 131

            #6
            You cannot have multiple Zabbix Servers writing to the same database. Even Zabbix Proxies have their own databases.

            Comment

            Working...