Zabbix - faagun Makiro aala

Nigbati o ba n ṣe ojutu kan fun alabara, awọn iṣẹ-ṣiṣe 2 dide ti Mo fẹ lati yanju ẹwa ati pẹlu iṣẹ ṣiṣe Zabbix deede.

Ise 1. Titọpa ẹya famuwia lọwọlọwọ lori awọn olulana Mikrotik.

A yanju iṣẹ-ṣiṣe ni irọrun - nipa fifi oluranlowo kun si awoṣe HTTP. Aṣoju naa gba ẹya ti isiyi lati oju opo wẹẹbu Mikrotik, ati okunfa naa ṣe afiwe ẹya ti isiyi pẹlu eyiti o wa lọwọlọwọ ati pe o funni ni itaniji ni ọran ti iyatọ.

Nigbati o ba ni awọn olulana 10, iru algorithm kii ṣe pataki, ṣugbọn kini lati ṣe pẹlu awọn olulana 3000? Fi awọn ibeere 3000 ranṣẹ si olupin naa? Nitoribẹẹ, iru ero bẹẹ yoo ṣiṣẹ, ṣugbọn imọran pupọ ti awọn ibeere 3000 ko baamu fun mi, Mo fẹ lati wa ojutu miiran. Ni afikun, idapada tun wa ni iru algorithm kan: ẹgbẹ keji le ka iru nọmba awọn ibeere lati ọdọ IP kan fun ikọlu DoS, wọn le nirọrun gbesele.

Ise 2. Lilo igba aṣẹ ni oriṣiriṣi awọn aṣoju HTTP.

Nigbati aṣoju kan nilo lati gba alaye lati awọn oju-iwe “timọ” nipasẹ HTTP, o nilo kuki aṣẹ kan. Lati ṣe eyi, igbagbogbo fọọmu aṣẹ boṣewa kan wa pẹlu bata “iwọle / ọrọ igbaniwọle” ati ṣeto ID igba ninu kuki.

Ṣugbọn iṣoro kan wa, ko ṣee ṣe lati wọle si data ti nkan miiran lati nkan aṣoju HTTP kan lati paarọ iye yii ni Akọsori.

"Akosile wẹẹbu tun wa", o ni aropin miiran, ko gba ọ laaye lati gba akoonu fun itupalẹ ati fifipamọ siwaju sii. O le ṣayẹwo nikan fun wiwa awọn oniyipada pataki lori awọn oju-iwe tabi kọja awọn oniyipada ti o gba tẹlẹ laarin awọn igbesẹ iwe afọwọkọ wẹẹbu.

Lẹhin ti o ronu diẹ nipa awọn iṣẹ-ṣiṣe wọnyi, Mo pinnu lati lo awọn macros ti o han ni pipe ni eyikeyi apakan ti eto ibojuwo: ni awọn awoṣe, awọn ọmọ-ogun, awọn okunfa tabi awọn ohun kan. Ati pe o le ṣe imudojuiwọn awọn macros nipasẹ oju opo wẹẹbu API.

Zabbix ni awọn iwe API ti o dara ati alaye. Fun paṣipaarọ data nipasẹ api, ọna kika data Json ti lo. Awọn alaye le ṣee ri ni osise iwe aṣẹ.

Ọkọọkan awọn iṣe fun gbigba data ti a nilo ati gbigbasilẹ wọn ni Makiro ni a fihan ninu aworan atọka ni isalẹ.

Zabbix - faagun Makiro aala

Igbesẹ 1

Igbesẹ akọkọ le ni iṣe iṣe ẹyọkan tabi awọn iṣe lọpọlọpọ. Gbogbo ọgbọn akọkọ ti wa ni ipilẹ ni awọn igbesẹ akọkọ, ati awọn igbesẹ 3 ti o kẹhin jẹ awọn akọkọ.

Ninu apẹẹrẹ mi, igbesẹ akọkọ ni lati gba awọn kuki aṣẹ lori PBX fun iṣẹ akọkọ. Fun iṣẹ-ṣiṣe keji, Mo ni nọmba ti ẹya lọwọlọwọ ti famuwia Mikrotik.

URL ti awọn ẹya lọwọlọwọ ti famuwia Mikrotik

Awọn adirẹsi wọnyi jẹ iraye si nipasẹ ohun elo Mikrotik funrararẹ nigbati ẹya famuwia tuntun ti o wa tuntun ti gba.

Igbesẹ akọkọ jẹ ẹni kọọkan patapata fun ọran kọọkan ati ọgbọn ti iṣẹ rẹ le yatọ. Gbogbo rẹ da lori iṣẹ-ṣiṣe rẹ.

Nigbati o ba n ṣiṣẹ pẹlu iwe afọwọkọ wẹẹbu, tọju abala ọna esi wo ti o nilo. Awọn akọle Idahun HTTP tabi ti ara ẹni ara idahun lai awọn akọle?
Ti o ba nilo awọn kuki aṣẹ, lẹhinna ṣeto ọna esi Awọn akọle bi ninu ọran ti Aami akiyesi.

