Zabbix - teorainneacha macra a leathnú

Agus réiteach á dhéanamh agam do chliant, d'eascair 2 thasc a theastaigh uaim a réiteach go hálainn agus le feidhmiúlacht rialta Zabbix.

Tasc 1 Rianú an leagan firmware reatha ar ródairí Mikrotik.

Réitítear an tasc go héasca - trí ghníomhaire a chur leis an teimpléad HTTP. Faigheann an gníomhaire an leagan reatha ó shuíomh Gréasáin Mikrotik, agus cuireann an truicear an leagan reatha i gcomparáid leis an gceann reatha agus eisíonn sé foláireamh i gcás neamhréire.

Nuair a bhíonn 10 ródaire agat, níl algartam den sórt sin ríthábhachtach, ach cad atá le déanamh le 3000 ródaire? Seol 3000 iarratas chuig an bhfreastalaí? Ar ndóigh, oibreoidh a leithéid de scéim, ach ní raibh an smaoineamh féin maidir le 3000 iarratas oiriúnach dom, bhí mé ag iarraidh réiteach eile a fháil. Ina theannta sin, bhí míbhuntáiste fós in algartam den sórt sin: is féidir leis an taobh eile líon iarratais den sórt sin a chomhaireamh ó IP amháin le haghaidh ionsaí DoS, is féidir leo é a thoirmeasc go simplí.

Tasc 2 Ag baint úsáide as seisiún údaraithe i ngníomhairí HTTP éagsúla.

Nuair is gá do ghníomhaire faisnéis a fháil ó leathanaigh "dúnta" trí HTTP, tá fianán údaraithe de dhíth. Chun seo a dhéanamh, is gnách go mbíonn foirm chaighdeánach údaraithe le péire "logáil isteach / pasfhocal" agus ID an tseisiúin sa bhfianán á socrú.

Ach tá fadhb ann, níl sé dodhéanta rochtain a fháil ar shonraí míre eile ó mhír gníomhaire HTTP amháin chun an luach seo a chur in ionad an Cheanntásc.

Tá "script Gréasáin" ann freisin, tá teorainn eile aige, ní cheadaíonn sé duit ábhar a fháil le haghaidh anailíse agus le haghaidh tuilleadh sábhála. Ní féidir leat ach seiceáil le haghaidh láithreacht na n-athróg riachtanach ar na leathanaigh nó pas a fháil athróga a fuarthas roimhe seo idir céimeanna script gréasáin.

Tar éis smaoineamh beagán a dhéanamh ar na tascanna seo, chinn mé macraí a úsáid atá le feiceáil go foirfe in aon chuid den chóras monatóireachta: i dteimpléid, ina hóstach, i dtrucailí nó i míreanna. Agus is féidir leat macraí a nuashonrú tríd an API comhéadan gréasáin.

Tá doiciméadú API maith agus mionsonraithe ag Zabbix. Chun sonraí a mhalartú trí api, úsáidtear formáid sonraí Json. Is féidir sonraí a fháil i doiciméadú oifigiúil.

Taispeántar sa léaráid thíos seicheamh na ngníomhartha chun na sonraí a theastaíonn uainn a fháil agus iad a thaifeadadh i macra.

Zabbix - teorainneacha macra a leathnú

Céim 1

Is féidir gníomh amháin nó gníomhaíochtaí iolracha a bheith sa chéad chéim. Leagtar an phríomhloighic go léir sna chéad chéimeanna, agus is iad na 3 chéim dheireanacha na príomhchinn.

I mo shampla, ba é an chéad chéim ná fianáin údaraithe a fháil ar an PBX don chéad tasc. Don dara tasc, fuair mé uimhir an leagan reatha den fhirmware Mikrotik.

URL na leaganacha reatha de firmware Mikrotik

Tá rochtain ag an trealamh Mikrotik féin ar na seoltaí sin nuair a fhaightear an leagan firmware is déanaí atá ar fáil.

Is é an chéad chéim go hiomlán aonair do gach cás agus d'fhéadfadh an loighic a chuid oibre a bheith difriúil. Braitheann sé go léir ar do chúram.

Agus tú ag obair le scripteáil gréasáin, coinnigh súil ar an modh freagartha atá uait. Ceannteidil Freagra HTTP nó féin тело freagra gan ceanntásca?
Má theastaíonn fianáin údaraithe, socraigh an modh freagartha Ceannteidil mar atá i gcás Réiltín.

Má theastaíonn sonraí uait, mar atá i gcás freagra an fhreastalaí mikrotik, cuir An comhlacht freagra gan ceanntásca.

Céim 2

