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 "