Ad Widget

Collapse

Scaling Zabbix Proxies

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • steveroebuck
    Junior Member
    • Jan 2018
    • 19

    #1

    Scaling Zabbix Proxies

    Hi Guys

    We are looking to deploy Zabbix into our large environment and we will need the ability to scale the number of proxies we deploy and load balance them, we are aware of technologies such as F5, HAPROXY and NGINX but wondered if anyone had any best practice or experience in doing this as there is very little if nothing out there.

  • kloczek
    Senior Member
    • Jun 2006
    • 1771

    #2
    Zabbix proxy service cannot be scaled horizontally.
    If you are using LB with some HA infrastructure + some VMs you can them to organize auto scaling groups with number of hosts in group = 1 to kill one proxy if it will die and start next one ASAP out of some base image.
    http://uk.linkedin.com/pub/tomasz-k%...zko/6/940/430/
    https://kloczek.wordpress.com/
    zapish - Zabbix API SHell binding https://github.com/kloczek/zapish
    My zabbix templates https://github.com/kloczek/zabbix-templates

    Comment

    • kernbug
      Senior Member
      • Feb 2013
      • 330

      #3
      Originally posted by steveroebuck
      Hi Guys

      We are looking to deploy Zabbix into our large environment and we will need the ability to scale the number of proxies we deploy and load balance them, we are aware of technologies such as F5, HAPROXY and NGINX but wondered if anyone had any best practice or experience in doing this as there is very little if nothing out there.
      For example, my use case from previuos work:
      1. CentOS 6 kickstart + chef solo, Zabbix Proxy with sqlite backend in memory tmpfs (up to 1500 nvps/5000 hosts);
      2. LLDP network topology on servers and network hardware + custom script: recalculate topology -> change by Puppet/Chef host to proxy assignment by datacenter/rack/city/etc. location;

      Comment

      • kloczek
        Senior Member
        • Jun 2006
        • 1771

        #4
        Originally posted by kernbug

        For example, my use case from previuos work:
        1. CentOS 6 kickstart + chef solo, Zabbix Proxy with sqlite backend in memory tmpfs (up to 1500 nvps/5000 hosts);
        2. LLDP network topology on servers and network hardware + custom script: recalculate topology -> change by Puppet/Chef host to proxy assignment by datacenter/rack/city/etc. location;
        I would recommend on such scale switching from sqlite to mysql (even with minimal 256MB innodb memory pool)
        http://uk.linkedin.com/pub/tomasz-k%...zko/6/940/430/
        https://kloczek.wordpress.com/
        zapish - Zabbix API SHell binding https://github.com/kloczek/zapish
        My zabbix templates https://github.com/kloczek/zabbix-templates

        Comment

        • kernbug
          Senior Member
          • Feb 2013
          • 330

          #5
          Originally posted by kloczek

          I would recommend on such scale switching from sqlite to mysql (even with minimal 256MB innodb memory pool)
          kloczek, why? For 5 years there were no problems with sqlite. Simple, fast, maintenance free.

          Comment

          • kloczek
            Senior Member
            • Jun 2006
            • 1771

            #6
            Originally posted by kernbug

            kloczek, why? For 5 years there were no problems with sqlite. Simple, fast, maintenance free.
            In case sqlite even single record insert/update/delete causes whole sqlite file rewrite.
            I know that in your case you are using memory but te same way you can use instead innodb just memory engine.
            In both cases (with innodb and memory engine) it will be way lower memory or storage IO/bytes bandwidth.

            BTW. IMO it wold be good if zabbix will have implemented automatic partitioning on the proxy db backend.
            Effectively on the proxy needs to be partitioned proxy_history table only and in case of sqlite it could be done by simple create every hour whole database file. Delete of oldest data could be done in such model by simple delete oldest sqlite file. This automatically improve proxy speed with sqlite db backend as always would be rewritten max last hour data.
            http://uk.linkedin.com/pub/tomasz-k%...zko/6/940/430/
            https://kloczek.wordpress.com/
            zapish - Zabbix API SHell binding https://github.com/kloczek/zapish
            My zabbix templates https://github.com/kloczek/zabbix-templates

            Comment

            • kernbug
              Senior Member
              • Feb 2013
              • 330

              #7
              Originally posted by kloczek
              use instead innodb just memory engine.
              In both cases (with innodb and memory engine) it will be way lower memory or storage IO/bytes bandwidth.
              Agree with you, it will be more correct.



              Comment

              Working...