Zabbix - hoʻonui i nā palena macro

I ka hana ʻana i kahi hoʻonā no ka mea kūʻai aku, ua kū mai nā hana 2 aʻu i makemake ai e hoʻoponopono nani a me ka hana Zabbix maʻamau.

Hōʻike 1. Ke nānā nei i ka mana firmware o kēia manawa ma nā routers Mikrotik.

Hoʻopau maʻalahi ka hana - ma ka hoʻohui ʻana i kahi ʻelele i ka template HTTP. Loaʻa ka ʻelele i ka mana o kēia manawa mai ka pūnaewele Mikrotik, a hoʻohālikelike ka mea hoʻoiho i ka mana o kēia manawa me ka mea o kēia manawa a hoʻopuka i kahi makaʻala inā loaʻa kahi ʻokoʻa.

Ke loaʻa iā ʻoe he 10 mau mea ala, ʻaʻole koʻikoʻi kēlā algorithm, akā he aha ka mea e hana ai me 3000 routers? Hoʻouna i nā noi 3000 i ke kikowaena? ʻOiaʻiʻo, e hana kēlā ʻano hana, akā ʻaʻole kūpono ka manaʻo o nā noi 3000 iaʻu, makemake wau e ʻimi i kahi hopena ʻē aʻe. Eia kekahi, aia kekahi drawback i loko o ia algorithm: hiki i ka ʻaoʻao ʻē aʻe ke helu i ka nui o nā noi mai hoʻokahi IP no kahi hoʻouka DoS, hiki iā lākou ke pāpā wale.

Hōʻike 2. Ke hoʻohana nei i kahi kau ʻae i nā ʻokoʻa HTTP like ʻole.

Ke loaʻa i kahi ʻelele ka ʻike mai nā ʻaoʻao "pani" ma o HTTP, pono kahi kuki ʻae. No ka hana ʻana i kēia, loaʻa maʻamau kahi palapala ʻae maʻamau me kahi pālua "login / password" a me ka hoʻonohonoho ʻana i ka ID session i ka kuki.

Akā aia kekahi pilikia, ʻaʻole hiki ke komo i ka ʻikepili o kahi mea ʻē aʻe mai kahi mea ʻelele HTTP e hoʻololi i kēia waiwai i ka Header.

Aia kekahi "Web script", he palena ʻē aʻe, ʻaʻole ia e ʻae iā ʻoe e kiʻi i ka ʻike no ka nānā ʻana a me ka mālama hou ʻana. Hiki iā ʻoe ke nānā i ka loaʻa ʻana o nā mea hoʻololi e pono ai ma nā ʻaoʻao a i ʻole e hāʻawi i nā loli i loaʻa mua ma waena o nā pae palapala pūnaewele.

Ma hope o ka noʻonoʻo liʻiliʻi e pili ana i kēia mau hana, ua hoʻoholo wau e hoʻohana i nā macros i ʻike pono ʻia ma kekahi ʻāpana o ka ʻōnaehana nānā: ma nā templates, hosts, triggers a i ʻole nā ​​​​mea. A hiki iā ʻoe ke hōʻano hou i nā macros ma o ka API interface pūnaewele.

Loaʻa iā Zabbix nā palapala API maikaʻi a kikoʻī. No ka hoʻololi ʻana i ka ʻikepili ma o api, ua hoʻohana ʻia ka hōpili ʻikepili Json. Hiki ke loaʻa nā kikoʻī ma palapala kūhelu.

Hōʻike ʻia ke kaʻina hana no ka loaʻa ʻana o ka ʻikepili a mākou e pono ai a me ka hoʻopaʻa ʻana iā lākou i kahi macro ma ke kiʻikuhi ma lalo nei.

Zabbix - hoʻonui i nā palena macro

pani 1

Hiki i ka hana mua ke komo i hoʻokahi hana a i ʻole nā ​​hana he nui. Hoʻokomo ʻia nā loina nui a pau i nā ʻanuʻu mua, a ʻo nā ʻanuʻu 3 hope ka mea nui.

I kaʻu laʻana, ʻo ka hana mua ka loaʻa ʻana o nā kuki mana ma ka PBX no ka hana mua. No ka hana ʻelua, loaʻa iaʻu ka helu o ka mana o kēia manawa o ka firmware Mikrotik.

HKH o nā mana o kēia manawa o Mikrotik firmware

Loaʻa kēia mau ʻōlelo i nā lako Mikrotik ponoʻī i ka wā i loaʻa ai ka mana firmware hou loa.

ʻO ka hana mua he kanaka hoʻokahi no kēlā me kēia hihia a ʻokoʻa paha ka loina o kāna hana. Aia nā mea a pau i kāu hana.

I ka hana ʻana me ka hoʻopaʻa palapala pūnaewele, e mālama pono i ke ala pane āu e pono ai. Nā poʻo poʻo ʻO ka pane HTTP a iā ʻoe iho ke kino pane me ke poʻomanaʻo ʻole?
Inā makemake ʻia nā kuki ʻae, a laila hoʻonohonoho i ke ʻano pane Nā poʻo poʻo e like me ka Asterisk.

Inā makemake ʻoe i ka ʻikepili, e like me ka pane o ka server mikrotik, e kau Ke kino pane me ke poʻomanaʻo ʻole.

pani 2

E neʻe kākou i ka ʻanuʻu ʻelua. Loaʻa i kahi kau ʻae:

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
}

