Овај тип ставке омогућава испитивање података коришћењем HTTP/HTTPSС протокола. Пресретање је такође могуће коришћењем услужног програма Zabbix пошиљаоца или Zabbix пошиљаоца протокол (за слање података на Zabbix сервер или прокси) или коришћење history.push
API метода (за слање података на Zabbix сервер).
HTTP провере ставки се извршавају од стране Zabbix сервера. Међутим, када се хостови надгледају од стране Zabbix проксија, HTTP провере ставки се извршавају помоћу проксија.
HTTP провере ставки не захтевају да било који агент ради на домаћину који се надгледа. HTTP агент подржава и HTTP и HTTPS. Zabbix ће опционо пратити преусмеравања (погледајте опцију Прати преусмерења испод). Максималан број преусмеравања је чврсто кодиран на 10 (користећи cURL опцију CURLOPT_MAXREDIRS).
Zabbix сервер/прокси мора бити иницијално конфигурисан са подршком за cURL (libcurl).
HTTP провере се извршавају асинхроно - није потребно примите одговор на један захтев пре него што започну друге провере. DNS решавање је такође асинхроно.
Максимална истовременост асинхроних провера је 1000 (дефинисана од стране MaxConcurrentChecksPerPoller).
Број асинхроних провера поллера је дефинисан од стране HTTP агента StartHTTPAgentPollers параметар.
Функција cURL трајних веза је додата у провере HTTP агента од Zabbix-а 7.0.
Да бисте конфигурисали HTTP ставку:
Сва обавезна поља за унос су означена са црвена звездица.
Поља која захтевају специфичне информације за HTTP ставке су:
Parameter | Description |
---|---|
* Type* | Изаберите HTTP агент овде. |
* Key* | Унесите јединствени кључ ставке. |
* URL* | URL за повезивање и преузимање података. На пример: https://www.example.com http://www.example.com/download Имена домена се могу навести у Unicode знаковима. Они се аутоматски конвертују у ASCII код извршавања HTTP провере. Дугме * Parse* може да се користи за одвајање опционих поља упита (као што је ?name=Admin&password=mypassword) од URL адресе, премештајући атрибуте и вредности у * Поља упита* за аутоматско кодирање URL-а. Ограничено на 2048 знакова. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, кориснички макрои, макрои за откривање ниског нивоа. Ово поставља CURLOPT_URL cURL опција. |
Query fields | Променљиве за URL (погледајте изнад). Наведено као атрибут и парови вредности. Вредности се аутоматски кодирају у URL-у. Вредности из макроа се решавају и затим аутоматски кодирају URL-ом. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, кориснички макрои, макрои за откривање ниског нивоа. Ово поставља CURLOPT_URL cURL опција. |
Request type | Изаберите тип метода захтева: GET, POST, PUT or HEAD |
Request body type | Изаберите тип тела захтева: Необрађени подаци - прилагођено тело HTTP захтева, макрои су замењени, али не врши се кодирање ** JSON подаци** - тело HTTP захтева у JSON формату. Макрои се могу користити као стринг, број, тачно и нетачно; Макрои који се користе као стрингови морају бити стављени у двоструке наводнике. Вредности из макроа се решавају и затим аутоматски избегавају. Ако "Content-Type" није наведен у заглављима, подразумевано ће бити "Content-Type: application/xml" ** XML подаци** – тело HTTP захтева у XML формату. Макрои се могу користити као текстуални чвор, атрибут или CDATA одељак. Вредности из макроа се решавају и затим аутоматски излазе у текстуални чвор и атрибут. Ако "Content-Type" није наведен у заглављима, подразумевано ће бити "Content-Type: application/xml" Напомена да је за избор * XML података* потребан libxml2. |
Request body | Унесите захтев тело. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, , кориснички макрои, макрои за откривање ниског нивоа. |
* Headers* | Прилагођена HTTP заглавља која ће бити послата приликом обављања захтев. Наведен као пар атрибута и вредности. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, кориснички макрои, макрои за откривање ниског нивоа. Ово поставља CURLOPT_HTTPHEADER cURL опција. |
Required status codes | Листа очекиваних HTTP статусних кодова. Ако Zabbix добије код који није на листи, ставка ће постати неподржана. Ако је празно, провера се не врши. На пример: 200,201,210-299 Подржани макрои на листи: кориснички макрои, макрои за откривање ниског нивоа. Ово користи CURLINFO_RESPONSE_CODE cURL опција. |
Follow redirects | Означите поље за потврду да бисте пратили HTTP преусмеравања. Ово поставља опцију cURL CURLOPT_FOLLOWLOCATION. |
Retrieve mode | Изаберите део одговора који мора да се преузме: ** Body** - тело само ** Headers** - само заглавља Body and headers - тело и заглавља |
Convert to JSON | Заглавља се чувају као парови атрибута и вредности под кључем „заглавље“.< br>Ако се наиђе на 'Content-Type: application/json', тело се чува као објекат, у супротном се чува као стринг, за пример:![]() |
HTTP proxy | Можете да наведете HTTP прокси за коришћење, користећи формат [protocol://][username[:password]@]proxy.example.com[:port] .Опционално Префикс protocol:// се може користити за одређивање алтернативних прокси протокола (нпр. https, socks4, socks5; погледајте документацију; префикс протокола подршка је додата у cURL 7.21.7). Без наведеног протокола, прокси ће се третирати као HTTP прокси. Ако наведете погрешан протокол, веза неће успети и ставка ће постати неподржана.Подразумевано ће се користити 1080 порт. Ако је наведен, прокси ће преписати променљиве окружења које се односе на прокси као што су http_proxy, HTTPS_PROXY. Ако није наведено, прокси неће преписати променљиве окружења које се односе на прокси. Унета вредност се прослеђује "као што јесте", нема провере исправности. Напомена да је само једноставна аутентификација подржана са HTTP проксијем. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, корисник макрои, макрои за откривање ниског нивоа. Ово поставља опцију cURL CURLOPT_PROXY. |
HTTP authentication | Изаберите опција аутентификације: Ништа - није коришћена аутентификација; Основна - основна аутентификација је користи се; ** NTLM** - NTLM (Windows NT LAN Manager) се користи аутентификација; ** Kerberos** - Kerberos потврда идентитета се користи (погледајте такође: Конфигурисање Kerberos помоћу Zabbix-а); ** Digest** - Сажетак користи се аутентификација. Ово поставља опцију cURL CURLOPT_HTTPAUTH. |
* Username* | Унесите корисничко име (до 255 знакова). Ово поље је доступно ако је * HTTP аутентикација* постављена на Basic, NTLM, Kerberos или Digest. Подржани су кориснички макрои и макрои за откривање ниског нивоа. |
* Password* | Унесите корисничку лозинку (до 255 знакова). Ово поље је доступно ако је * HTTP аутентификација* постављена на Basic, NTLM, Kerberos или Digest. Подржани су кориснички макрои и макрои за откривање ниског нивоа. |
SSL verify peer | Означите поље за потврду да бисте верификовали SSL сертификат веб сервера. Сертификат сервера ће аутоматски бити преузет са локације система сертификата (CA). Можете заменити локацију CA датотека користећи Zabbix сервер или прокси конфигурациони параметар SSLCALocation.<бр>Ово поставља CURLOPT_SSL_VERIFYPEER cURL опција. |
SSL verify host | Означите поље за потврду да бисте потврдили да је поље Common Name или се подудара поље Subject Alternate Namе сертификата веб сервера. Ово поставља опцију cURL CURLOPT_SSL_VERIFYHOST. |
SSL certificate file | Назив датотеке SSL сертификата која се користи за аутентификацију клијента. Датотека сертификата мора бити у PEM 1 формату. Ако датотека сертификата садржи и приватни кључ, оставите поље датотеке SSL кључа празно. Ако је кључ шифрован, наведите лозинку у пољу за лозинку за SSL кључ. Директоријум који садржи ову датотеку је одређен параметром конфигурације Zabbix сервера или проксија SSLCertLocation. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, кориснички макрои, откривање ниског нивоа макрои. Ово поставља опцију cURL CURLOPT_SSLCERT. |
SSL key file | Назив датотеке SSL приватног кључа која се користи за аутентификацију клијента. Датотека приватног кључа мора бити у PEM 1 формату. Директоријум који садржи ову датотеку је одређен конфигурационим параметром Zabbix сервера или проксија SSLKeyLocation. Подржани макрои: {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}, {ITEM.KEY.ORIG}, кориснички макрои, откривање ниског нивоа макрои.<бр>Ово поставља опцију cURL [CURLOPT_SSLKEY](http://curl.haxx.se/libcurl/c/CURLOPT_SSLKEY.html. |
SSL key password | Лозинку за датотеку приватног кључа SSL. Подржани макрои: кориснички макрои, макрои за откривање ниског нивоа. Ово поставља CURLOPT_KEYPASSWD cURLопција. |
* Timeout* | Zabbix неће потрошити више од подешеног времена на обраду URL-а (1 -600 секунди). У ствари, овај параметар дефинише максимално време за успостављање везе са URL-ом и максимално време за извођење HTTP захтева. Због тога Zabbix неће потрошити више од 2 к Timeout секунде на једну проверу. Ово поставља опцију cURL CURLOPT_TIMEOUT . За више информација о параметру Timeout погледајте општа ставка атрибути. |
Enable trapping | Са овим пољем за потврду означено, ставка ће такође функционисати као ставка трапера и прихватаће податке послате Zabbix серверу или проксију користећи Zabbix пошиљалац услужни програм или Zabbix пошиљалац протокол, или ће прихватити податке послате Zabbix серверу помоћу API методе history.push . За више информација о слању података погледајте: [Ставке за пресретање](/manual/config/items/itemtypes/trapper#sending-data. |
Allowed hosts | Видљиво само ако је означено поље за потврду Омогући привлачење.<br >Листа IP адреса раздвојених зарезима, опционо у CIDR нотацији или DNS именима. Ако је наведено, долазне везе ће бити прихваћене само са домаћинима наведени овде. Ако је подршка за IPv6 омогућена, онда се '127.0.0.1', '::127.0.0.1', '::фффф:127.0.0.1' третирају једнако и '::/0' ће дозволити било који IPv4 или IPv6 адреса. '0.0.0.0/0' може да се користи да се дозволи било који IPv4 адреса. Имајте на уму да су "IPv4-compatible IPv6 addresses" (префикс 0000::/96) подржане, али застареле од стране RFC4291. Пример: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:дб8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST} кориснички макрои су дозвољени у овом пољу. Макрои домаћина: {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN} су дозвољени у овом пољу. |
Ако је поље HTTP proxy остављено празно, други начин за коришћење HTTP проксија је да се подеси везано за прокси променљиве окружења.
За HTTP - поставите променљиву окружења http_proxy
за корисника Zabbix сервера. На пример:
http_proxy=http://proxy_ip:proxy_port
.
За HTTPS - поставите променљиву окружења HTTPS_PROXY
. На пример:`HTTPS_PROXY=http://proxy_ip:proxy_port`. Више детаља је доступно покретањем команде љуске: # man curl.
[1] Zabbix подржава датотеке сертификата и приватних кључева само у PEM формату. У случају да имате свој сертификат и податке приватног кључа у датотеци формата PKCS #12 (обично са екстензијом *.p12 или*. pfx), можете да генеришете PEM датотеку из ње користећи следеће команде:
openssl pkcs12 -in ssl-cert.p12 -clcerts -nokeys -out ssl-cert.pem openssl pkcs12 -in ssl-cert.p12 -nocerts -nodes-out ssl-cert.key
Шаљите једноставне GET захтеве за преузимање података из услуга као што је 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
Шаљите једноставне POST захтеве за преузимање података са сервиса као што је 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
Провера да ли је Zabbix API жив, користећи apiinfo.version.
Обратите пажњу на употребу POST методе са JSON-ом подаци, постављање заглавља захтева и тражење да се врате само заглавља:
Преузимање информација о времену повезивањем на јавни сервис OpenWeatherMap.
-Конфигуришите главну ставку за масовно прикупљање података у једном JSON-у:
Обратите пажњу на употребу макроа у пољима упита. Погледајте OpenweathermapAPI да бисте сазнали како да их попуните.
Пример JSON-а враћен као одговор на 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
}
}
Следећи задатак је да конфигуришете зависне ставке које издвајају податке из JSON-а.
Друге временске метрике као што је 'Температура' се додају на исти начин.
-Проверите резултат временских података у Најновији подаци :
Повезивање на страницу статуса Нгинк-а и групно добијање његових метрика.
-Конфигуришите главну ставку за масовне податке збирка:
Пример излаза статуса Nginx стубића:
Активне везе: 1 Активне везе: сервер прихвата руковане захтеве 52 52 52 Читање: 0 Писање: 1 Чекање: 0
Следећи задатак је да конфигуришете зависне ставке које издвајају податке.
server accepts handled requests\s+([0-9]+) ([0-9]+) ([0-9]+)
:-Проверите комплетан резултат из стуб модула у Најновијем подаци: