Zabbix - fanitarana ny sisintany macro

Rehefa nanao vahaolana ho an'ny mpanjifa dia nisy asa 2 nipoitra izay tiako hovahana tsara sy miaraka amin'ny fiasa Zabbix mahazatra.

Asa atao 1. Fanaraha-maso ny kinova firmware ankehitriny amin'ny router Mikrotik.

Voavaha mora foana ny asa - amin'ny fampidirana mpandraharaha amin'ny maodely HTTP. Ny mpandraharaha dia mahazo ny dikan-teny ankehitriny avy amin'ny tranokala Mikrotik, ary ny trigger dia mampitaha ny dikan-teny amin'izao fotoana izao amin'ny ankehitriny ary mamoaka fanairana raha misy tsy fitoviana.

Rehefa manana router 10 ianao dia tsy mitsikera ny algorithm toy izany, fa inona no tokony hatao amin'ny router 3000? Mandefasa fangatahana 3000 amin'ny mpizara? Mazava ho azy fa hahomby ny tetika toy izany, fa ny hevitra momba ny fangatahana 3000 dia tsy nety tamiko, te hahita vahaolana hafa aho. Ankoatr'izay, mbola nisy ny tsy fahampiana tamin'ny algorithm toy izany: ny andaniny dia afaka manisa fangatahana maromaro avy amin'ny IP iray ho an'ny fanafihana DoS, afaka mandrara izany fotsiny izy ireo.

Asa atao 2. Mampiasa fivoriana fanomezan-dΓ lana amin'ny mpiasa HTTP samihafa.

Rehefa mila mahazo fampahalalana avy amin'ny pejy "nakatona" amin'ny alΓ lan'ny HTTP ny mpiasa iray dia ilaina ny cookie fanomezan-dΓ lana. Mba hanaovana izany, dia matetika misy endrika fahazoan-dΓ lana mahazatra miaraka amin'ny mpivady "login / password" ary mametraka ny ID session ao amin'ny cookie.

Saingy misy ny olana, tsy azo atao ny miditra ny angon-drakitra amin'ny singa iray hafa avy amin'ny singa HTTP agent iray hanoloana io sanda io ao amin'ny Header.

Misy ihany koa ny "Script Web", misy fetrany hafa, tsy mamela anao hahazo votoaty ho an'ny fanadihadiana sy fitahirizana bebe kokoa. Azonao atao ny manamarina ny fisian'ireo fari-pahalalana ilaina amin'ny pejy na mandalo ireo fari-pahalalana voaray teo aloha eo anelanelan'ny dingana amin'ny script web.

Rehefa avy nieritreritra kely momba ireo asa ireo aho dia nanapa-kevitra ny hampiasa macro izay hita tsara amin'ny faritra rehetra amin'ny rafitra fanaraha-maso: amin'ny templates, hosts, triggers na singa. Ary azonao atao ny manavao ny macro amin'ny alΓ lan'ny API interface tsara.

Zabbix dia manana antontan-taratasy API tsara sy amin'ny antsipiriany. Ho an'ny fifanakalozana data amin'ny alΓ lan'ny api, ny format data Json dia ampiasaina. Ny antsipiriany dia azo jerena ao amin'ny antontan-taratasy ofisialy.

Ny filaharan'ny hetsika hahazoana ny angona ilaintsika sy ny firaketana azy amin'ny macro dia aseho amin'ny kisary etsy ambany.

Zabbix - fanitarana ny sisintany macro

dingana 1

Ny dingana voalohany dia mety ahitana hetsika tokana na hetsika maromaro. Ny lojika lehibe rehetra dia napetraka amin'ny dingana voalohany, ary ny dingana 3 farany no tena lehibe.

Amin'ny ohatra nataoko, ny dingana voalohany dia ny fahazoana cookies fahazoan-dΓ lana amin'ny PBX ho an'ny asa voalohany. Ho an'ny asa faharoa dia nahazo ny isan'ny dikan-teny ankehitriny amin'ny firmware Mikrotik aho.

URL an'ny dikan-teny ankehitriny amin'ny firmware Mikrotik

Ireo adiresy ireo dia idiran'ny fitaovana Mikrotik mihitsy rehefa voaray ny version firmware misy farany.

Ny dingana voalohany dia tena manokana ho an'ny tranga tsirairay ary ny lojikan'ny asany dia mety tsy mitovy. Izany rehetra izany dia miankina amin'ny asanao.

Rehefa miasa amin'ny scripting amin'ny tranonkala dia araho ny fomba famaliana ilainao. anaram-boninahitra valinteny HTTP na tena Ρ‚Π΅Π»ΠΎ valiny tsy misy lohateny?
Raha ilaina ny cookies fanomezan-dΓ lana dia apetraho ny fomba famaliana anaram-boninahitra toy ny amin'ny Asterisk.