Ti o ba nilo data, bi ninu ọran ti idahun olupin mikrotik, fi Ara idahun lai awọn akọle.

Igbesẹ 2

Jẹ ki a lọ si ipele keji. Gbigba igba aṣẹ:

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 jẹ ẹya ti Ilana JSON-RPC ti o nlo;
Zabbix ṣe imuse JSON-RPC ẹya 2.0;

  • ọna - ọna ti a npe ni;
  • params - awọn paramita ti o kọja nipasẹ ọna;
  • id jẹ idanimọ ibeere lainidii;
  • auth - bọtini ijẹrisi olumulo; niwon a ko ni sibẹsibẹ, jẹ ki a ṣeto si asan.

Lati ṣiṣẹ pẹlu API, Mo ṣẹda akọọlẹ lọtọ pẹlu awọn ẹtọ to lopin. Ni akọkọ, iwọ ko nilo lati fun ni iwọle si ibiti o ko nilo. Ati ni ẹẹkeji, ṣaaju ẹya 5.0, ọrọ igbaniwọle ti a ṣeto nipasẹ macro le ka. Nitorinaa, ti o ba lo ọrọ igbaniwọle oludari Zabbix, akọọlẹ abojuto rọrun lati ji.

Eyi yoo jẹ otitọ paapaa nigbati o ba n ṣiṣẹ pẹlu API nipasẹ awọn iwe afọwọkọ ẹni-kẹta ati titoju awọn iwe-ẹri ni ẹgbẹ.

Lati ẹya 5.0, aṣayan wa lati tọju ọrọ igbaniwọle ti o fipamọ sinu Makiro.

Zabbix - faagun Makiro aala

Nigbati o ba ṣẹda akọọlẹ lọtọ fun mimuuṣiṣẹpọ data nipasẹ API, rii daju lati ṣayẹwo boya data ti o nilo wa nipasẹ wiwo wẹẹbu ati boya o ṣee ṣe lati ṣe imudojuiwọn. Emi ko ṣayẹwo, ati lẹhinna fun igba pipẹ Emi ko le loye idi ti Makiro ti Mo nilo ko han ni API.

Zabbix - faagun Makiro aala

Lẹhin ti a ti gba aṣẹ ni API, a tẹsiwaju lati gba atokọ ti awọn macros.

Igbesẹ 3

API ko gba ọ laaye lati ṣe imudojuiwọn Makiro ogun nipasẹ orukọ, o gbọdọ kọkọ gba ID Makiro naa. Pẹlupẹlu, lati gba atokọ ti awọn macros fun agbalejo kan pato, o nilo lati mọ ID ti agbalejo yii, ati pe eyi jẹ ibeere afikun. Lo macro aiyipada ID {HOST} ni ìbéèrè ko ba gba laaye. Mo pinnu lati fori ihamọ naa bii eyi:

Zabbix - faagun Makiro aala

Mo ṣẹda Makiro agbegbe pẹlu ID agbalejo yii. Wiwa ID agbalejo jẹ irọrun pupọ lati wiwo wẹẹbu.

Idahun pẹlu atokọ ti gbogbo awọn macros lori agbalejo ti a fun ni a le ṣe sisẹ nipasẹ apẹrẹ kan:

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

Zabbix - faagun Makiro aala

Bayi, a gba ID ti Makiro ti a nilo, nibo MIKROTIK_VERSION ni oruko Makiro ti a n wa. Ninu ọran mi, a wa macro naa MIKROTIK_VERSIONAwọn ti o ti wa ni sọtọ si awọn alejo.

Ibeere naa funrararẹ dabi eyi:

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
}

Oniyipada {sid} gba ni ipele keji ati pe yoo lo nigbagbogbo, nibiti o nilo lati ṣiṣẹ pẹlu wiwo API.

Ik 4 Igbesẹ - imudojuiwọn Makiro

Bayi a mọ ID Makiro ti o nilo lati ni imudojuiwọn, kuki aṣẹ tabi ẹya famuwia ti olulana. O le ṣe imudojuiwọn Makiro funrararẹ.

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} jẹ iye ti o gba ni igbesẹ akọkọ. Ninu apẹẹrẹ mi, ẹya ti famuwia mikrotik lọwọlọwọ
{hostmacroid} - iye ti gba ni igbesẹ kẹta - id ti Makiro ti a n ṣe imudojuiwọn.

awari

Ọna lati yanju iṣoro naa pẹlu iṣẹ ṣiṣe boṣewa jẹ idiju pupọ ati gigun. Paapa ti o ba mọ siseto ati pe o le yara ṣafikun ọgbọn pataki ninu iwe afọwọkọ naa.

Anfani ti o han gbangba ti ọna yii ni “iṣipopada” ti ojutu laarin awọn olupin oriṣiriṣi.

Fun emi tikalararẹ, o jẹ ajeji pe aṣoju HTTP ko le wọle si data ti nkan miiran ki o rọpo wọn ninu ara ibeere tabi awọn akọle [ ZBXNEXT-5993].

Awọn ti pari awoṣe le ṣe igbasilẹ lori GitHub.

orisun: www.habr.com

Fi ọrọìwòye kun