Ad Widget

Collapse

What can be Zabbix Weakness ?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Naillik
    Junior Member
    • Jun 2018
    • 5

    #1

    What can be Zabbix Weakness ?

    Hello the world ,

    I'm opening this little discussions for a reports about Zabbix, and i want to know from who using it, what can be is true weakness.

    Also Pandora FMS is an alternative to Zabbix, is it better solution or not ?

    Thanks everyone who reply.

    Ps: Also I'm french so sorry about my english ...
  • scuba
    Junior Member
    • Jun 2018
    • 16

    #2
    I see some weakness in reporting, can not export reports in general formats.Also weak in availability reports.

    Comment

    • Linwood
      Senior Member
      • Dec 2013
      • 398

      #3
      Zabbix is two things: it is a framework with minimal tools out of the (free) box, and it is a deployed solution with (probably) lots of added value when you pay some zabbix consultant to put it together as a solution. So your question depends on context.

      Out of the box, I find that the templates are weak, and need tuning to meet specific situations. But that's going to be fairly true with any tool, and zabbix excels in a couple of regards in that scripting of external checks and traps is easy so you can customize, and that it is entirely database based so that queries, debugging and just understanding it is great (well, if one knows SQL). On the other hand, needing to be able to program checks, and needing to be able to manage a database, could be seen as a weakness by network admins who might have neither skill, so it depends on your viewpoint.

      If you mean specific technical weaknesses, I think the out of the box lack of database partitioning and/or better housekeeping routines (and the associated scalability limits) is a significant issue. I also think the hard links between templates and SNMP version is a significant drawback and likely to get worse with more security concerns (many, many templates floating around are all SNMP V2c).

      Another weakness that applies to multi-site situations (separate sites, not proxy sites) is a lack of easy synchronization of changes. If I customize templates, regex, scripts, etc., it is quite difficult to ensure that two clients end up with identical systems. The export of templates has improved substantially over past versions, but still lacks completeness (and entails lots of difficulties from linked templates, regex values, and the like that might not be carried along [note I haven't checked the last couple versions]).

      I've used a large variety of NMS tools (though not FMS which you mentioned), and each has their respective strengths and weaknesses, and I find almost all of them contextual -- what is a weakness for one client's situation may not be for another. Some (nagios for example) are a bit more fundamental, e.g. showing its age, but even there it depends heavily on the situation. For example, someone with really strong linux skills but non-existent database skills might be better off with nagios (or a variant). Conversely a site with all windows skills might be better off with What's Up Gold (though that's commercial). There are few absolutes in looking at the pros and cons of zabbix (or any NMS).

      Comment

      • kloczek
        Senior Member
        • Jun 2006
        • 1771

        #4
        Originally posted by Linwood
        Out of the box, I find that the templates are weak, and need tuning to meet specific situations. But that's going to be fairly true with any tool, and zabbix excels in a couple of regards in that scripting of external checks and traps is easy so you can customize, and that it is entirely database based so that queries, debugging and just understanding it is great (well, if one knows SQL). On the other hand, needing to be able to program checks, and needing to be able to manage a database, could be seen as a weakness by network admins who might have neither skill, so it depends on your viewpoint.
        Feel free to use my set of templates and /or work together on BtterTemplates(tm) by contributing to https://github.com/kloczek/zabbix-templates
        If you are not able to prepare some templates you can always here share some ideas about how something in your opinion could be improved.

        If you mean specific technical weaknesses, I think the out of the box lack of database partitioning and/or better housekeeping routines (and the associated scalability limits) is a significant issue. I also think the hard links between templates and SNMP version is a significant drawback and likely to get worse with more security concerns (many, many templates floating around are all SNMP V2c).
        At the moment implementing OOTB partitioning is relatively easy to implement.
        Problem only is that biggest Zabbix (company) clients have enough workforces implement it with well known and well described procedures when at the same time they have much more important needs.
        The same is with DB backend support not compiled in but implemented as loadable module (zabbix code has IIRC only four points in the source code where are some small DB engine code fragments).

        SNMP .. if someone is using this protocol almost always it mean that someone controls physical layer. So .. even using SNMPv1 should be not an issue.

        Another weakness that applies to multi-site situations (separate sites, not proxy sites) is a lack of easy synchronization of changes. If I customize templates, regex, scripts, etc., it is quite difficult to ensure that two clients end up with identical systems. The export of templates has improved substantially over past versions, but still lacks completeness (and entails lots of difficulties from linked templates, regex values, and the like that might not be carried along [note I haven't checked the last couple versions]).
        Zabbix transport layer allows offline data delivery, delivery monitoring data with delay. I have no idea what you may need more here. Can you say a bit more about your needs and/or what is exactly missing here?

        Regexps, templates scripts topics are completely not related to "multi-site situations".
        What you mean "it is quite difficult to ensure that two clients end up with identical systems"? What does mean in this case "client"?

        I've used a large variety of NMS tools (though not FMS which you mentioned), and each has their respective strengths and weaknesses, and I find almost all of them contextual -- what is a weakness for one client's situation may not be for another. Some (nagios for example) are a bit more fundamental, e.g. showing its age, but even there it depends heavily on the situation. For example, someone with really strong linux skills but non-existent database skills might be better off with nagios (or a variant). Conversely a site with all windows skills might be better off with What's Up Gold (though that's commercial). There are few absolutes in looking at the pros and cons of zabbix (or any NMS).
        I can share three (IMO) weaknesses of the zabbix:
        1) Lack of dynamic inventory.
        It should be possible to add custom inventory field and feed it from items data or external sources. Aggregation of the inventory data can produce entirely new types of metrics like 3d metric. Try to think for example about monitoring the service served from multiple hosts when you are monitoring latency of some service requests. If those data could be possible to map to inventory record and aggregate with the step of some quantisation time (like 10ms). Would be possible to produce multi-value metrics which could hold the number of the host with avg latency between 10-20ms, 20-30ms, 30-40ms and so on. Numbers of hosts with latencies in the exact band could probably form kind of normal distribution curve. Such curve sampled on regular time base can provide data about how a population of those latencies changes on timescale .. forming the 3D graph.
        Observing such graph would allow easy to spot for example service degradation. By calculating top part of this curve on latency, scale is possible to form exact criteria of the alarm (trigger)

        Another application for custom inventory could be better interaction with CMDBs/orchestration/automation services. Simple if it would be possible to store per host such custom inventory data it may be used zabbix as the storage engine for the data which now are copied into those applications DB backends.
        Remove of the host from the monitoring could trigger remove it from those applications data as well .. instantly. Adding host over DBs/orchestration/automation could automatically trigger add exact monitoring (at the moment in auto registration action is possible to add exact templates based on quite reach set of criteria).
        In longer term with such dynamic inventory backend, zabbix could be not de jure but de facto DB storage backend for all this type software. IMO it is the massive chance for zabbix
        Monitoring is not so far from automation and even now zabbix with remote commands actions could be classified as automation/orchestration software as well

        2) Problems with sharing templates.
        a) Working some time on my own set of templates with few people I found enormous obstacles on sharing those templates.
        Scenario: in new template exact item is changing. This change could be more than one type which is problematic:
        - name of the item is changing
        - item key is changing
        - item has been deleted
        As generally there are no any issues with other templates changes like history period, description or other attributes data those three are now extremely difficult.
        Why? Part of the answer is possible to spot in zabbix configuration.import API call https://www.zabbix.com/documentation...uration/import
        If you look closer one the parameters description you can find that (surprisingly) it is possible to apply set of criteria. What doesn't mean? It means that import of the template can have multiple results in the final state of the imported into zabbix template! It means as well that current zabbix stack state and exact template in the form of the template are not enough to have exact state of the imported template before import operation in zabbix templates was the template with the same name.
        If Template A has v1.0, then v1.1 and after this v1.2 and between those versions was the specific set of changes with those three types of changes you may end up with different import Params sets depend from which one version of the template you are doing upgrade/import.
        It is even exact scenario which I found only recently which is blocking proper import when in the newer version of the template name and key of the item changed. The final result is that only possible state is with lost continuity of the monitoring data after import new version of the template.

        I've told about this issue, and he told me that he has the plan to take care all of those issues by adding each item, graph, trigger and screen (because this issue is not only related to the items) kind of UUID (Universally unique identifier). If in the new version of the imported template exact item will be item/graph/screen/trigger/etc with the same UUID it will mean that it is the object which should replace all metadata.
        The issue is that such change will be touching almost every part inside zabbix server and frontend (with API gw as well) and will be very complex.
        So far I know that solving those issues has low zabbix developers priority ..

        I have some idea about use zabbix API calls on such imports to address those issues but it will be the only workaround, and it may be working in some deterministic way only on upgrade between two following versions of the template(s).
        The biggest test of those workarounds will be wen in templates maintained by me may have set of the changes touching at least one of those problematic areas (sooner or later it will come).

        b) Problems with nested templates
        Scenario: Template A has some set of items with linked other A1 and A2 templates.
        A template some items of the A1 and A2 templates are disabled or have changed some data (for example in A template is possible to change severity triggers which are defined e A1 and A2).

        When you will export A, A1 and A2 templates and import them again or you will import them to another zabbix stack, you will find that all A template with only linked A1 and A2 ones. All A template tweaks will be lost.
        This is is not per se bug because this part of the zabbix has never been implemented. It is the result of evolutionary changes in the zabbix when some features are more, and some are less important.

        This exact issue is the obstacle on using my MIB based templates on assembly specific devices types monitoring.
        Zabbix templates. Contribute to kloczek/zabbix-templates development by creating an account on GitHub.

        Some vendors on using even quite frequently used MIBs are putting behind exact OIDs different things.
        Another issue is from the fact that even if some OID or set of OIDs are defined in exact MIB it is not obligatory to implement in SNMP agent backend code handling those OIDs.
        One quite frequent case is with if{in,Out}Octets and ifHC{In,Out}Octets OIds from IF-MIB. Some devices provide only one set (only Octets which are 32-bit counters) or HC version or both
        If only one set of those OIDs is available, it would be nice to disable in LLD generating those OIDs graphs, screens or triggers. Now it is not possible to do this. The only way is to generate for example triggers in the disabled state. It causes that for example using MIB based approach is not possible to di shorten list of graphs without those which data are not collected.

        3) To simplistic host interface
        This issue is causing at least few issues:
        a) constant growth of the zabbix item types.
        If we will look at what is the difference between JMX items and for example ODBC or SNMP we may end up only on the observation that only differences are on collection data methods and authentication. All of them are server/proxy pooled items.
        All those items are in reality pooled items like external scripts items as well when pooling is done from server or proxy.
        Even SNMPv1, v2 and v3 item are distinguished on item type layer.

        What if it would be possible to have the different type of interfaces to such pooled items?
        So .. it will be possible to switch between SNMP version only by change auth type adding passwords and other fields. All WITHOUT touching templates.
        SNMPv2 or v2 or ODBC items could be added to the server or proxy as loadable modules. if snmp[] kay would be used this key could be able to query proxy or server host data to find out that exact SNMP version is used. the same with ODBC .. just loadable module which could provide odbc[] key.
        JMX? no problem module with jmx[] key. If will someone find the method of loading JMX key as active agent item key? No problem .. agent loadable module and delegation collecting those data over the zabbix agent.
        Now if you will try to use jmx[] it will not allow you to define item if you will not choose it as JMX item.
        Putting too much on the proxy always ens badly ..

        Problem is with other things.
        If within active agent motoring data will be possible to encapsulate interface metadata it will be easy to have the loadable module which could query agent interface metadata to obtain MySQL host, user and password to access to MySQL engine monitoring data. If it is zabbix agent loadable module with jmx[] key support, this code could be able to obtain authentication details on accessing to JVM mbeans data which is working on localhost. Isn't it?

        Reacher and new host interface with separated auth details could be possible to armour not allowing the non-super user or admin users read interface details.
        Now SNMP community or passwords are straight into SNMP items definitions.


        Nevertheless .. most of those issues are already more or less known or have been more or less discussed on f2f meetings or have been discussed in some zabbix tickets. I have no full list of those tickets, but if someone is interested, I can drop few. Weaknesses in zabbix are much more, and this is only some my top list. I can put on such list a few times more.
        One common related to those things will be not some design per se issues. it will be more related to something which still is not implemented yet
        Only design issue IMO is the weakness of the inventory which has been added many years ago and still is used without significant changes. Bu this it is quite easy not to classify it as design flaw/issue ;P

        Moreover at the end ..
        Only obstacle to have all those issues solved/implemented is related to limited man/hour resources of Zabbix dev team
        This dev team IMO is doing great and observing them and sometimes even talking with them I know personally how hard they are working
        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

        • Linwood
          Senior Member
          • Dec 2013
          • 398

          #5
          Originally posted by kloczek
          SNMP .. if someone is using this protocol almost always it mean that someone controls physical layer. So .. even using SNMPv1 should be not an issue.
          There's the factual issues, and then there are security auditors and regulatory standards that may insist on encryption anyway. I've made the same argument you are, but a lot depends on whether the people ultimately deciding are box-checkers or actually technically competent.

          Originally posted by kloczek
          Zabbix transport layer allows offline data delivery, delivery monitoring data with delay. I have no idea what you may need more here. Can you say a bit more about your needs and/or what is exactly missing here?
          Relative to multi-sit synchronization I think I misled you. Consider a consultant that has 3 unrelated customers, but who desires to keep them more or less in sync. So that consultant makes a bunch of changes in templates, associated external scripts, regex definitions, macros, mapped values, etc. Emphasis on changes; same templates, but a lot of changes.

          It becomes relatively difficult to move the changes into working systems.

          For a new client you can take the database and remove all client specific stuff as a starting point, but with established systems it becomes much harder. Sure, you can export and import templates, but there are a LOT of other baggage that goes with them, and you mentioned some of the issues of nested templates as well.

          Maybe the term I should have sued is "zabbix configuration control" is weak.




          Comment

          • kloczek
            Senior Member
            • Jun 2006
            • 1771

            #6
            Originally posted by Linwood
            Relative to multi-sit synchronization I think I misled you. Consider a consultant that has 3 unrelated customers, but who desires to keep them more or less in sync. So that consultant makes a bunch of changes in templates, associated external scripts, regex definitions, macros, mapped values, etc. Emphasis on changes; same templates, but a lot of changes.
            At the moment you can have expression outside templates and it was always like this. Only recently it is possible to use more complicated regexps which are using pcre.
            All what you need to do is add instead regexp definition just @<regexp_name> where "<regexp_name>" will be name of the regexp defined in Administration->General->Regular expressions.
            Macros are solving many things.
            Just had proposal to my "OS Linux" template to use instead hardcoded 15, 10, 5 % thresholds in VOL: LLD triggers to use macros instead. The same change will be applied to other OS templates (for Solaris and Windows).
            Even if template comes with exact values of those thresholds in template macros after add those templates to use on exact host you alter them after link template to the host in host macros layer.
            What is IMO still missing are group level macros.

            Current hierarchy of the macros is: global->template->host macros where last one is most important if defined. Better it wold be to have global->template->host group->host order of importance.
            Such group of host macros should be possible to define over Configuration->Host group-><group_name>
            With group macros may have some design issue when the same macro will be defined in more than one group which member exact host is
            If someone will have some idea how this little detail solve it may be last missing piece to have proper design proposal.

            Cannot figure out about what kind of other cases your comments are.
            Can you add few more words about those cases?

            Using agent scripts can be easier if you will switch to use system.run[] however it has some security impact as it allows to use zabbix configuration to push execution of some unwanted things.
            Long term solution IMO should be use loadable modules. system.run[] could be allowed only on POC stage.
            My own foal is to remove completely from all my templates all use of system.run[] keys and replace all those keys by keys provided by loadable modules.
            In https://github.com/kloczek/zbx_mod_mysql you can find complete template of the (still) skeleton repository which has complete automation to maintain, build and package such module as rpm package.
            This git repo uses some proposed zabbix source code changes submitted in https://support.zabbix.com/browse/ZBX-14327
            Anyone who is writing such loadable modules should have look on this ticket vote on ot and/or add whatever more still is missing in proposed patch.
            I have as well submitted another ticket (parent one of the ZBX-14327) which changes slightly dummy module example to use exactly this approach https://support.zabbix.com/browse/ZBX-11767

            It becomes relatively difficult to move the changes into working systems.

            For a new client you can take the database and remove all client specific stuff as a starting point, but with established systems it becomes much harder. Sure, you can export and import templates, but there are a LOT of other baggage that goes with them, and you mentioned some of the issues of nested templates as well.

            Maybe the term I should have sued is "zabbix configuration control" is weak.
            I would be interested about more details of those difficulties.
            I'm almost sure that many of them is possible to handle using current set of zabbix functionalities
            If it is something which I'm not aware it would be even more interesting
            Last edited by kloczek; 26-06-2018, 21:30.
            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

            • Naillik
              Junior Member
              • Jun 2018
              • 5

              #7
              Hi everyone,
              Thanks for reply Linwood, kloczek and also scuba

              I see some differents weakness you have shared :

              Weakness who can be replace/solve by update (For me Zabbix constantly evolving)

              Weakness in the way to make Zabbix monitoring (Is configuration, templates)

              Weakness in the fact that we need to know how Zabbix work, possibilities and tricks (by training or with a professionnal)

              And the Weakness about the way its made.


              Originally posted by Linwood
              I've used a large variety of NMS tools (though not FMS which you mentioned), and each has their respective strengths and weaknesses, and I find almost all of them contextual -- what is a weakness for one client's situation may not be for another.
              Exactly, i choose Zabbix because is free, easy to launch and upgrading contantly.



              Originally posted by kloczek
              SNMP .. if someone is using this protocol almost always it mean that someone controls physical layer. So .. even using SNMPv1 should be not an issue.
              Originally posted by Linwood
              There's the factual issues, and then there are security auditors and regulatory standards that may insist on encryption anyway. I've made the same argument you are, but a lot depends on whether the people ultimately deciding are box-checkers or actually technically competent.
              Thats interesting, i know SNMP1 is not a good solution for manitoring hosts but some of them can use only the 1 or 1 and 3. (like UPS)


              Originally posted by Linwood
              that it is entirely database based so that queries, debugging and just understanding it is great (well, if one knows SQL). On the other hand, needing to be able to program checks, and needing to be able to manage a database, could be seen as a weakness by network admins who might have neither skill, so it depends on your viewpoint.
              Well i know SQL language but i don't really have using it when I use Zabbix ... But for me It a strenght and a weakness.


              Linwood and kloczek said "templates are weak" ; "Problems with sharing templates". ; "Problems with nested templates" ;

              Thats true, i got problems in this part when it import new templates from https://share.zabbix.com/

              But thanks kloczek for sharing templates,
              its sad because this capacity it's show on https://www.zabbix.com/ like a strenth of Zabbix,
              but we seen templates can have limits and its something really important to solve.


              But the real weakness for Zabbix and for all monotoring software is to find real and advanced explanation, i know is for that we have a community but at least i need to get problem like" ICMP pinger too busy" for knowing i need to change configuration.
              This kind of details is to find or get teach by someone and can be a wall, if you don't know the answer.

              And by reading yours explanation, i see answer for overcome the weakness of Zabbix and with that we can change ourself "the way of its made".

              I hope some of the Zabbix Team see a discussion like that for continue to improve and evolve this supervision tool and also share more explanation, tutorial FREE (please ) with us.


              Thanks for all continu, share and solve Zabbix weaknesses.


              Comment

              • Alexei
                Founder, CEO
                Zabbix Certified Trainer
                Zabbix Certified SpecialistZabbix Certified Professional
                • Sep 2004
                • 5654

                #8
                Great discussion here! I just want to point out that some of the mentioned weaknesses (reporting capabilities, out of the box partitioning, template level limitations, one-click change of SNMP version, etc) are already part of the roadmap. We just need some time to implement it.
                Alexei Vladishev
                Creator of Zabbix, Product manager
                New York | Tokyo | Riga
                My Twitter

                Comment

                • Linwood
                  Senior Member
                  • Dec 2013
                  • 398

                  #9
                  Originally posted by kloczek
                  I would be interested about more details of those difficulties.
                  I'm almost sure that many of them is possible to handle using current set of zabbix functionalities
                  If it is something which I'm not aware it would be even more interesting
                  It may be that new features have made it easier. It's been a year or two since I did a serious attempt at synchronizing two sites. I need to do one in the near future, and will do some experimentation and take notes, and perhaps start a discussions.

                  But let me hit a high point first: A key part of any kind of change control amongst systems is the ability to audit for differences. There's nothing native to compare two sites. You can export templates and do differences, and that works reasonably well (though it has been a while, I found some false differences from differently sorted values, but that may be better now). You can also script something to do differences in external scripts. But consider that those templates contain regular expressions (i.e. the ones defined under Administration, General), and those do not export implicitly (like value maps) or explicitly. If you build a bunch of discovery rules and actions those can't export, and are only visible if you dive into the database (or perhaps API).

                  I do not mean to suggest that Zabbix needs to provide, natively, a way to do system compares (or perhaps the word is audit), but the lack of any consistent way to access the underlying data for a text compare makes it pretty hard.

                  Could one script all this in the API? Maybe. But I'm guessing it would be a LOT of code.

                  Caveat: I am not sure how many people need what I am looking for, but essentially it is a middle layer between zabbix-as-code (what is delivered when you build it from source for example), and site specific data like individual hosts, macro values, media/users, etc. I have a pile of external/alerting scripts, templates, regex, value maps and other settings. I want to keep them all in sync. And it's hard as a general case. On my list is to write a pile of scripts to assist, just ... well, it's on a long list. In most cases I have gotten around it by wiping a site entirely and starting fresh with another -- I have sql that wipes all the site-specific stuff in the database leaving behind everything else, so you can have an identical configuration as a starting point. Except wiping a site is not viable normally.

                  Comment

                  • kloczek
                    Senior Member
                    • Jun 2006
                    • 1771

                    #10
                    Originally posted by Naillik
                    Well i know SQL language but i don't really have using it when I use Zabbix ... But for me It a strenght and a weakness.
                    It is not any kind weakness. It is one of the strongest parts of the zabbix fundaments.

                    Many people are thinking that non-SQL DB engines are faster than those which are not like Cassandra or Mongo.
                    Problem is that in most of this kind of conclusions someone usually is making two typical mistakes:
                    - compare latency of some SQL queries without added indexes
                    - it about compare latency of the queries done in-memory of cached Cassandra or Mongo tables to the latency of the SQL engine which is using storage.
                    In first case before actual analyse you must confirm that indexes used on some test queries have been added. Usually this can shorten latency of such SQL queries by at least one to two levels of magnitude.
                    In second case compare needs to be done with using memory SQL storage engine.

                    Using storage and highly compressed physical representation of whole tables (not only exact columns) can speedup database way more than using Casandra ir Mongo.
                    Typical case it is ZFS with transparent compression instead altering tables to use compressed columns.

                    Linwood and kloczek said "templates are weak" ; "Problems with sharing templates". ; "Problems with nested templates" ;
                    Thats true, i got problems in this part when it import new templates from https://share.zabbix.com/
                    Problem does not exist as long as exact set of settings of the nested templates is only in zabbix database.
                    Relaying on this observation I'll try to implement in my MIB based SNMP aware devices monitoring approach as set of templates which are linking other MIB based templates + set of zabbix API calls which will alter (in mostly of the cases disable) some set of items with OIDs not supported by exact device.
                    It still will be nothing more than workaround but IMO it may work.

                    When I found it that it is some workaround by use set of zabbix API calls I've started digging around all currently available scripting wrappers to make zabbix API calls easy/simple.
                    When I found that all what was available was to complex I've decided to write my zapish (https://github.com/kloczek/zapish) which is only ~3KB Posix SH code
                    Solving this part was from my point of view necessary to to have GoodEnough(tm) platform to start working on publicly available set of templates.
                    As only few months ago some core part of zapish functionalities have been implemented this opened path to first publicly announced release of https://github.com/kloczek/zabbix-templates

                    On top of issues with linked nested templates which really blocks maintenance set of the templates build on top of more atomic templates and lack of possibility to disable graphs population in LLD I forgot to mention about yet another limitation.

                    I have some idea about some internal templates versioning mechanisms which I'll try to describe here.

                    Scenario: someone who is using some set of templates decides to change something in those templates.
                    Usually this should be done on limited scale as close as it is possible to the prod.
                    Let's say that this person decided to test new template on one of the prod or even non-prod hosts.
                    What if change settings of the host item/triggers/etc would automatically create version of the template and over some templates configuration frontend will be possible to see that on exact host is used "Service foo" template but with some changes?
                    What it will open? Few things:
                    - all hosts will be listed as using "Service foo" template and only one with the same template with some change
                    - it will be possible to rollback on this host to original version of the template
                    - it will be possible easy to move all other hosts state to use new version of the template
                    - before populating new version of the template will be possible to review list of the changes (important from point of view change control procedures)
                    - merging changes, branching, deleting some exact variants should be possible as well as long as all those templates will be only variants of exact version of the "Service foo" template.

                    Above will open as well whole set of possibilities to better share templates between separated zabbix stacks as exact version of the template would be immanent part of the template metadata.
                    So how it may look with above templates life-cycle on using for example zabbix OOTB templates or templates maintained by me?
                    Quite simple ..
                    After importing new templates versions to the zabbix those templates will be no longer instantly used across all previously used hosts
                    In interface will appear for example exact template but in multiple versions.
                    Zabbix admin would be able to test this new variant of the temp[ate on one host or all hosts. Because in zabbix templates exact template will be listed in two versions it will be possible to roll back use of new template Simple now sharing templates is quite risky thing .. if something will go wrong after apply new version of the template it may be real disaster :P
                    Size of the monitored envs is only growing so I think that pressure to civilise this area will be only growing

                    I know that as above is quite easy to describe implementing above may be not easy.
                    Nevertheless if no one in Zabbix have been thinking to much about this area above still could be stll quit good initial point to implement something which is missing and could move zabbix to new level

                    With above somehow is connected yet another "small" detail which needs to be sorted out before above would be possible to solidify in form of exact RFE.
                    Many years ago I found that in zabbix is possible state when two hosts are using the same template but they are with not the same set of items or other objects like graphs, triggers etc.
                    This was in the past result if some already solved issues in the zabbix but sometimes still it may happen as result of some DB crashes and repairs or manual fiddling with database content.
                    IMO zabbix should have some templates use validation process which would be able confirm that what was initially populated by add use some template still is fully consistent.
                    Simple without confirming/validating that "Service foo" template is used in exactly the same way across all hosts or other templates which are linked with "Service foo" template moving to new version or rolling back process may fail really badly.

                    Thats interesting, i know SNMP1 is not a good solution for manitoring hosts but some of them can use only the 1 or 1 and 3. (like UPS)​
                    Using SNMPv1 is down to some limitations of some devices on which snmpd has been compiled as only supporting SNMPv1 :P
                    Of course using v1 is not good as this version of SNMP protocol does not support bulk queries.
                    In other words I've not been even suggesting to use this protocol version
                    My point only was that using SNMPv3 which adds huge crypto overhead on monitored device side in many places as long as security is guaranteed on network physical layer is overused/exaggerated and as results it opens only new Pandora box of SNMP timeout issues :P
                    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

                    • kloczek
                      Senior Member
                      • Jun 2006
                      • 1771

                      #11
                      Yet another missing thing related to templates.

                      It is not possible to have multiple LLDs with the same key.
                      Scenario on which it it needed:
                      In my OS {Linux,Solaris,Windows} templates is VOL: LLD. Part of this LLD is populating inodes related metrics.
                      However some volumes like ZFS or btrfs have no such thing like inodes
                      On using OS Linux template and monitoring btrfs volumes all those LLD populated items are in unsupported state because:

                      Code:
                      $ df -i 
                      Filesystem      Inodes IUsed   IFree IUse% Mounted on
                      devtmpfs       1002006   623 1001383    1% /dev
                      tmpfs          1005727   286 1005441    1% /dev/shm
                      tmpfs          1005727   953 1004774    1% /run
                      tmpfs          1005727    17 1005710    1% /sys/fs/cgroup
                      /dev/sda2            0     0       0     - /
                      tmpfs          1005727    68 1005659    1% /tmp
                      /dev/sda1        48960   424   48536    1% /boot
                      /dev/sdb2            0     0       0     - /home/tkloczko
                      tmpfs          1005727    24 1005703    1% /run/user/1000
                      On calculating inodes metrics all those metrics are producing items with "division by zero" error (Inodes column in above).
                      It would be easy to handle this bu use the same vfs.fs.discovery[] ley two times:
                      - one time with filtering off all all pseudo FSess + zfs and and btrfs to populate used space metrics and other
                      - second time with other filter which will filter off all pseudo FSeses and inode capable to populate inodes related metrics, graphs etc.

                      IMO at least in LLD iterator items should be possible to have such duplicate key entries to use them with different filters.

                      The same may be useful with master items to to have different metrics of the master items with different sampling rates.
                      Second variant of solving scenario with master item could be add "Update interval" multiplication. id mater item is normally sampled every minute on some items after multiplying this period by 60 it should produce sampling exact dependent item metrics only one every hour.
                      If master item content may contain for example service version it does not make to much sense to sample this metrics so often as other fast changing metrics.
                      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

                      • BSDUKJ
                        Member
                        • Aug 2017
                        • 38

                        #12
                        From an installation and DBA point of view one area of weakness that Zabbix has is limited installation options.

                        Pandora FMS, can be installed on a Windows or Linux OS.
                        Zabbix is Linux only, albeit someone might be trying it in Windows.

                        Also Backend Database Support.

                        Like it or lump it Microsoft SQL Server is probably the most widely used Database Server in the world and Zabbix doesn't support it.

                        Pandora FMS supports a far bigger range of SQL Servers.

                        Comment

                        • kloczek
                          Senior Member
                          • Jun 2006
                          • 1771

                          #13
                          Originally posted by BSDUKJ
                          From an installation and DBA point of view one area of weakness that Zabbix has is limited installation options.

                          Pandora FMS, can be installed on a Windows or Linux OS.
                          Zabbix is Linux only, albeit someone might be trying it in Windows.
                          Nope. Here are supported all Unixes (Linux, Solaris, *BSD ..)
                          Why? <All because +99% of the zabbix source code is fully shareable amongst those OS platforms and relatively small fragments needs to be ported (more in case of agent and even less in case of server and proxy).
                          Portability of this code to Windows straight forward and to be honest it is not kind of big obstacle.
                          Zabbix server in most non-trivial case needs separated OS instance. In such case using non-Windows is not big deal.

                          Also Backend Database Support.
                          This has nothing to do with zabbix per se but with portability of the SQL engines code to Windows platform .. the same like with zabbix code.

                          Like it or lump it Microsoft SQL Server is probably the most widely used Database Server in the world and Zabbix doesn't support it.
                          As long as MSSQL supports SQL92 spec it should be easy to do because zabbix has only few points in code which needs to be ported to exact SQL engine.
                          Not to many people knows how to write SQL code working over MSSQL client code -> not to many people are able to do this -> someone needs to pay to do this.
                          However this is not a big deal as well as as far as I know demand to port zabbix to be able use with MSSQL is not enough big ATM (I'm sure that Alexei will correct me if something changed in mean time here ).

                          Pandora FMS supports a far bigger range of SQL Servers.
                          Than use it if want/need/cannot work without use MSSQL.
                          It is really so simple .. if there is no enough big (commercial) demand no one will add this task to top priorities of the zabbix dev team.
                          On Windows you can use MySQL ..
                          IMO comparing zabbix with Pandora FSM does not make to much sense.
                          Just look on https://trends.google.co.uk/trends/e...,Pandora%20FSM
                          Pandora IIRC is still written in perl and only this makes it as something hard to compare to the zabbix.
                          Last edited by kloczek; 28-06-2018, 17:43.
                          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

                          • Linwood
                            Senior Member
                            • Dec 2013
                            • 398

                            #14
                            Originally posted by kloczek
                            ...
                            It is not possible to have multiple LLDs with the same key.
                            ...
                            However some volumes like ZFS or btrfs have no such thing like inodes
                            ....
                            IMO at least in LLD iterator items should be possible to have such duplicate key entries to use them with different filters.
                            That's a good example, another I have relate to interfaces. I'd prefer to see item-prototype-specific filters on LLD iteration as a way to get around this, rather than multiple iterations (you can do multiple iterations, I do it now as an ugly workaround).

                            I'd like to see LLD discovery filters on the item prototypes where, if a particular item is not returned, or is returned with a specific value, I can just skip a specific item prototype. So if a particular interface type lacks some metrics or descriptive value, I can avoid getting an error (or conversely, avoid having to jump through hoops to avoid generating it).


                            Comment


                            • Linwood
                              Linwood commented
                              Editing a comment
                              @BSDUK, there are also organizations that dismiss products due to the requirement to run on windows. What's Up Gold is a good example; I've converted two WUG sites to zabbix and a large part of the argument was to get away from the cost of windows and SQL licenses (and, yes, WUG licenses).

                              So long as there are multiple operating systems, there will be management who require one over the other.

                              The argument of the cost of support staff is interesting, and often valid. I have recommended specific products in the past based on existing staff talents, and I think a company adopting a new product should consider that.

                              I do not, however, necessarily agree that MS SQL Server is so ubiquitous as you imply. As a simple example, vast portions of the web run on wordpress, and while there's some modest support there for windows, it is almost entirely linux of one flavor or another. A client just adopted linux despite being 100% windows now, because of a desire to do Wordpress and not wanting to fight the compatibility battles with windows.

                              It sounds like Windows was a fundamental requirement for you. In that case not sure why you even bothered looking at zabbix?

                            • BSDUKJ
                              BSDUKJ commented
                              Editing a comment
                              Linwood, the reason I choose Zabbix is that it looked a better fit that Nagios which I've used before. I like the product and it's running in a pilot and it's getting it approved where the difficulties are and it's down to financing staff.

                              It's doesn't sound as if you and a few others want me to use Zabbix because I've come back with constructive comments about what decision makers see as a weakness.

                              I would have thought you would have been trying to sell the product and get people to use it not the opposite.

                              The reactions to my constructive comments are extremely negative and seem to have hit an unintended nerve.

                              All that would have been required to say could have been: Zabbix don't support this due to cost and we don't see it as a weakness.


                              Getting back to my point, Windows is a nice to have, Microsoft SQL Server now runs on Linux so the OS it not as big an issue now.

                              It's Microsoft SQL Server that is the sticking point for organisation, it's not just the specialist DBA cost is the additional Cyber Security Staff required and testing costs.

                              You are looking at employing at least 2 extra staff.

                              If it's not on the radar to grow the product fair enough.
                              Last edited by BSDUKJ; 02-07-2018, 10:40. Reason: Typo

                            • Linwood
                              Linwood commented
                              Editing a comment
                              BSDUKJ, first, most here are users of Zabbix, not employees or ones who want to "sell" anything, especially for a free product. You seemed to imply windows was a requirement; if it is, zabbix is not the tool, that is what I said. If Windows is not a requirement, great. There's no conflict here, it is what it is.

                              The presumption that you need two dedicated staff for linux seems misplaced, unless this is a very large organization. Alternatives range from giving it to current staff to figure out, to contracting for a la carte support when needed with a support organization, all of which are tiny compared to new positions. But a perfectly valid decision is - if you are a windows shop, use something running on windows. I've certainly made that decision when I was running I.T. organizations for many products, including ones that might require Oracle when we had no Oracle expertise.

                              There's no agenda here. I could not care less who uses zabbix. I apologize if what I said seemed offensive, it was not meant that way either.
                          • LenR
                            Senior Member
                            • Sep 2009
                            • 1005

                            #15
                            An organizations attitude and policies can be bigger weaknesses than any technical issues.

                            Comment

                            Working...