Raha mila data ianao, toy ny amin'ny valin'ny mpizara mikrotik, apetraho Ny vatana valiny tsy misy lohateny.

dingana 2

Andao hiroso amin’ny dingana faharoa. Mahazo fivoriana fanomezan-dΓ lana:

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 no dikan-tenin'ny protocol JSON-RPC izay ampiasaina;
Zabbix dia mampihatra JSON-RPC version 2.0;

  • fomba - ny fomba izay antsoina hoe;
  • params - masontsivana izay nandalo ny fomba;
  • id dia famantarana fangatahana tsy misy dikany;
  • auth - fanalahidin'ny fanamarinana ny mpampiasa; satria mbola tsy manana izany dia aleo apetraka ho null.

Mba hiasa miaraka amin'ny API dia namorona kaonty mitokana manana zo voafetra aho. Voalohany, tsy mila manome fidirana amin'ny toerana tsy ilainao ianao. Ary faharoa, alohan'ny version 5.0 dia azo vakiana ny tenimiafina napetraka amin'ny macro. Araka izany, raha mampiasa ny tenimiafina administratera Zabbix ianao dia mora ny mangalatra ny kaonty admin.

Tena marina izany rehefa miasa miaraka amin'ny API amin'ny alΓ lan'ny sora-baventy an'ny antoko fahatelo ary mitahiry fahazoan-dΓ lana amin'ny sisiny.

Hatramin'ny version 5.0 dia misy safidy hanafina ny tenimiafina voatahiry ao amin'ny macro.

Zabbix - fanitarana ny sisintany macro

Rehefa mamorona kaonty misaraka amin'ny fanavaozana angon-drakitra amin'ny alΓ lan'ny API, ataovy azo antoka ny manamarina raha azo alaina amin'ny alΓ lan'ny interface Internet ny data ilainao ary azo atao ny manavao izany. Tsy nanamarina aho, ary avy eo dia tsy azoko ny antony tsy hita ao amin'ny API ny macro ilaiko.

Zabbix - fanitarana ny sisintany macro

Rehefa nahazo alalana tao amin'ny API izahay, dia miroso amin'ny fahazoana lisitry ny macro.

dingana 3

Ny API dia tsy mamela anao hanavao ny macro mpampiantrano amin'ny anarana, tsy maintsy mahazo ny macro ID aloha ianao. Ankoatra izany, mba hahazoana lisitry ny macro ho an'ny mpampiantrano iray manokana dia mila mahafantatra ny ID an'ity mpampiantrano ity ianao, ary fangatahana fanampiny izany. Ampiasao ny macro default {HOST ID} amin'ny fangatahana dia tsy azo atao. Nanapa-kevitra ny handalo ny famerana toy izao aho:

Zabbix - fanitarana ny sisintany macro

Namorona macro eo an-toerana aho miaraka amin'ity ID mpampiantrano ity. Ny fitadiavana ny ID mpampiantrano dia tena mora avy amin'ny interface interface.

Ny valinteny misy lisitry ny macro rehetra amin'ny mpampiantrano iray dia azo sivana amin'ny lamina iray:

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

Zabbix - fanitarana ny sisintany macro

Noho izany, mahazo ny ID ny macro ilaintsika, aiza MIKROTIK_VERSION no anaran'ny macro tadiavintsika. Raha ny ahy dia ny macro no karohina MIKROTIK_VERSIONIlay nomena ny mpampiantrano.

Ny fangatahana mihitsy dia toa izao:

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
}

Miovaova {sid} azo amin'ny dingana faharoa ary ho ampiasaina tsy tapaka, izay mila miasa amin'ny API interface tsara.

DINGANA 4 farany - fanavaozana ny macro

Fantatsika izao ny ID macro mila havaozina, ny cookie fanomezan-dΓ lana na ny version firmware an'ny router. Azonao atao ny manavao ny macro mihitsy.

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} dia ny sanda azo tamin'ny dingana voalohany. Amin'ny ohatra nataoko, ny dikan'ny firmware mikrotik ankehitriny
{hostmacroid} - ny sanda dia azo tamin'ny dingana fahatelo - ny id ny macro izay havaozinay.

hitany

Ny fomba famahana ny olana amin'ny fampiasa mahazatra dia sarotra kokoa sy lava kokoa. Indrindra raha mahay fandaharana ianao ary afaka manampy haingana ny lojika ilaina amin'ny script.

Ny tombony miharihary amin'ity fomba ity dia ny "portability" ny vahaolana eo amin'ireo mpizara samihafa.

Amiko manokana dia mahagaga fa tsy afaka miditra amin'ny angon-drakitra amin'ny singa hafa ny mpandraharaha HTTP ary manolo azy ireo ao amin'ny vatan'ny fangatahana na lohatenin-dahatsoratra [ ZBXNEXT-5993].

Ny modely vita dia afaka misintona amin'ny GitHub.

Source: www.habr.com

Add a comment