Zabbix - fadada macro iyakoki

Lokacin yin bayani ga abokin ciniki, ayyuka 2 sun taso wanda nake so in warware da kyau kuma tare da aikin Zabbix na yau da kullun.

Aiki 1. Bibiyar sigar firmware na yanzu akan masu amfani da Mikrotik.

Ana warware aikin cikin sauƙi - ta ƙara wakili zuwa samfurin HTTP. Wakilin yana karɓar sigar yanzu daga gidan yanar gizon Mikrotik, kuma mai faɗakarwa yana kwatanta sigar yanzu tare da na yanzu kuma yana ba da faɗakarwa idan akwai sabani.

Lokacin da kake da masu amfani da 10, irin wannan algorithm ba shi da mahimmanci, amma menene za a yi tare da masu amfani da 3000? Aika buƙatun 3000 zuwa uwar garken? Tabbas, irin wannan makircin zai yi aiki, amma ainihin ra'ayin buƙatun 3000 bai dace da ni ba, Ina so in sami wata mafita. Bugu da ƙari, har yanzu akwai raguwa a cikin irin wannan algorithm: ɗayan ɓangaren na iya ƙidaya irin adadin buƙatun daga IP ɗaya don harin DoS, kawai za su iya hana shi.

Aiki 2. Amfani da zaman izini a cikin wakilan HTTP daban-daban.

Lokacin da wakili yana buƙatar karɓar bayani daga shafukan "rufe" ta hanyar HTTP, ana buƙatar kuki izini. Don yin wannan, yawanci akwai daidaitaccen tsari na izini tare da nau'in "shiga / kalmar sirri" da saita ID na zaman a cikin kuki.

Amma akwai matsala, ba shi yiwuwa a sami damar bayanan wani abu daga wani abu na wakili na HTTP don musanya wannan ƙimar a cikin Header.

Hakanan akwai "Rubutun Yanar Gizo", yana da wani iyakancewa, baya ba ku damar samun abun ciki don bincike da ƙarin adanawa. Kuna iya kawai bincika kasancewar ma'auni masu mahimmanci akan shafukan ko wuce masu canjin da aka karɓa a baya tsakanin matakan rubutun yanar gizo.

Bayan yin tunani kadan game da waɗannan ayyuka, na yanke shawarar yin amfani da macros waɗanda suke da kyau a bayyane a kowane bangare na tsarin kulawa: a cikin samfuri, runduna, masu jawo ko abubuwa. Kuma zaku iya sabunta macros ta hanyar API ɗin yanar gizo.

Zabbix yana da kyawawan takaddun API dalla-dalla. Don musayar bayanai ta hanyar api, ana amfani da tsarin bayanan Json. Ana iya samun cikakkun bayanai a ciki takardun shaida.

Jerin ayyuka don samun bayanan da muke buƙata da yin rikodin su a cikin macro ana nuna su a cikin zanen da ke ƙasa.

Zabbix - fadada macro iyakoki

Mataki 1

Matakin farko na iya ƙunshi aiki ɗaya ko ayyuka da yawa. Duk mahimman dabaru an shimfida su a cikin matakan farko, kuma matakan 3 na ƙarshe sune manyan.

A cikin misali na, mataki na farko shine samun kukis masu izini akan PBX don aikin farko. Don aiki na biyu, na sami lambar sigar firmware na Mikrotik na yanzu.

URL na nau'ikan firmware na Mikrotik na yanzu

Ana samun damar waɗannan adireshi ta kayan aikin Mikrotik kanta lokacin da aka karɓi sabon sigar firmware.

Mataki na farko shine gaba ɗaya mutum ɗaya ga kowane lamari kuma dabaru na aikinsa na iya bambanta. Duk ya dogara da aikin ku.

Lokacin aiki tare da rubutun yanar gizo, ci gaba da bin hanyar amsawa da kuke buƙata. Lakabi Amsar HTTP ko kai jiki amsa ba tare da kai ba?
Idan ana buƙatar kukis izini, sannan saita hanyar amsawa Lakabi kamar yadda yake a cikin Alaji.

Idan kuna buƙatar bayanai, kamar yadda yake a cikin yanayin amsawar uwar garken mikrotik, saka Jiki amsa ba tare da buga kai ba.

Mataki 2

Mu ci gaba zuwa mataki na biyu. Samun zaman izini:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin"
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}

jsonrpc shine sigar tsarin JSON-RPC da ake amfani da shi;
Zabbix yana aiwatar da sigar JSON-RPC 2.0;

  • hanya - hanyar da ake kira;
  • params - sigogi da aka wuce ta hanyar;
  • id shine mai gano buƙatun sabani;
  • auth - maɓallin tabbatar da mai amfani; tunda har yanzu ba mu da shi, bari mu sanya shi a banza.

