Ad Widget

Collapse

Managing UserParameter's

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • justin
    Junior Member
    • Feb 2013
    • 5

    #1

    Managing UserParameter's

    I've read of people using Zabbix to monitor thousands of servers. Are they using something to manage the UserParameters? I'm relatively new to Zabbix and maybe I've missed something along my journey but It seems like there should be a built-in mechanism for managing UserParameters.

    Here are my 2 use cases:

    - Configure the host for monitoring on the Zabbix server (apply to templates, configure IP, etc) and install the agent on the new host. At this point, the agent should check-in with the server and pull the related UserParameter commands and scripts from the server. The Zabbix server would need to know the UserParameter type - either "command" or "script" in order to determine if a script should be also downloaded.

    - At a regular interval, the agent needs to check-in and determine if anything has been removed or added to/from the items.

    I could certainly write something like this using the API, SSH, curl, etc but like I said earlier I *feel* like this should be built-in and I may have skipped over something.

    Thanks for the help!
  • tim.mooney
    Senior Member
    • Dec 2012
    • 1427

    #2
    Originally posted by justin
    I've read of people using Zabbix to monitor thousands of servers. Are they using something to manage the UserParameters? I'm relatively new to Zabbix and maybe I've missed something along my journey but It seems like there should be a built-in mechanism for managing UserParameters.
    People that are monitoring thousands of servers are likely using one of the many configuration management systems out there to deploy the agent and manage the configuration file, including UserParameters.

    My group is only responsible for 150+ servers, and we're using puppet to do that, as well as for deploying the packages (including a local monitoring-helpers package that contains all the local scripts we call).

    If you're not already using chef, puppet, ansible, cfengine, or something like it, that's really what you should be looking at, IMHO.

    Good luck,

    Tim

    Comment

    • justin
      Junior Member
      • Feb 2013
      • 5

      #3
      Okay, that makes sense. I need to look into puppet for another project as well so that might be a good solution.

      Thanks for the reply!

      Comment

      • danrog
        Senior Member
        • Sep 2009
        • 164

        #4
        We create a custom RPM package that has some custom scripts and and all our custom conf files that get stored under $ZABBIX_AGENT_HOME/conf.d. Then we use puppet to update the package automatically. It was far easier to use RPM's to manage this vs. just updating conf files and restarting the agent. We are currently upgrading to puppet enterprise and might change how we do that once the migration is complete, but for now using RPM's was best for us.

        We still use some scripts that rely on ssh/keys to do this because we have some older RHEL3/4 boxes that was painful to get going with the open source version of puppet (mostly oracle boxes so we try not to change things too much on them). I use the Zabbix API to give me a list of our the RHEL3/4 boxes (based on the kernel version) and wrap that in a simple bash 'for loop' that runs a somewhat simple ssh script to do what puppet does, upgrade the RPM (another reason we use RPM's with puppet - allows us to stay somewhat consistent).

        As for windoze, we don't have a very good way (yet) to do those, we block CIFS across firewalls and SCCM is not widely used, they only make up about 10% of our install base. We might start to use puppet enterprise for Windoze but that presents its own challenges.

        Comment

        • heaje
          Senior Member
          Zabbix Certified Specialist
          • Sep 2009
          • 325

          #5
          What I've done (since my company doesn't use Puppet to do remote installs), is to put the configuration files in a Git repository. I then created a custom script that is deployed to all agents when they are installed. Along with that script, there is a custom user parameter put on all agents to call that script at will. We use a custom RPM which installs everything for Zabbix into /usr/local/zabbix.

          From there, a local puppet manifest is applied when the agent is installed. It installs the agent and pulls down the git repository to a local directory. The custom script is then run to get any new updates and it pushes the new configuration files into place and restarts the agent. This is all done with the puppet manifest.

          From then on I can call the custom user parameter I mentioned above using zabbix_get and tell it to synchronize the configuration from Git and restart the agent. It's worked well so far.

          Comment

          Working...