api
-#################################-
---如任何问题请联系作者QQ:1284524409---
-#################################-
执行如下命令进行git安装
yum -y install git
执行如下命令克隆docker安装中文版zabbix项目
ZBX_SOURCES=https://NoYoWiFi:agp_66c5fe553765c414b8de0886f668b5f7@codeup.aliyun.com/636defa3f003e3b7bb5cae22/zabbix/zabbix_api.git
ZBX_VERSION=6.0-latest
ZBX_NAME=zabbix_api-${ZBX_VERSION}
ZBX_DIR=/opt
cd ${ZBX_DIR}
git -c advice.detachedHead=false clone ${ZBX_SOURCES} --branch ${ZBX_VERSION} --depth 1 --single-branch ${ZBX_DIR}/${ZBX_NAME}
chmod 755 -R ${ZBX_DIR}/${ZBX_NAME}
cd ${ZBX_DIR}/${ZBX_NAME}
mkdir py3
执行如下命令安装python3
yum -y install python3
执行如下命令创建python3虚拟环境
python3 -m venv ${ZBX_DIR}/${ZBX_NAME}/py3
source ${ZBX_DIR}/${ZBX_NAME}/py3/bin/activate
执行如下命令配置pip加速
mkdir ~/.pip
touch ~/.pip/pip.conf
cat > ~/.pip/pip.conf << EOF
[global]
cache-dir = ~/.pip/
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = https://mirrors.aliyun.com
disable-pip-version-check = true
timeout = 6000
EOF
pip3 config list
执行如下命令安装所需依赖包
pip install -U pip setuptools wheel
pip install -r requirements.txt
修改成正确的zabbix api地址与用户名密码,文件为zabbix_api.py
class ZabbixApi:
def __init__(self):
self.authID = None
self.url = 'http://172.169.10.2/zabbix/api_jsonrpc.php' # 修改URL
self.header = {"Content-Type": "application/json"}
self.session = requests.Session()
self.session.mount(self.url, requests.adapters.HTTPAdapter(max_retries=3))
self.def_login()
self.gv_apiVersion = None
def def_login(self):
lv_data = json.dumps({
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin", # web页面登录用户名
"password": "zabbix" # web页面登录密码
},
目前支持的参数有:
# ![01_创建主机组]
parser.add_argument('-cg', nargs='?', metavar='无参数', dest='cg', default='cg',
help=u"创建主机组")
parser.add_argument('-dg', nargs='?', metavar='无参数', dest='dg', default='dg',
help=u"删除主机组")
# ![02_创建模板]
parser.add_argument('-ct', nargs='?', metavar='无参数', dest='ct', default='ct',
help=u"创建模板")
parser.add_argument('-dt', nargs='?', metavar='无参数', dest='dt', default='dt',
help=u"删除模板")
parser.add_argument('-matg', nargs='?', metavar='无参数', dest='matg', default='matg',
help=u"模板添加主机组")
parser.add_argument('-mdtg', nargs='?', metavar='无参数', dest='mdtg', default='mdtg',
help=u"模板删除主机组")
# ![03_模板添加用户宏]
parser.add_argument('-matm', nargs='?', metavar='无参数', dest='matm', default='matm',
help=u"模板添加用户宏")
parser.add_argument('-mdtm', nargs='?', metavar='无参数', dest='mdtm', default='mdtm',
help=u"模板删除用户宏")
# ![04_模板关联模板]
parser.add_argument('-matt', nargs='?', metavar='无参数', dest='matt', default='matt',
help=u"模板关联模板")
parser.add_argument('-mdttc', nargs='?', metavar='无参数', dest='mdttc', default='mdttc',
help=u"模板脱离模板清理监控项")
parser.add_argument('-mdttl', nargs='?', metavar='无参数', dest='mdttl', default='mdttl',
help=u"模板脱离模板保留监控项")
# ![05_模板更新标签]
parser.add_argument('-uttags', nargs='?', metavar='无参数', dest='uttags', default='uttags',
help=u"模板更新替换所有标签")
parser.add_argument('-dttags', nargs='?', metavar='无参数', dest='dttags', default='dttags',
help=u"模板删除标签")
# ![06_模板创建监控项]
parser.add_argument('-cti', nargs='?', metavar='无参数', dest='cti', default='cti',
help=u"模板创建监控项")
parser.add_argument('-dti', nargs='?', metavar='无参数', dest='dti', default='dti',
help=u"模板删除监控项")
# ![07_模板更新监控项标签]
parser.add_argument('-utitags', nargs='?', metavar='无参数', dest='utitags', default='utitags',
help=u"模板更新监控项标签")
parser.add_argument('-dtitags', nargs='?', metavar='无参数', dest='dtitags', default='dtitags',
help=u"模板删除监控项标签")
# ![08_模板创建触发器]
parser.add_argument('-ctg', nargs='?', metavar='无参数', dest='ctg', default='ctg',
help=u"模板创建触发器")
parser.add_argument('-dtg', nargs='?', metavar='无参数', dest='dtg', default='dtg',
help=u"模板删除触发器")
# ![09_模板更新标签]
parser.add_argument('-utttags', nargs='?', metavar='无参数', dest='utttags', default='utttags',
help=u"模板更新触发器标签")
parser.add_argument('-dtttags', nargs='?', metavar='无参数', dest='dtttags', default='dtttags',
help=u"模板删除触发器标签")
# ![10_创建主机]
parser.add_argument('-ch', nargs='?', metavar='无参数', dest='ch', default='ch',
help=u"创建主机")
parser.add_argument('-dh', nargs='?', metavar='无参数', dest='dh', default='dh',
help=u"删除主机")
# ![11_主机创建接口]
parser.add_argument('-mahi', nargs='?', metavar='无参数', dest='mahi', default='mahi',
help=u"主机创建接口")
parser.add_argument('-mdhi', nargs='?', metavar='无参数', dest='mdhi', default='mdhi',
help=u"主机删除接口")
# ![12_主机关联模板]
parser.add_argument('-maht', nargs='?', metavar='无参数', dest='maht', default='maht',
help=u"主机关联模板")
parser.add_argument('-mdht', nargs='?', metavar='无参数', dest='mdht', default='mdht',
help=u"主机脱离模板保留监控项")
parser.add_argument('-mdhtc', nargs='?', metavar='无参数', dest='mdhtc', default='mdhtc',
help=u"主机脱离模板清理监控项")
# ![13_主机关联主机组]
parser.add_argument('-mahg', nargs='?', metavar='无参数', dest='mahg', default='mahg',
help=u"主机关联主机组")
parser.add_argument('-mdhg', nargs='?', metavar='无参数', dest='mdhg', default='mdhg',
help=u"主机脱离主机组")
示例
PS D:\00_development\pycharm\zabbix_api> .\venv\Scripts\python.exe .\zabbix_api_base.py -cg
创建主机组: hostgroup1 失败! 原因: Host group "hostgroup1" already exists.
创建主机组: hostgroup2 失败! 原因: Host group "hostgroup2" already exists.
创建主机组: hostgroup3 失败! 原因: Host group "hostgroup3" already exists.
创建主机组: hostgroup4 失败! 原因: Host group "hostgroup4" already exists.
创建主机组: hostgroup5 失败! 原因: Host group "hostgroup5" already exists.
创建主机组: hostgroup6 失败! 原因: Host group "hostgroup6" already exists.
创建主机组: hostgroup7 失败! 原因: Host group "hostgroup7" already exists.
创建主机组: hostgroup8 失败! 原因: Host group "hostgroup8" already exists.
创建主机组: hostgroup9 失败! 原因: Host group "hostgroup9" already exists.
创建主机组: hostgroup10 失败! 原因: Host group "hostgroup10" already exists.
全文完结