A ligean ar bogadh ar aghaidh go dtí an dara céim. Seisiún údaraithe a fháil:

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
}

Is é jsonrpc an leagan den phrótacal JSON-RPC atá á úsáid;
Cuireann Zabbix leagan 2.0 de JSON-RPC i bhfeidhm;

  • modh - an modh ar a dtugtar;
  • params - paraiméadair a ritheadh ​​​​an modh;
  • is aitheantóir iarratais treallach é id;
  • auth - eochair fíordheimhnithe úsáideora; ós rud é nach bhfuil sé againn fós, a ligean ar é a chur ar neamhní.

Chun oibriú leis an API, chruthaigh mé cuntas ar leith le cearta teoranta. Ar an gcéad dul síos, ní gá duit rochtain a thabhairt ar áit nach gá duit. Agus ar an dara dul síos, roimh leagan 5.0, d'fhéadfaí an focal faire a leagtar tríd an macra a léamh. Dá réir sin, má úsáideann tú pasfhocal riarthóra Zabbix, is furasta an cuntas riaracháin a ghoid.

Beidh sé seo fíor go háirithe agus tú ag obair le API trí scripteanna tríú páirtí agus ag stóráil dintiúir ar an taobh.

Ós rud é leagan 5.0 tá rogha a cheilt ar an focal faire a shábháil ar an macra.

Zabbix - teorainneacha macra a leathnú

Agus cuntas ar leith á chruthú agat chun sonraí a nuashonrú tríd an API, déan cinnte a sheiceáil an bhfuil na sonraí atá uait ar fáil tríd an gcomhéadan gréasáin agus an féidir iad a nuashonrú. Ní dhearna mé seiceáil, agus ansin ar feadh i bhfad níorbh fhéidir liom a thuiscint cén fáth nach raibh an macra a bhí ag teastáil uaim le feiceáil san API.

Zabbix - teorainneacha macra a leathnú

Tar éis dúinn údarú a fháil san API, leanaimid ar aghaidh chun liosta macraí a fháil.

Céim 3

Ní cheadaíonn an API duit macra óstach a nuashonrú de réir ainm, ní mór duit an macra ID a fháil ar dtús. Thairis sin, chun liosta macraí a fháil le haghaidh óstach ar leith, ní mór duit ID an óstaigh seo a bheith ar eolas agat, agus is iarratas breise é seo. Úsáid macra réamhshocraithe {HOST ID} san iarratas nach bhfuil ceadaithe. Chinn mé an srian a sheachaint mar seo:

Zabbix - teorainneacha macra a leathnú

Chruthaigh mé macra áitiúil le haitheantas an óstaigh seo. Tá sé an-éasca ID an óstaigh a fháil amach ón gcomhéadan gréasáin.

Is féidir freagra le liosta de na macraí ar fad ar ósta ar leith a scagadh le patrún:

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

Zabbix - teorainneacha macra a leathnú

Mar sin, faigheann muid aitheantas an macra a theastaíonn uainn, áit MIKROTIK_VERSION is ainm don mhacra atá á lorg againn. I mo chás, déantar cuardach ar an macra MIKROTIK_VERSIONAn a bhí sannta don ósta.

Breathnaíonn an t-iarratas féin mar seo:

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
}

Athróg {sid} a fhaightear sa dara céim agus a úsáid i gcónaí, nuair is gá duit a bheith ag obair leis an comhéadan API.

Deiridh 4 CÉIM - nuashonrú ar an macra

Anois tá a fhios againn an ID macra is gá a nuashonrú, an fianán údaraithe nó leagan firmware an ródaire. Is féidir leat an macra féin a nuashonrú.

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
}

{microtik_version} is é an luach a fhaightear sa chéad chéim. I mo shampla, an leagan den firmware mikrotik reatha
{hostmacroid} - fuarthas an luach sa tríú céim - ID an macra atá á nuashonrú againn.

Torthaí

Tá an cur chuige chun an fhadhb a réiteach le feidhmiúlacht chaighdeánach i bhfad níos casta agus níos faide. Go háirithe má tá a fhios agat cláir agus is féidir leis an loighic riachtanach a chur leis an script go tapa.

Is é an buntáiste soiléir a bhaineann leis an gcur chuige seo ná "inaistritheacht" an réitigh idir freastalaithe éagsúla.

Maidir liom féin go pearsanta, is aisteach an rud é nach féidir leis an ngníomhaire HTTP rochtain a fháil ar shonraí míre eile agus iad a ionadú sa chomhlacht iarratais nó sna ceannteidil [ ZBXNEXT-5993].

Is féidir leis an teimpléad críochnaithe Íoslódáil i GitHub.

Foinse: will.com

Add a comment