Zabbix - oke oke na-agbasa

Mgbe ị na-eme ihe ngwọta maka onye ahịa, ọrụ 2 bilitere na m chọrọ iji dozie nke ọma na ọrụ Zabbix mgbe niile.

Ọrụ 1 Na-enyocha ụdị firmware dị ugbu a na ndị na-anya Mikrotik.

A na-edozi ọrụ ahụ n'ụzọ dị mfe - site na ịgbakwunye onye nnọchi anya na ndebiri HTTP. Onye nnọchi anya ahụ na-enweta ụdị dị ugbu a site na weebụsaịtị Mikrotik, ihe na-akpalite na-atụnyere ụdị dị ugbu a na nke dị ugbu a wee wepụta ọkwa ma ọ bụrụ na enwere nghọtahie.

Mgbe ị nwere ndị na-anya ụgbọ elu 10, algọridim dị otú ahụ adịghị mkpa, mana gịnị ga-eme na 3000 routers? Ziga arịrịọ 3000 na sava ahụ? N'ezie, atụmatụ dị otú ahụ ga-arụ ọrụ, ma echiche nke arịrịọ 3000 adabaghị m, achọrọ m ịchọta ngwọta ọzọ. Na mgbakwunye, a ka nwere ihe ndọghachi azụ na algọridim dị otú ahụ: akụkụ nke ọzọ nwere ike ịgụta ọnụ ọgụgụ dị otú ahụ nke arịrịọ site na otu IP maka ọgụ DoS, ha nwere ike machibido ya.

Ọrụ 2 Iji oge ikike n'ime ndị nnọchite HTTP dị iche iche.

Mgbe onye nnọchi anya kwesịrị ịnata ozi site na ibe “mechiri emechi” site na HTTP, kuki ikike achọrọ. Iji mee nke a, a na-enwekarị akwụkwọ ikike nke nwere ụzọ "nbanye / paswọọdụ" yana ịtọ NJ nnọkọ na kuki.

Mana enwere nsogbu, ọ gaghị ekwe omume ịnweta data nke ihe ọzọ site na otu ihe nnọchite HTTP iji dochie uru a na nkụnye eji isi mee.

Enwekwara "edemede Weebụ", ọ nwere njedebe ọzọ, ọ naghị ekwe ka ị nweta ọdịnaya maka nyocha na ichekwa ọzọ. Ị nwere ike ịlele maka ọnụnọ nke mgbanwe dị mkpa na ibe ma ọ bụ gafere mgbanwe ndị enwetara na mbụ n'etiti usoro edemede weebụ.

Mgbe m chechara ntakịrị banyere ọrụ ndị a, ekpebiri m iji macros nke a na-ahụ anya nke ọma na akụkụ ọ bụla nke usoro nlekota: na ndebiri, ndị ọbịa, ndị na-akpali akpali ma ọ bụ ihe. Ma ị nwere ike imelite macros site na API interface weebụ.

Zabbix nwere ezigbo akwụkwọ API zuru oke. Maka mgbanwe data site na api, a na-eji usoro data Json. Enwere ike ịchọta nkọwa na akwụkwọ ikike.

E gosipụtara usoro omume maka ịnweta data anyị chọrọ na ịdekọ ha na nnukwu macro na eserese dị n'okpuru.

Zabbix - oke oke na-agbasa

kwụpụ 1

Nzọụkwụ mbụ nwere ike ịgụnye otu omume ma ọ bụ ọtụtụ omume. A na-etinye echiche niile bụ isi na nzọụkwụ mbụ, na nzọụkwụ 3 ikpeazụ bụ isi.

N'ihe atụ m, nzọụkwụ mbụ bụ ịnweta kuki ikike na PBX maka ọrụ mbụ. Maka ọrụ nke abụọ, enwetara m ọnụ ọgụgụ nke ngwa ngwa Mikrotik dị ugbu a.

URL nke ụdị firmware Mikrotik dị ugbu a

Ngwa Mikrotik na-enweta adreesị ndị a mgbe enwetara ụdị firmware kachasị ọhụrụ dị.

Nzọụkwụ mbụ bụ kpam kpam n'otu n'otu maka ikpe ọ bụla na mgbagha nke ọrụ ya nwere ike ịdị iche. Ihe niile dabere na ọrụ gị.

Mgbe ị na-arụ ọrụ na scripting webụ, debe usoro nzaghachi nke ịchọrọ. Isiokwu Nzaghachi HTTP ma ọ bụ onwe ahụ nzaghachi enweghị nkụnye eji isi mee?
Ọ bụrụ na achọrọ kuki ikike, wee tọọ usoro nzaghachi Isiokwu dị ka ọ dị na akara mmuke.

Ọ bụrụ na ịchọrọ data, dịka ọ dị na nzaghachi nkesa mikrotik, tinye Ahụ nzaghachi na-enweghị nkụnye eji isi mee.

