Zabbix - nthuav macro ciam teb

Thaum ua kev daws teeb meem rau tus neeg siv khoom, 2 txoj haujlwm tau tshwm sim uas kuv xav daws kom zoo nkauj thiab ua haujlwm nrog Zabbix li niaj zaus.

Ua haujlwm 1. Taug qab cov firmware version tam sim no ntawm Mikrotik routers.

Txoj haujlwm yog daws tau yooj yim - los ntawm kev ntxiv tus neeg sawv cev rau HTTP template. Tus neeg sawv cev tau txais cov ntawv tam sim no los ntawm Mikrotik lub vev xaib, thiab qhov ua piv txwv piv cov qauv tam sim no nrog rau tam sim no thiab teeb tsa kev ceeb toom thaum muaj qhov tsis sib xws.

Thaum koj muaj 10 routers, xws li algorithm tsis tseem ceeb, tab sis yuav ua li cas nrog 3000 routers? Xa 3000 thov mus rau lub server? Tau kawg, cov tswv yim zoo li no yuav ua haujlwm, tab sis lub tswv yim ntawm 3000 qhov kev thov tsis haum rau kuv, kuv xav nrhiav lwm txoj kev daws teeb meem. Tsis tas li ntawd, tseem muaj qhov tsis zoo nyob rau hauv xws li ib qho algorithm: sab nraud tuaj yeem suav tau ntau qhov kev thov los ntawm ib tus IP rau DoS nres, lawv tuaj yeem txwv nws yooj yim.

Ua haujlwm 2. Siv qhov kev tso cai sib ntsib hauv cov neeg sawv cev HTTP sib txawv.

Thaum tus neeg sawv cev yuav tsum tau txais cov ntaub ntawv los ntawm "kaw" nplooj ntawv ntawm HTTP, yuav tsum muaj daim ntawv tso cai ncuav qab zib. Txhawm rau ua qhov no, feem ntau yog daim ntawv tso cai tus qauv nrog "tus ID nkag mus / lo lus zais" khub thiab teeb tsa tus ID sib tham hauv cov ncuav qab zib.

Tab sis muaj ib qho teeb meem, nws tsis tuaj yeem nkag mus rau cov ntaub ntawv ntawm lwm yam khoom los ntawm ib tus neeg sawv cev HTTP khoom los hloov tus nqi no hauv Header.

Kuj tseem muaj "Web tsab ntawv", nws muaj lwm qhov kev txwv, nws tsis tso cai rau koj kom tau txais cov ntsiab lus rau kev tsom xam thiab txuag ntxiv. Koj tsuas tuaj yeem tshawb xyuas qhov muaj qhov tsim nyog hloov pauv ntawm nplooj ntawv lossis dhau qhov tau txais yav tas los hloov pauv ntawm cov kauj ruam hauv lub vev xaib.

Tom qab xav me ntsis txog cov haujlwm no, kuv txiav txim siab siv macros uas pom zoo nyob rau hauv ib feem ntawm kev saib xyuas: hauv cov qauv, tus tswv, ua rau lossis cov khoom. Thiab koj tuaj yeem hloov kho macros los ntawm lub vev xaib interface API.

Zabbix muaj cov ntaub ntawv API zoo thiab ntxaws. Rau cov ntaub ntawv pauv ntawm api, Json cov ntaub ntawv hom yog siv. Cov ntsiab lus tuaj yeem pom hauv cov ntaub ntawv raug cai.

Qhov ua ntu zus ntawm kev ua kom tau txais cov ntaub ntawv peb xav tau thiab kaw lawv hauv macro yog qhia hauv daim duab hauv qab no.

Zabbix - nthuav macro ciam teb

kauj ruam 1

Thawj kauj ruam tuaj yeem suav nrog ib qho kev nqis tes ua lossis ntau yam ua. Tag nrho cov ntsiab lus tseem ceeb tau muab tso rau hauv thawj kauj ruam, thiab 3 kauj ruam kawg yog qhov tseem ceeb.

Hauv kuv qhov piv txwv, thawj kauj ruam yog kom tau txais kev tso cai ncuav qab zib ntawm PBX rau thawj txoj haujlwm. Rau txoj haujlwm thib ob, kuv tau txais tus lej ntawm qhov tam sim no version ntawm Mikrotik firmware.

URL ntawm tam sim no versions ntawm Mikrotik firmware

Cov chaw nyob no tau nkag los ntawm Mikrotik cov cuab yeej nws tus kheej thaum tau txais qhov tseeb muaj firmware version.

Thawj kauj ruam yog tus kheej kiag li rau txhua rooj plaub thiab lub logic ntawm nws txoj haujlwm yuav txawv. Txhua yam nyob ntawm koj txoj haujlwm.

Thaum ua haujlwm nrog web scripting, khaws cov lus teb uas koj xav tau. Cov npe HTTP teb lossis tus kheej lub cev teb tsis muaj headers?
Yog xav tau kev tso cai ncuav qab zib, ces teem lub teb txoj kev Cov npe raws li qhov xwm txheej ntawm Asterisk.

Yog hais tias koj xav tau cov ntaub ntawv, raws li nyob rau hauv cov ntaub ntawv ntawm lub mikrotik neeg rau zaub mov teb, tso Lub cev teb tsis muaj headers.