Don aiki tare da API, Na ƙirƙiri wani asusu na daban tare da iyakance haƙƙoƙi. Da fari dai, ba kwa buƙatar ba da dama ga inda ba kwa buƙatar yin hakan. Na biyu kuma, kafin sigar 5.0, ana iya karanta kalmar sirri da aka saita ta macro. Don haka, idan kuna amfani da kalmar sirrin mai gudanarwa Zabbix, asusun gudanarwa yana da sauƙin sata.

Wannan zai zama gaskiya musamman lokacin aiki tare da API ta hanyar rubutun ɓangare na uku da kuma adana takaddun shaida a gefe.

Tun da sigar 5.0 akwai zaɓi don ɓoye kalmar sirri da aka adana a cikin macro.

Zabbix - fadada macro iyakoki

Lokacin ƙirƙirar asusun daban don sabunta bayanai ta hanyar API, tabbatar da bincika ko bayanan da kuke buƙata suna samuwa ta hanyar haɗin yanar gizon kuma ko yana yiwuwa a sabunta shi. Ban duba ba, sannan na dogon lokaci na kasa gane dalilin da yasa ba a ganin macro da nake bukata a cikin API.

Zabbix - fadada macro iyakoki

Bayan mun sami izini a cikin API, mun ci gaba don samun jerin macro.

Mataki 3

API ɗin baya ƙyale ka sabunta macro mai masaukin baki da sunan, dole ne ka fara samun macro ID. Bugu da ƙari, don samun jerin macros don takamaiman mai masaukin baki, kuna buƙatar sanin ID na wannan rundunar, kuma wannan ƙarin buƙata ce. Yi amfani da tsoho macro {HOST ID} a cikin bukatar ba a yarda. Na yanke shawarar ketare ƙuntatawa kamar haka:

Zabbix - fadada macro iyakoki

Na ƙirƙiri macro na gida tare da ID ɗin wannan mai masaukin baki. Gano ID ɗin mai masaukin baki yana da sauƙi sosai daga mahaɗar yanar gizo.

Ana iya tace amsa tare da jerin duk macros akan mai masaukin baki ta hanyar tsari:

regex:{"hostmacroid":"([0-9]+)"[A-z0-9,":]+"{$MIKROTIK_VERSION}"

Zabbix - fadada macro iyakoki

Don haka, muna samun ID na macro da muke buƙata, inda MIKROTIK_VERSION shine sunan macro da muke nema. A cikin yanayina, ana bincika macro MIKROTIK_VERSIONAbin da aka sanya wa mai gida.

Buqatar kanta tayi kama da haka:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc":"2.0",
    "method":"usermacro.get",
    "params":{
        "output":"extend",
        "hostids":"{$HOST_ID}"
    },
    "auth":"{sid}",
    "id":1
}

Mai canzawa {sid} samu a mataki na biyu kuma za a yi amfani da shi akai-akai, inda kake buƙatar aiki tare da ƙirar API.

Mataki na 4 na ƙarshe - sabunta macro

Yanzu mun san macro ID da ake buƙatar sabuntawa, kuki izini ko sigar firmware na na'ura mai ba da hanya tsakanin hanyoyin sadarwa. Kuna iya sabunta macro da kanta.

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc":"2.0",
    "method":"usermacro.update",
    "params":{
        "hostmacroid":"{hostmacroid}",
        "value":"{mikrotik_version}"
    },
    "auth":"{sid}",
    "id":1
}

{mikrotik_version} shine darajar da aka samu a mataki na farko. A cikin misali na, sigar firmware na mikrotik na yanzu
{hostmacroid} - an samu darajar a mataki na uku - id na macro da muke sabuntawa.

binciken

Hanyar magance matsalar tare da daidaitattun ayyuka ya fi rikitarwa da tsayi. Musamman idan kun san shirye-shirye kuma kuna iya ƙara mahimman dabaru a cikin rubutun da sauri.

Babban fa'idar wannan hanyar ita ce "ɗaukarwa" na mafita tsakanin sabobin daban-daban.

A gare ni da kaina, yana da ban mamaki cewa wakilin HTTP ba zai iya samun damar bayanan wani abu ba kuma ya musanya su a jikin buƙatun ko rubutun kai [ ZBXNEXT-5993].

Samfurin da ya ƙare yana iya zazzagewa akan GitHub.

source: www.habr.com

Add a comment