python利用zabbix API添加
- 2020 年 1 月 6 日
- 筆記
首先說一下坑的地方就是python2和python3的模組改變問題,當然精通python的可以略過。這個在網上百度一下吧,第二個是導入xlsx文件的時候需要xlrd模組,而這個模組最好跟著我下面的方法走,那個python2 就可以用我下邊的腳本了。
1.安裝xlrd讀取Excel文件
1.1. 下載setuptools-38.2.4.zip,上傳至zabbix伺服器解壓安裝,下載地址:https://pypi.python.org/packages/69/56/f0f52281b5175e3d9ca8623dadbc3b684e66350ea9e0006736194b265e99/setuptools-38.2.4.zip#md5=e8e05d4f8162c9341e1089c80f742f64
[root@localhost temp]# ll #上傳文件setuptools-38.2.4.zip total 724 -rw-r–r– 1 root root 736683 Dec 17 22:37 setuptools-38.2.4.zip
[root@localhost temp]# unzip setuptools-38.2.4.zip #解壓setuptools-38.2.4.zip
1.2下載pip-9.0.1.tar.gz,上傳至zabbix伺服器解壓安裝,下載地址:https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
[root@localhost temp]# ll total 1896 -rw-r–r– 1 root root 1197370 Dec 17 22:53 pip-9.0.1.tar.gz #上傳文件pip-9.0.1.tar.gz drwxr-xr-x 9 root root 4096 Dec 17 22:55 setuptools-38.2.4 -rw-r–r– 1 root root 736683 Dec 17 22:37 setuptools-38.2.4.zip
[root@localhost temp]# tar -xzvf pip-9.0.1.tar.gz #解壓pip-9.0.1.tar.gz
[root@localhost pip-9.0.1]# python setup.py build #編譯 [root@localhost pip-9.0.1]# python setup.py install #安裝
[root@localhost pip-9.0.1]# pip install xlrd #安裝xlrd
3.編輯Excel模板
3.1主機名、顯示名、IP、主機組、模板
3.2將Execle表zabbix_host_add.xlsx上傳至zabbix伺服器
[root@localhost temp]# ll total 1964 -rw-r–r– 1 root root 46079 Dec 17 23:28 zabbix_host_add.xlsx 4.編寫Python腳本,參考http://www.361way.com/zabbix-api-2/3681.html #!/usr/bin/python #coding:utf-8
import json import urllib2 from urllib2 import URLError import sys,argparse import xlrd
defaultencoding = 'utf-8' if sys.getdefaultencoding() != defaultencoding: reload(sys) sys.setdefaultencoding(defaultencoding)
class zabbix_api: def init(self): self.url = 'http://zabbix伺服器IP地址/zabbix/api_jsonrpc.php' #修改URL self.header = {"Content-Type":"application/json"}
def user_login(self): data = json.dumps({ "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", #web頁面登錄用戶名 "password": "zabbix" #web頁面登錄密碼 }, "id": 0 }) request = urllib2.Request(self.url, data) for key in self.header: request.add_header(key, self.header[key]) try: result = urllib2.urlopen(request) except URLError as e: print "