diff --git a/plugins/inventory/zabbix.ini b/plugins/inventory/zabbix.ini index 7dd02430f8..618c2b9fe8 100644 --- a/plugins/inventory/zabbix.ini +++ b/plugins/inventory/zabbix.ini @@ -4,8 +4,8 @@ [zabbix] # Server location -server = http://192.168.0.1/zabbix +server = http://zabbix.example.com/zabbix # Login -username = -password = +username = admin +password = zabbix diff --git a/plugins/inventory/zabbix.py b/plugins/inventory/zabbix.py index f3f3652aad..a161c63aea 100755 --- a/plugins/inventory/zabbix.py +++ b/plugins/inventory/zabbix.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # (c) 2013, Greg Buehler # @@ -20,16 +20,26 @@ ###################################################################### """ -Zabbix external inventory script. Returns hosts and hostgroups from Zabbix. +Zabbix Server external inventory script. +======================================== +Returns hosts and hostgroups from Zabbix Server. +Configuration is read from `zabbix.ini`. + +Tested with Zabbix Server 2.0.6. """ import os, sys import json import argparse import ConfigParser -from zabbix_api import ZabbixAPI + +try: + from zabbix_api import ZabbixAPI +except: + print "Error: Zabbix API library must be installed: pip install zabbix-api." + sys.exit(1) try: import json @@ -97,8 +107,12 @@ class ZabbixInventory(object): self.read_cli() if self.zabbix_server and self.zabbix_username: - api = ZabbixAPI(server=self.zabbix_server) - api.login(user=self.zabbix_username, password=self.zabbix_password) + try: + api = ZabbixAPI(server=self.zabbix_server) + api.login(user=self.zabbix_username, password=self.zabbix_password) + except BaseException, e: + print "Error: Could not login to Zabbix server. Check your zabbix.ini." + sys.exit(1) if self.options.host: data = self.get_host(api, self.options.host) @@ -107,7 +121,13 @@ class ZabbixInventory(object): elif self.options.list: data = self.get_list(api) print json.dumps(data, indent=2) - else: - print "Configuration of server and credentials is required" -ZabbixInventory() \ No newline at end of file + else: + print "usage: --list ..OR.. --host " + sys.exit(1) + + else: + print "Error: Configuration of server and credentials are required. See zabbix.ini." + sys.exit(1) + +ZabbixInventory()