kwụpụ 2

Ka anyị gaa n'ihu na nzọụkwụ nke abụọ. Inweta oge ikike:

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 bụ ụdị nke JSON-RPC protocol nke a na-eji;
Zabbix na-emejuputa ụdị JSON-RPC 2.0;

  • usoro - usoro a na-akpọ;
  • params - parameters ndị na-agafe usoro;
  • id bụ ihe nchọpụta arịrịọ aka ike;
  • auth - igodo njirimara onye ọrụ; ebe ọ bụ na anyị enwebeghị ya, ka anyị debe ya ka ọ bụrụ ihe efu.

Iji rụọ ọrụ na API, emepụtara m akaụntụ dị iche nwere oke ikike. Mbụ, ịkwesighi ịnye ohere ịnweta ebe ị na-achọghị. Na nke abụọ, tupu ụdị 5.0, enwere ike ịgụ paswọọdụ etinyere na nnukwu. N'ihi ya, ọ bụrụ na ijiri paswọọdụ nchịkwa Zabbix, akaụntụ nchịkwa dị mfe izu ohi.

Nke a ga-abụ eziokwu karịsịa mgbe ya na API na-arụ ọrụ site na edemede ndị ọzọ na ịchekwa nzere n'akụkụ.

Kemgbe ụdị 5.0 enwere nhọrọ iji zoo paswọọdụ echekwara na nnukwu.

Zabbix - oke oke na-agbasa

Mgbe ị na-eke akaụntụ dị iche maka imelite data site na API, jide n'aka na ị ga-elele ma data ịchọrọ dị site na ntanetị weebụ yana ma ọ ga-ekwe omume imelite ya. Achọghị m, mgbe ahụ ruo ogologo oge, enweghị m ike ịghọta ihe kpatara na anaghị ahụ nnukwu macro m chọrọ na API.

Zabbix - oke oke na-agbasa

Mgbe anyị nwetachara ikike na API, anyị na-aga n'ihu inweta ndepụta macros.

kwụpụ 3

API anaghị enye gị ohere imelite nnukwu macro n'aha, ị ga-ebu ụzọ nweta nnukwu ID. Ọzọkwa, iji nweta ndepụta macros maka otu onye ọbịa, ịkwesịrị ịma ID nke onye ọbịa a, nke a bụkwa arịrịọ mgbakwunye. Jiri nnukwu macro ndabara {onye ọbịa ID} na arịrịọ anaghị ekwe. Ekpebiri m ịgafe mmachi dị ka nke a:

Zabbix - oke oke na-agbasa

Ejiri m ID onye ọbịa a mepụta nnukwu nnukwu obodo. Ịchọta ID onye ọbịa dị nnọọ mfe site na ntanetị weebụ.

Enwere ike iji ụkpụrụ dezie nzaghachi nwere ndepụta macro niile dị na onye ọbịa nyere site na usoro:

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

Zabbix - oke oke na-agbasa

Ya mere, anyị na-enweta ID nke nnukwu anyị chọrọ, ebe MIKROTIK_VERSION bụ aha macro anyị na-achọ. N'ọnọdụ m, a na-achọ nnukwu ihe MIKROTIK_VERSIONNke e kenyere onye ọbịa.

Arịrịọ n'onwe ya dị ka nke a:

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
}

Mgbanwe {sid} enwetara na nzọụkwụ nke abụọ ma a ga-eji ya eme ihe mgbe niile, ebe ịkwesịrị ịrụ ọrụ na interface API.

Nke ikpeazụ 4 nzọụkwụ - emelite nnukwu

Ugbu a, anyị maara nnukwu ID nke kwesịrị imelite, kuki ikike ma ọ bụ ụdị firmware nke rawụta. Ị nwere ike imelite nnukwu n'onwe ya.

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} bụ uru enwetara na nzọụkwụ mbụ. N'ihe atụ m, ụdị nke firmware mikrotik dị ugbu a
{hostmacroid} - enwetara uru na nzọụkwụ nke atọ - id nke nnukwu ihe anyị na-emelite.

Nchoputa

Ụzọ iji dozie nsogbu ahụ site na ịrụ ọrụ ọkọlọtọ dị nnọọ mgbagwoju anya ma dị ogologo. Karịsịa ma ọ bụrụ na ị maara mmemme ma nwee ike tinye ngwa ngwa mgbagha dị mkpa na edemede ahụ.

Uru doro anya nke usoro a bụ "mbugharị" nke ngwọta n'etiti sava dị iche iche.

Maka mụ onwe m, ọ bụ ihe ijuanya na onye ọrụ HTTP enweghị ike ịnweta data nke ihe ọzọ ma dochie ha n'anụ arịrịọ ma ọ bụ nkụnye eji isi mee [ ZBXNEXT-5993].

Nleba emechara nwere ike budata na GitHub.

isi: www.habr.com

Tinye a comment