kauj ruam 2

Cia peb mus rau kauj ruam thib ob. Tau txais kev tso cai ntu:

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 yog qhov version ntawm JSON-RPC raws tu qauv uas tau siv;
Zabbix siv JSON-RPC version 2.0;

  • txoj kev - txoj kev uas hu ua;
  • parameters - parameters uas dhau los ntawm txoj kev;
  • id yog ib tug arbitrary thov identifier;
  • auth - tus yuam sij authentication; vim peb tseem tsis tau muaj, cia peb muab tso rau null.

Txhawm rau ua haujlwm nrog API, kuv tsim ib tus account cais nrog cov cai txwv. Ua ntej, koj tsis tas yuav nkag mus rau qhov chaw koj tsis tas yuav. Thiab qhov thib ob, ua ntej version 5.0, tus password teem los ntawm macro tuaj yeem nyeem. Raws li, yog tias koj siv Zabbix tus thawj coj lo lus zais, tus account admin tau yooj yim nyiag.

Qhov no yuav muaj tseeb tshwj xeeb thaum ua haujlwm nrog API los ntawm cov ntawv thib peb thiab khaws cov ntaub ntawv pov thawj ntawm sab.

Txij li thaum version 5.0 muaj kev xaiv los nkaum tus password khaws tseg hauv macro.

Zabbix - nthuav macro ciam teb

Thaum tsim ib tus account cais rau kev hloov kho cov ntaub ntawv ntawm API, nco ntsoov xyuas seb cov ntaub ntawv koj xav tau muaj nyob hauv lub vev xaib interface thiab seb nws puas tuaj yeem hloov kho nws. Kuv tsis tau tshawb xyuas, thiab tom qab ntawd ntev ntev kuv tsis tuaj yeem nkag siab tias vim li cas macro kuv xav tau tsis pom hauv API.

Zabbix - nthuav macro ciam teb

Tom qab peb tau txais kev tso cai nyob rau hauv API, peb pib mus kom tau ib daim ntawv teev cov macros.

kauj ruam 3

API tsis tso cai rau koj hloov kho tus tswv macro los ntawm lub npe, koj yuav tsum xub tau txais tus ID macro. Ntxiv mus, kom tau txais cov npe ntawm macros rau ib tus tswv tsev tshwj xeeb, koj yuav tsum paub tus ID ntawm tus tswv tsev no, thiab qhov no yog qhov kev thov ntxiv. Siv lub macro default {HOST ID} nyob rau hauv qhov kev thov yog tsis tso cai. Kuv txiav txim siab hla txoj kev txwv zoo li no:

Zabbix - nthuav macro ciam teb

Kuv tsim ib lub zos macro nrog tus tswv tsev tus ID. Nrhiav tawm tus tswv tsev ID yog qhov yooj yim heev los ntawm lub vev xaib interface.

Cov lus teb nrog cov npe ntawm tag nrho cov macro ntawm ib tus tswv tsev tuaj yeem raug lim los ntawm tus qauv:

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

Zabbix - nthuav macro ciam teb

Yog li, peb tau txais tus ID ntawm macro peb xav tau, qhov twg MIKROTIK_VERSION yog lub npe macro peb tab tom nrhiav. Hauv kuv qhov xwm txheej, qhov macro tshawb nrhiav MIKROTIK_VERSIONQhov ntawd tau muab rau tus tswv tsev.

Qhov kev thov nws tus kheej zoo li no:

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
}

Kuj tsis paub meej {sid} tau nyob rau hauv cov kauj ruam thib ob thiab yuav siv tas li, qhov twg koj yuav tsum tau ua hauj lwm nrog API interface.

Kawg 4 KAUJ RUAM - hloov kho cov macro

Tam sim no peb paub tus macro ID uas yuav tsum tau hloov kho, daim ntawv tso cai ncuav qab zib lossis firmware version ntawm router. Koj tuaj yeem hloov kho cov macro nws tus kheej.

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} yog tus nqi tau txais hauv thawj kauj ruam. Hauv kuv qhov piv txwv, qhov version ntawm mikrotik firmware tam sim no
{hostmacroid} - tus nqi tau txais nyob rau hauv lub kauj ruam thib peb - ​​tus id ntawm macro uas peb tab tom hloov kho.

tshawb pom

Txoj hauv kev los daws qhov teeb meem nrog cov qauv kev ua haujlwm yog qhov nyuaj thiab ntev dua. Tshwj xeeb tshaj yog tias koj paub programming thiab tuaj yeem ntxiv cov logic tsim nyog hauv tsab ntawv.

Qhov pom tseeb zoo ntawm txoj hauv kev no yog "portability" ntawm kev daws teeb meem ntawm cov servers sib txawv.

Rau kuv tus kheej, nws yog qhov coj txawv txawv uas tus neeg sawv cev HTTP tsis tuaj yeem nkag mus rau cov ntaub ntawv ntawm lwm yam khoom thiab hloov pauv lawv hauv lub cev thov lossis cov ntsiab lus [ ZBXNEXT-5993].

Cov template tiav tuaj yeem download tau ntawm GitHub.

Tau qhov twg los: www.hab.com

Ntxiv ib saib