1. Implemente la plataforma LNMP
yum -y instalar gcc gcc-c ++ hacer automake php php-mysql openssl-devel pcre-devel
cd nginx-1.12.2
useradd -s / sbin / nologin nginx
./configure --prefix = / usr / local / nginx --with-http_ssl_module
make && make install
rpm -ivh php-fpm-5.4.16-42.el7.x86_64.rpm
systemctl reiniciar php-fpm
systemctl habilitar php-fpm
cd / usr / local / nginx / conf /
vim nginx.conf
ln -s / usr / local / nginx / sbin / nginx / sbin / nginx
vim /usr/local/nginx/html/test.php
Instale mysql, cree la biblioteca zabbix, autorización, etc.
Segundo, despliega zabbix
tar -xf zabbix-3.4.4.tar.gz
cd zabbix-3.4.4 /
./configure --enable-server --enable-proxy --enable-agent --with-mysql = / usr / bin / mysql_conf --with-net-snmp --with-libcurl
make && hacer instalar
Vaya al directorio de la base de datos para importar la tabla de la base de datos y vaya al directorio front-end para copiar el contenido de la página web a nginx. Establecer permisos.
Modificar el archivo de configuración del servidor zabbix y el archivo de configuración del agente
useradd -s / sbin / nologin zabbix
Visita nginx
http://192.168.122.10/index.php
Configuración completa de zabbix
La cuenta es admin y la contraseña es zabbix
Tres, escribe el script de Python
1. Visite el sitio web oficial de zabbix, encuentre información relacionada con la API, obtenga el número de versión de zabbix
El código es el siguiente:
solicitudes de
importación json de importación
url = 'http://192.168.122.10/api_jsonrpc.php'
headers = {'Content-Type': 'application / json-rpc'}
data = {
"jsonrpc": "2.0",
"method": "apiinfo. version ",
" params ": [],
" id ": 1
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
resultado = r.json ()
print ('La versión de Zabbix es% s'% result ['result'])
2. Visite el sitio web oficial de zabbix, encuentre información relacionada con la API, obtenga el token zabbix
El código es el siguiente:
solicitudes de
importación json de importación
url = 'http://192.168.122.10/api_jsonrpc.php'
headers = {'Content-Type': 'application / json-rpc'}
data = {
"jsonrpc": "2.0",
"method": "user. login ",
" params ": {
" usuario ":" Admin ",
" contraseña ":" zabbix "
},
" id ": 1
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
resultado = r.json ()
print ('El token de Zabbix es% s'% resultado ['resultado'])
1. Visite el sitio web oficial de zabbix, encuentre información relacionada con la API y cree un host
El código es el siguiente:
#! / usr / bin / env python3
solicitudes de
importación import json
def get_token (url, encabezados):
data = {
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
} ,
"id": 1
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
devuelve r.json () ['resultado']
def get_hosts (token, url, encabezados):
data = {
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"filter": {
}
},
"auth": token,
"id": 5
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
n = r.json () ['resultado']
para el elemento en n:
print (elemento ['hostid'], elemento ['anfitrión'])
def get_groups (token, url, encabezados):
data = {
"jsonrpc": "2.0",
"method": "hostgroup.get",
"params": {
"output": "extend",
"filter": {
}
},
"auth": token,
"id": 2
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
b = r.json () ['resultado']
para el elemento en b:
print (elemento ['groupid'], elemento ['nombre'])
def get_tamp (token, url, encabezados):
data = {
"jsonrpc": "2.0",
"method": "template.get",
"params": {
"output": "extend",
"filter": {
}
},
"auth": token,
"id": 1
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
c = r.json () ['resultado']
para el elemento en c:
print (elemento ['templateid'], elemento ['anfitrión'])
def create_host (token, url, headers):
hostname = input ('Ingrese el nombre de host de monitoreo que desea crear:')
ip = input ('Ingrese la IP del host de monitoreo que desea crear:')
gid = input (' Ingrese el GID del host de monitoreo que desea crear: ')
tempid = input (' Ingrese el TEMPID del host de monitoreo que desea crear: ')
data = {
"jsonrpc": "2.0",
"method": "host.create ",
" params ": {
" host ": nombre de host,
" interfaces ": [
{
" type ": 1,
" main ": 1,
" useip ": 1,
" ip ": ip,
" dns ":" ",
"puerto ":" 10050 "
}
],
" grupos ": [
{
"groupid": gid
}
],
"templates": [
{
"templateid": tempid
}
],
"Inventory_mode": 0,
"Inventory": {
}
},
"auth": token,
"id": 4
}
r = request.post (url = url, encabezados = encabezados, datos = json.dumps (datos))
def show_memu (token, url, encabezados):
cmds = {'1': get_groups, '2': get_tamp, '3': create_host, '0': get_hosts}
prompt = '' '(0) enumera los hosts existentes ID y nombre de host
(1) Listar la ID de grupo y el grupo de host
(2) Listar la ID de plantilla y la plantilla
(3) Crear el host de monitoreo
(4) Salir
Seleccione la función que necesita de 1234, la creación del host de monitoreo requiere completar la ID del grupo , ID de plantilla, dirección IP y otra información: '' '
while True:
opción = input (prompt)
if choice ==' 4 ':
break
if choice no en' 0123 ':
print (' ¡inválido!, Seleccione la función correcta ' )
cmds [opción] (token, url, encabezados)
if __name__ == '__main__':
url = 'http://172.17.2.187/api_jsonrpc.php'
headers = {'Content-Type': 'application / json-rpc'}
token = get_token (url, headers)
show_memu ( token, url, encabezados)