Aquest tipus d'element permet interrogar les dades emprant el protocol HTTP/HTTPS. El trap també és possible emprant Zabbix Sender o el protocol Zabbix Sender, o emprant el mètode API history.push
(per enviar informació al servidor Zabbix).
La verificació d'elements HTTP les executa el servidor Zabbix. De tota manera, quan els equips són monitorats per un proxy Zabbix, aquestes verificacions les fa el propi proxy.
Les verificacions d'elements HTTP es poden fer sense que l'equip monitorat executi l'agent Zabbix.
L'agent HTTP admet HTTP i HTTPS. Zabbix seguirà opcionalment les redireccions (veieu l'opció Seguir les redireccions aquí sota). El nombre màxim de redirecions s'ha definit en 10 (emprant l'opció cURL CURLOPT_MAXREDIRS).
El servidor/proxy Zabbix s'ha de configurar inicialment amb el suport de cURL (libcurl).
Les comprovacions HTTP s'executen de manera asíncrona: no cal rebre la resposta a una petició abans que s'iniciïn altres comprovacions. La resolució de DNS també és asíncrona.
La concurrència màxima de comprovacions asíncrones és 1000 (definida per MaxConcurrentChecksPerPoller).
El nombre d'enquestadors d'agent HTTP asíncrons el defineix el paràmetre StartHTTPAgentPollers.
La funció cURL de connexions persistents s'ha afegit a les comprovacions de l'agent HTTP des de Zabbix 7.0.
Per configurar un element HTTP:
Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.
Els camps que requereixen informació específica per als elements HTTP són:
Paràmetre | Descripció |
---|---|
Type | Trieu Agent HTTP aquí. |
Key | Introduïu una clau d'element única. |
URL | URL de connexió i recuperació de dades. Per exemple: https://www.example.com http://www.example.com/download Els noms de domini es poden especificar en caràcters Unicode. Es converteixen automàticament de punycode a ASCII quan s'executa la comprovació HTTP. El botó Analitzar es pot emprar per separar els camps de consulta opcionals (com ara ?name=Admin&password=mypassword) de l'URL, movent els atributs i els valors als camps de consulta per a la codificació automàtica d'URL. Limitat a 2048 caràcters. Macros admeses: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST . NOM}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix el CURLOPT_URL. .se/libcurl/c/CURLOPT_URL.html) de cURL. |
Camps de consulta | Variables per a l'URL (veieu més amunt). Especificat com a parells d'atribut i valor. Els valors es codifiquen automàticament per URL. Els valors de macro es resolen i després es codifica automàticament l'URL. Macros admeses: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM .ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix el CURLOPT_URL de cURL. |
Tipus de petició | Trieu el tipus de mètode de petició: GET, POST, PUT o HEAD |
Temps d'espera | Zabbix no gastarà més del temps establert al processament d'URL (1-60 segons). De fet, aquest paràmetre defineix el temps màxim per establir una connexió a l'URL i el temps màxim per fer una petició HTTP. Per tant, Zabbix no dedicarà més de 2 segons de temps d'espera en una comprovació. S'admeten sufixos de temps, p. 30 s, 1 min. Macros admeses: macros d'usuari, macros de descoberta de baix nivell. Això estableix el CURLOPT_TIMEOUT de cURL . |
Tipus de cos de la petició | Trieu el tipus de cos de la petició: Dades en brut: cos de petició HTTP personalitzat, les macros es substitueixen però no es fa cap codificació Dades JSON: cos de la petició HTTP a Format JSON. Les macros es poden emprar com a cadena, nombre, vertader i fals; Les macros emprades com a cadenes s'han de lliurar entre cometes dobles. Els valors de macro es resolen i després s'escapa automàticament. Si no s'especifica "Tipus de contingut" a les capçaleres, serà per defecte "Tipus de contingut: aplicació/json" Dades XML: cos de la petició HTTP en format XML. Les macros es poden emprar com a node de text, atribut o secció CDATA. Els valors de macro es resolen i després s'escapa automàticament a un node i atribut de text. Si "Content-Type" no s'especifica a les capçaleres, per defecte serà "Content-Type: application/xml" Tingueu en compte que triar XML Data requereix libxml2. |
Cos de la petició | Introduïu el cos de la petició. Macros admeses: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, { ARTICLE. ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. |
Capçaleres | Capçaleres HTTP personalitzades que s'enviaran en executar una petició. Especificada com a parells d'atributs i valors. Macros admeses: {HOST .IP}, {HOST.CONN}, {HOST.DNS} , {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix l'opció CURLOPT _HTTPHEADER de cURL. |
Codis d'estat obligatoris | Llista de codis d'estat HTTP esperats. Si Zabbix obté un codi que no es troba a la llista, l'element ja no serà compatible. Si és buit, no es fa pas cap comprovació. Per exemple: 200,201,210-299 Macros admeses a la llista: macros d'usuari, macros de descoberta de baix nivell. Això empra l'opció CURLINFO _RESPONSE_CODE de cURL. |
Seguir redireccions | Marqueu la casella per seguir les redireccions HTTP. Això estableix l'opció cURL CURLOPT_FOLLOWLOCATION. |
Mode de recuperació | Trieu la part de la resposta que voleu recuperar: Cos - només el cos Capçaleres - només les capçaleres Cos i capçaleres - cos i capçaleres |
Convertir a JSON | Les capçaleres es desen com a parells d'atributs i valors sota la clau "capçalera". Si es troba "Tipus de contingut: aplicació/json", el cos es desa com a objecte, en cas contrari s'emmagatzema com a cadena, per exemple: |
Proxy HTTP | Podeu especificar un proxy HTTP per emprar, emprant el format [protocol://][nom d'usuari[:contrasenya]@]proxy.example.com[:port] .El prefix opcional protocol:// es pot emprar per especificar protocols de proxy alternatius (per exemple, https, socks4, socks5; veieu documentació; el suport del prefix de protocol era afegit a cURL 7.21.7. Sense un protocol especificat, el proxy es tractarà com un proxy HTTP. Si especifiqueu un protocol incorrecte, la connexió fallarà i l'element ja no serà compatible. br>Per defecte, s'emprarà el port 1080.Si s'especifica, el proxy substituirà les variables d'entorn relacionades amb el proxy, com ara http_proxy, HTTPS_PROXY. Si no s'especifica, el proxy no sobreescriurà les variables d'entorn relacionades amb el proxy. El valor introduït es passa "tal com ve", no es fa cap comprovació d'integritat. Tingueu en compte que només s'admet l'autenticació simple amb el proxy HTTP. Macros compatibles: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, { HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY }, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix l'opció cURL CURLOPT _PROXY. |
Autenticació HTTP | Tipus d'autenticació: Cap: no s'empra cap autenticació. Bàsica: s'empra l'autenticació bàsica. NTLM - NTLM (Windows NT S'empra LAN Manager). Kerberos: s'empra l'autenticació Kerberos. Veieu també: Configuració de Kerberos amb Zabbix. Digest: s'empra l'autenticació de Digest. Seleccionar un mètode d'autenticació proporcionarà dos camps addicionals per introduir un nom d'usuari i mot de pas, on s'admeten macros d'usuari i macros de descoberta de baix nivell. Això estableix l'opció cURL CURLOPT_HTTPAUTH. |
Verifiqueu SSL peer | Marqueu la casella per verificar el certificat SSL del servidor web. El certificat del servidor es recuperarà automàticament des de la ubicació de l'Autoritat de certificació (CA) de tot el sistema. Podeu substituir la ubicació dels fitxers CA mitjançant el paràmetre de configuració del servidor Zabbix o del proxy SSLCALocation. Això estableix l'opció cURL CURLOPT_SSL_VERIFYPEER. |
Verifica l'equip SSL | Marca la casella per verificar que el camp Nom comú o Nom alternatiu de l'assumpte del certificat del servidor web coincideix. Això estableix el CURLOPT_SSL_VERIFYHOST de cURL. |
Fitxer de certificat SSL | Nom del fitxer de certificat SSL emprat per a l'autenticació del client. El fitxer del certificat ha d'ésser en format PEM1. Si el fitxer del certificat també conté la clau privada, deixeu el camp Fitxer de clau SSL en blanc. Si la clau és xifrada, especifiqueu el mot de pas al camp Mot de pas de la clau SSL. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del proxy SSLCertLocation. Macros admeses: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST }, {HOST.NAME } , {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix l'opció cURL CURLOPT _SSLCERT. |
Fitxer de clau SSL | Nom del fitxer de clau privada SSL emprat per a l'autenticació del client. El fitxer de clau privada ha d'ésser en format PEM1. El directori que conté aquest fitxer l'especifica el servidor Zabbix o el paràmetre de configuració del proxy SSLKeyLocation. Macros admeses: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, macros d'usuari, macros de descoberta de baix nivell. Això estableix l'opció cURL CURLOPT _SSLKEY. |
Mot de pas de clau SSL | Mot de pas del fitxer de clau privada SSL. Macros admeses: macros d'usuari, macros de descoberta de baix nivell. Això estableix l'opció cURL CURLOPT _KEYPASSWD. |
Activa trampes | Amb aquesta casella marcada, l'element també funcionarà com a element trapper i acceptarà les dades enviades al servidor o proxy Zabbix emprant la utilitat Zabbix sender o el protocol, o acceptarà les dades enviades al servidor Zabbix emprant el mètode API history.push . Per tindre més informació sobre l'enviament d'informació, veieu: Elements trapper. |
Equips permesos | Visible només si la casella Activa trampes és marcada. Llista d'adreces IP delimitades per comes, opcionalment en notació CIDR, o noms d'equips. Si s'especifica, les connexions només s'acceptaran de trucades entrants dels equips que s'indiquen aquí. Si el suport d'IPv6 és habilitat, "127.0.0.1", "::127.0.0.1", "::ffff:127.0.0.1" es tracten de la mateixa manera i "::/0" permetrà qualsevol adreça IPv4 o IPv6. '0.0.0.0/0' es pot emprar per permetre qualsevol adreça IPv4. Tingueu en compte que les adreces IPv6 compatibles amb IPv4 (prefix 0000::/96) són compatibles, però és obsolet per RFC4291. Exemple: Server=127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, zabbix.domain Els espais i les macros d'usuari són permeses en aquest camp. Les macros d'equip: {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} són permeses en aquest camp. |
Si el camp Proxy HTTP es deixa en blanc, una altra manera d'emprar un proxy HTTP és establir variables d'entorn relacionades amb el proxy.
Per a HTTP: establiu la variable d'entorn "http_proxy" per a l'usuari del servidor Zabbix. Per exemple:
http_proxy=http://proxy_ip:proxy_port
.
Per a HTTPS: establiu la variable d'entorn HTTPS_PROXY
. Per exemple:
HTTPS_PROXY=http://proxy_ip:proxy_port
. Hi ha més detalls disponibles executant l'ordre de shell: # man curl.
[1]Zabbix només admet fitxers de certificat i clau privada en format PEM. Si teniu el vostre certificat i les vostres dades de clau privada en un fitxer en format PKCS #12 (normalment amb l'extensió *.p12 o *.pfx), podeu generar-ne el fitxer PEM amb les ordres següents:
Envieu peticions GET simples per extreure les dades de serveis com ara Elasticsearch:
localhost:9200/?pretty
{
"name" : "YQ2VAY-",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "kH4CYqh5QfqgeTsjh2F9zg",
"version" : {
"number" : "6.1.3",
"build_hash" : "af51318",
"build_date" : "2018-01-26T18:22:55.523Z",
"build_snapshot" : false,
"lucene_version" : "7.1.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You know, for search"
}
$.version.number
Enviar les peticions POST simples per extreure les dades de serveis com ara Elasticsearch:
http://localhost:9200/str/values/_search?scroll=10s
{
"query": {
"bool": {
"must": [{
"match": {
"itemid": 28275
}
}],
"filter": [{
"range": {
"clock": {
"gt": 1517565836,
"lte": 1517566137
}
}
}]
}
}
}
{
"_scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAAkFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAJRZZUTJWQVktVFNacU5nRHhlcEI0QUxRAAAAAAAAACYWWVEyVkFZLVRTWnFOZ0R4ZXBCNEFMUQAAAAAAAAAnFllRMlZBWS1UU1pxTmdEeGVwQjRBTFEAAAAAAAAAKBZZUTJWQVktVFNacU5nRHhlcEI0QUxR",
"took": 18,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1.0,
"hits": [{
"_index": "dbl",
"_type": "values",
"_id": "dqX9VWEBV6sEKSMyk6sw",
"_score": 1.0,
"_source": {
"itemid": 28275,
"value": "0.138750",
"clock": 1517566136,
"ns": 25388713,
"ttl": 604800
}
}]
}
}
$.hits.hits[0]._source.value
Verificar si l'API Zabbix és viva, emprant apiinfo.version.
Veieu que l'ús del mètode POST amb les dades JSON, la definició de les capçaleres de petició i l'enviament només de les capçaleres:
Recuperació dels informes meteorològics connectant al servei públic Openweathermap.
Veieu que emprem macros als camps de petició. Veieu l'API Openweathermap per sapiguer com omplir-les.
Exemple de codi JSON retornat en resposta a l'agent HTTP:
{
"body": {
"coord": {
"lon": 40.01,
"lat": 56.11
},
"weather": [{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02n"
}],
"base": "stations",
"main": {
"temp": 15.14,
"pressure": 1012.6,
"humidity": 66,
"temp_min": 15.14,
"temp_max": 15.14,
"sea_level": 1030.91,
"grnd_level": 1012.6
},
"wind": {
"speed": 1.86,
"deg": 246.001
},
"clouds": {
"all": 20
},
"dt": 1526509427,
"sys": {
"message": 0.0035,
"country": "RU",
"sunrise": 1526432608,
"sunset": 1526491828
},
"id": 487837,
"name": "Stavrovo",
"cod": 200
}
}
La següent tasca consisteix en configurar els elements dependents que extreuen les dades del JSON.
Altres mètriques meteorológiques com ara la 'Temperatura' s'afegeixen de la mateixa manera.
Connexió a la pàgina d'estat d'Nginx i obtindre les seves mètriques de forma massiva.
Exemple de sortida d'estat de l'stub Nginx:
Active connections: 1 Active connections:
server accepts handled requests
52 52 52
Reading: 0 Writing: 1 Waiting: 0
La següent tasca consisteix en configurar els elements dependents que extreuen les dades.
el servidor accepta les peticions tractades\s+([0-9]+) ([0-9]+) ([0-9]+)
: