Zabbix - kuwedzera macro miganhu

Pakugadzira mhinduro yemutengi, mabasa maviri akasimuka andaida kugadzirisa zvinoyevedza uye neanogara achiita Zabbix.

1 basa. Kutsvaga yazvino firmware vhezheni paMikrotik routers.

Basa rinogadziriswa zviri nyore - nekuwedzera mumiriri kune HTTP template. Mumiririri anogamuchira shanduro yemazuva ano kubva pawebsite yeMikrotik, uye iyo inokonzeresa inofananidza shanduro yemazuva ano neyezvino uye inopa yambiro kana pane mutsauko.

Paunenge uine 10 routers, algorithm yakadaro haina kutsoropodza, asi chii chekuita ne3000 routers? Tumira 3000 zvikumbiro kune server? Hongu, chirongwa chakadaro chichashanda, asi iyo pfungwa yezvikumbiro zve3000 haina kuenderana neni, ndaida kutsvaga imwe mhinduro. Mukuwedzera, pakanga pachine chidimbu mune algorithm yakadaro: rumwe rutivi runogona kuverenga nhamba yakadaro yezvikumbiro kubva kune imwe IP yekurwisa kweDoS, vanogona kungoirambidza.

2 basa. Kushandisa chikamu chemvumo mune akasiyana HTTP vamiririri.

Kana mumiririri achida kugamuchira ruzivo kubva pamapeji "akavharwa" kuburikidza neHTTP, kuki yemvumo inodiwa. Kuti uite izvi, kazhinji pane yakajairwa fomu remvumo ine "login / password" peya uye kuseta ID yechikamu mucookie.

Asi pane dambudziko, hazvigoneke kuwana iyo data yechimwe chinhu kubva kune imwe HTTP mumiriri chinhu kutsiva kukosha uku muMusoro.

Kune zvakare "Webhu script", ine chimwe chinogumira, hachikutenderi iwe kuwana zvemukati zvekuongorora uye kuwedzera kuchengetedza. Iwe unogona chete kutarisa kuvapo kwezvinodavirwa zvinodikanwa pamapeji kana kupfuura zvakambogashirwa zvinosiyana pakati pewebhu script matanho.

Mushure mekufunga zvishoma nezvemabasa aya, ndakasarudza kushandisa macros anonyatso kuoneka mune chero chikamu chekutarisa system: mumatemplate, mauto, zvinokonzeresa kana zvinhu. Uye iwe unogona kugadzirisa macros kuburikidza newebhu interface API.

Zabbix ine yakanaka uye yakadzama API zvinyorwa. Pakuchinjanisa data kuburikidza neapi, iyo Json data fomati inoshandiswa. Details inogona kuwanikwa mukati zvinyorwa zvepamutemo.

Kutevedzana kwezviito zvekuwana iyo data yatinoda uye kurekodha mune macro inoratidzwa mumufananidzo uri pazasi.

Zabbix - kuwedzera macro miganhu

vanotsika 1

Nhanho yekutanga inogona kuve nechiito chimwe chete kana zviito zvakawanda. Yese pfungwa huru inoiswa mumatanho ekutanga, uye ekupedzisira nhanho nhatu ndiwo makuru.

Mumuenzaniso wangu, nhanho yekutanga yaive yekuwana mvumo makuki paPBX yebasa rekutanga. Pabasa rechipiri, ndakawana nhamba yezvino vhezheni yeMikrotik firmware.

URL yeshanduro dzazvino dzeMikrotik firmware

Aya kero anowanikwa neMikrotik michina pachayo kana yazvino iripo firmware vhezheni yagamuchirwa.

Danho rekutanga nderomunhu wega pane imwe neimwe nyaya uye logic yebasa rayo inogona kunge yakasiyana. Zvose zvinoenderana nebasa rako.

Paunenge uchishanda newebhu scripting, cherechedza nzira yemhinduro yaunoda. Mazita HTTP mhinduro kana iwe pachako Ρ‚Π΅Π»ΠΎ mhinduro isina misoro?
Kana mvumo makuki achidikanwa, wobva waisa nzira yekupindura Mazita sezvakaitika kune Asterisk.

Kana iwe uchida dhata, senge pane iyo mikrotik server mhinduro, isa Muviri mhinduro isina misoro.

vanotsika 2

Ngatienderei padanho rechipiri. Kuwana chikamu chemvumo:

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 ndiyo vhezheni yeJSON-RPC protocol iri kushandiswa;
Zabbix inoshandisa JSON-RPC shanduro 2.0;

  • nzira - nzira inonzi;
  • param - parameters inopfuudzwa nenzira;
  • id chiziviso chekukumbira chinopokana;
  • auth - kiyi yekusimbisa mushandisi; sezvo tisati tinayo, ngatiiise kuti ishaye basa.

Kuti ndishande neAPI, ndakagadzira imwe account ine kodzero shoma. Chekutanga, haufanire kupa mukana kune kwausingade. Uye chechipiri, pamberi pevhezheni 5.0, password yakaiswa kuburikidza ne macro inogona kuverengwa. Saizvozvo, kana iwe ukashandisa Zabbix administrator password, iyo admin account iri nyore kuba.

Izvi zvichanyanya kuitika kana uchishanda neAPI kuburikidza nechitatu-bato zvinyorwa uye kuchengetedza magwaro padivi.

Sezvo vhezheni 5.0 pane sarudzo yekuvanza password yakachengetwa mune macro.

Zabbix - kuwedzera macro miganhu

Paunenge uchigadzira yakaparadzana account yekuvandudza data kuburikidza neAPI, iva nechokwadi chekutarisa kana iyo data yaunoda iripo kuburikidza newebhu interface uye kana zvichikwanisika kuivandudza. Handina kutarisa, uye kwenguva yakareba handina kukwanisa kunzwisisa kuti sei macro yandaida yaisaonekwa muAPI.

Zabbix - kuwedzera macro miganhu

Mushure mekunge tawana mvumo muAPI, tinoenderera mberi nekutora runyoro rwemacros.

vanotsika 3

Iyo API haikubvumidze kuti uvandudze a host macro nezita, unofanira kutanga watora macro ID. Uyezve, kuti uwane runyoro rwemacros kune yakasarudzika muenzi, iwe unofanirwa kuziva ID yemuiti uyu, uye ichi chikumbiro chekuwedzera. Shandisa default macro {HOST ID} mukukumbira hazvibvumirwi. Ndakasarudza kudarika kurambidzwa seizvi:

Zabbix - kuwedzera macro miganhu

Ini ndakagadzira macro yemuno neichi ID yemuenzi. Kutsvaga iyo host ID iri nyore kwazvo kubva pawebhu interface.

Mhinduro ine runyorwa rweese macros pane akapihwa host inogona kusefa ne pateni:

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

Zabbix - kuwedzera macro miganhu

Saka, tinowana ID ye macro yatinoda, kupi MIKROTIK_VERSION ndiro zita remacro ratiri kutsvaga. Mune yangu, iyo macro inotsvakwa MIKROTIK_VERSIONIyo yakagoverwa kumuenzi.

Chikumbiro pachacho chinotaridzika seizvi:

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
}

Variable {sid} yakawanikwa mudanho rechipiri uye ichashandiswa nguva dzose, kwaunoda kushanda neiyo API interface.

Yekupedzisira 4 STEP - kugadzirisa iyo macro

Iye zvino tava kuziva iyo macro ID inoda kuvandudzwa, cookie yemvumo kana firmware version ye router. Iwe unogona kugadzirisa iyo macro pachayo.

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} ndiko kukosha kunowanikwa padanho rekutanga. Mumuenzaniso wangu, shanduro yezvino mikrotik firmware
{hostmacroid} - kukosha kwakawanikwa mudanho rechitatu - id ye macro yatiri kuvandudza.

zvakawanikwa

Maitiro ekugadzirisa dambudziko neyakajairwa mashandiro akaomarara uye akareba. Kunyanya kana iwe uchiziva programming uye unogona kukurumidza kuwedzera inodiwa logic mune script.

Kubatsira kuri pachena kweiyi nzira ndeye "kutakurika" kwemhinduro pakati pemaseva akasiyana.

Kwandiri pachangu, zvinoshamisa kuti mumiriri weHTTP haakwanise kuwana data yechimwe chinhu uye ovatsiva mumutumbi wekukumbira kana misoro [ ZBXNEXT-5993].

Iyo yakapedzwa template inogona download paGitHub.

Source: www.habr.com

Voeg