Ad Widget

Collapse

Distributed or hierarchical zabbix server architecture

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Trevelyon
    Junior Member
    • Jun 2019
    • 2

    #1

    Distributed or hierarchical zabbix server architecture

    Hello,

    I'm aware of the provisions for multiple front ends and proxies, however, does zabbix support a full scale distributed or hierarchical server architecture model.

    Example:

    Organizational Structure:
    Region1
    Region2
    Region3

    Servers:
    Each region has it's own zabbix server, db and front ends.

    The reason for using this architecture is:
    - Increased scalability
    - Increased reliability inside each region - anything that breaks connectivity with other regions zabbix servers will not impact a regions ability to manage their own portion of the network or recording of data
    - Increased performance - DB is naturally partitioned by region

    The zabbix architecture supports many pieces of this already (external authentication) but I am not aware of any provisions for the following:
    1. UI integration between different zabbix servers - method to direct to other zabbix front ends when inspecting other regions portions of the network
    2. Template synchronization between servers - reduce repetition of work and increase standardization
    3. Ability to collate data from multiple zabbix servers to create overall reporting for entire network
    4. Policy and Rules for configuring sharing of templates / data between servers

    Is anyone doing this? Are there built in features of zabbix that support the provisions above?

    Thanks in advance for any comments or information,
    Last edited by Trevelyon; 26-06-2019, 12:20.
  • Trevelyon
    Junior Member
    • Jun 2019
    • 2

    #2
    OK, I'm guessing from the lack of replies that this is not supported. Please reply and correct me if anyone is doing this. Thanks,

    Comment

    • ITOMDave
      Member
      • Nov 2018
      • 53

      #3
      Hi there, whilst I don't (yet) have the full answers to your question, I might be able to help you move forward a little.....
      1. UI integration between different zabbix servers - method to direct to other zabbix front ends when inspecting other regions portions of the network

        I'm interpreting this as being that an operator may need to access multiple Zabbix front-ends. If this is what you mean, then as each regional Zabbix implementation has its own front end, then it will have it's own IP / FQDN. It's just a case of pointing the operators browser at each individual URL. Having said that, given the level of detail in your question I may have interpreted it incorrectly. You could potentially put change the port numbers for each server / front end to make it clearer, but that might introduce confusion.
      2. Template synchronization between servers - reduce repetition of work and increase standardization

        I don't believe you can automatically synchronize templates between servers. Actually, I'd think very carefully about the reasons for doing this. I do agree with the objective of increased efficiency and standardisation, but there are a number of other factors to take into account......
        First - which platform is the "master platform" ? i.e. where are you going to make your template changes. Which of the regions will be the definitive source of truth for template definitions? How will you handle an admin in Region 1 making a change to a template at the same time as an admin in Region 2 makes a change to another (or even the same) template? How are you going to enforce version control of templates across regions ? Given your regional setup, I'm going to assume that the hosts being monitored in Region 1 are different to those monitored in Region 2 (and you don't have multiple Zabbix servers monitoring the same hosts - which is also a valid use case). In this case you will need to automate the association of templates to hosts.
        Having said all that, it is possible to export templates from a Zabbix server and import them into another Zabbix server. My advice is BE VERY CAREFUL.
      3. Ability to collate data from multiple zabbix servers to create overall reporting for entire network

        Zabbix reporting is no different to the reporting capabilities of many other enterprise class monitoring solutions - i.e. it could be better. As far as I know, this is not achievable out of the box using the regional architecture you have defined. One reason being the potential time discrepancies between the databases. For more advanced reporting you would likely need to consolidate the regional databases into a single, central "reporting database" and then build your reports around that using <insert reporting tool of choice>. To create this reporting data lake would be an interesting project in its own right. Not impossible, but not out of the box. There are a few plug-ins listed on GitHub to improve reporting but (and I stand to be corrected) there isn't anything that will allow consolidation in the way you mention.
        There are always multiple answers though and it is possible that you could create a READ-ONLY user on each Zabbix database and build ODBC queries within something like Excel to query each database in turn, consolidate the data and then use familiar spreadsheet techniques to present it in the way you need. This would avoid the need for a central reporting database at the expense of being clumsy and potentially impacting the Zabbix system itself when queries are running.
      4. Policy and Rules for configuring sharing of templates / data between servers

        As I'm sure you've figured out by my suggestions for questions 1 and 2, this isn't something that I believe is achievable out of the box.
      I hope this advances your research a little, feel free to ask for clarifications and add comments. Anything that adds to the community knowledge is welcomed.

      Dave.

      Comment

      Working...