ʻO jsonrpc ka mana o ka protocol JSON-RPC e hoʻohana ʻia nei;
Hoʻokomo ʻo Zabbix i ka mana JSON-RPC 2.0;

  • ʻano hana - ke ʻano i kapa ʻia;
  • params - nā ʻāpana i hala e ke ʻano;
  • ʻO ka id kahi mea hōʻike noi manaʻo;
  • auth - kī hōʻoia mea hoʻohana; no ka mea, ʻaʻole i loaʻa iā mākou i kēia manawa, e hoʻonoho i ka null.

No ka hana pū me ka API, ua hana au i kahi moʻokāki kaʻawale me nā kuleana palena ʻole. ʻO ka mea mua, ʻaʻole pono ʻoe e hāʻawi i kahi i kahi āu e pono ʻole ai. A ʻo ka lua, ma mua o ka mana 5.0, hiki ke heluhelu ʻia ka ʻōlelo huna i hoʻonohonoho ʻia ma ka macro. No laila, inā ʻoe e hoʻohana i ka ʻōlelo huna luna Zabbix, maʻalahi ka ʻaihue ʻana i ka moʻokāki admin.

E ʻoiaʻiʻo loa kēia i ka hana ʻana me API ma o nā palapala ʻaoʻao ʻekolu a me ka mālama ʻana i nā hōʻoia ma ka ʻaoʻao.

Mai ka mana 5.0 aia kahi koho e hūnā i ka ʻōlelo huna i mālama ʻia ma ka macro.

Zabbix - hoʻonui i nā palena macro

I ka hana ʻana i kahi moʻokāki kaʻawale no ka hoʻonui ʻana i ka ʻikepili ma o ka API, e ʻoluʻolu e nānā inā loaʻa ka ʻikepili āu e makemake ai ma o ka pūnaewele pūnaewele a inā hiki ke hoʻonui. ʻAʻole au i nānā, a laila no ka manawa lōʻihi ʻaʻole hiki iaʻu ke hoʻomaopopo i ke kumu ʻaʻole ʻike ʻia ka macro aʻu i makemake ai i ka API.

Zabbix - hoʻonui i nā palena macro

Ma hope o ka loaʻa ʻana o ka ʻae i ka API, hoʻomaka mākou e kiʻi i kahi papa inoa o nā macros.

pani 3

ʻAʻole ʻae ka API iā ʻoe e hōʻano hou i kahi macro host ma ka inoa, pono ʻoe e kiʻi mua i ka ID macro. Eia kekahi, e kiʻi i kahi papa inoa o nā macros no kahi host kikoʻī, pono ʻoe e ʻike i ka ID o kēia host, a he noi hou kēia. E hoʻohana i ka macro paʻamau {HOST ID} ma ke noi aole i aeia. Ua hoʻoholo wau e kāpae i ka palena e like me kēia:

Zabbix - hoʻonui i nā palena macro

Ua hana au i kahi macro kūloko me ka ID o kēia host. He mea maʻalahi loa ka ʻike ʻana i ka ID host mai ke kikowaena pūnaewele.

Hiki ke kānana ʻia kahi pane me ka papa inoa o nā macros a pau ma kahi hoʻokipa i kekahi kumu:

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

Zabbix - hoʻonui i nā palena macro

No laila, loaʻa iā mākou ka ID o ka macro e pono ai mākou, kahi MIKROTIK_VERSION ʻo ia ka inoa o ka macro a mākou e ʻimi nei. I koʻu hihia, ʻimi ʻia ka macro MIKROTIK_VERSIONʻO ka mea i hāʻawi ʻia i ka mea hoʻokipa.

ʻO ka noi ponoʻī e like me kēia:

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
}

Nā ʻano {sid} loaʻa i ka lua o ka ʻanuʻu a e hoʻohana mau ʻia, kahi e pono ai ʻoe e hana me ka interface API.

ʻO ka 4 STEP hope loa - hoʻonui i ka macro

I kēia manawa ua ʻike mākou i ka macro ID e pono e hoʻonui ʻia, ka kuki ʻae a i ʻole ka mana firmware o ke alalai. Hiki iā ʻoe ke hōʻano hou i ka macro ponoʻī.

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} ka waiwai i loaa ma ka hana mua. I kaʻu hiʻohiʻona, ʻo ka mana o ka firmware mikrotik i kēia manawa
{hostmacroid} - ua loaʻa ka waiwai ma ke kolu o ka ʻanuʻu - ka id o ka macro a mākou e hoʻonui nei.

haʻina

ʻOi aku ka paʻakikī a ʻoi aku ka lōʻihi o ke ala e hoʻoponopono ai i ka pilikia me ka hana maʻamau. ʻOi loa inā ʻike ʻoe i ka polokalamu a hiki ke hoʻohui koke i ka loiloi pono i ka palapala.

ʻO ka pōmaikaʻi o kēia ala ʻo ia ka "portability" o ka hopena ma waena o nā kikowaena like ʻole.

Noʻu iho, he mea kupanaha ʻaʻole hiki i ka luna HTTP ke komo i ka ʻikepili o kekahi mea ʻē aʻe a hoʻololi iā lākou i ke kino noi a i ʻole nā ​​poʻo [ ZBXNEXT-5993].

Hiki i ka la'ana i ho'opau 'ia hoʻoiho ma GitHub.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka