ã¯ã©ã€ã¢ã³ãåãã®ãœãªã¥ãŒã·ã§ã³ãäœæãããšãã«ãéåžžã® Zabbix æ©èœã䜿çšããŠçŸãã解決ããã 2 ã€ã®ã¿ã¹ã¯ãçºçããŸããã
ã¿ã¹ã¯1ã Mikrotik ã«ãŒã¿ãŒã®çŸåšã®ãã¡ãŒã ãŠã§ã¢ ããŒãžã§ã³ã远跡ããŸãã
ãã®ã¿ã¹ã¯ã¯ãHTTP ãã³ãã¬ãŒãã«ãšãŒãžã§ã³ããè¿œå ããããšã§ç°¡åã«è§£æ±ºã§ããŸãã ãšãŒãžã§ã³ã㯠Mikrotik Web ãµã€ãããçŸåšã®ããŒãžã§ã³ãåä¿¡ããããªã¬ãŒã¯çŸåšã®ããŒãžã§ã³ãšçŸåšã®ããŒãžã§ã³ãæ¯èŒããäžäžèŽãããå Žåã«ã¢ã©ãŒããçºè¡ããŸãã
ã«ãŒã¿ãŒã 10 å°ããå Žåããã®ãããªã¢ã«ãŽãªãºã ã¯éèŠã§ã¯ãããŸããããã«ãŒã¿ãŒã 3000 å°ã®å Žåã¯ã©ãããã°ããã§ãããã? 3000 件ã®ãªã¯ãšã¹ãããµãŒããŒã«éä¿¡ããŸãã? ãã¡ããããã®ãããªã¹ããŒã ã¯æ©èœããŸããã3000件ã®ãªã¯ãšã¹ããšããã¢ã€ãã¢èªäœãç§ã«ã¯åããªãã£ãã®ã§ãå¥ã®è§£æ±ºçãèŠã€ãããã£ãã®ã§ãã ããã«ããã®ãããªã¢ã«ãŽãªãºã ã«ã¯äŸç¶ãšããŠæ¬ ç¹ããããŸãããçžæåŽã¯ãXNUMX ã€ã® IP ããã® DoS æ»æã®ãªã¯ãšã¹ãã®æ°ãã«ãŠã³ãã§ããåã«ãããçŠæ¢ããããšãã§ããŸãã
ã¿ã¹ã¯2ã ç°ãªã HTTP ãšãŒãžã§ã³ãã§ã®èªå¯ã»ãã·ã§ã³ã®äœ¿çšã
ãšãŒãžã§ã³ãã HTTP çµç±ã§ãéãããããããŒãžããæ å ±ãåä¿¡ããå¿ èŠãããå ŽåãèªèšŒ Cookie ãå¿ èŠã§ãã ãããè¡ãã«ã¯ãéåžžãããã°ã€ã³/ãã¹ã¯ãŒããã®ãã¢ãš Cookie ã«ã»ãã·ã§ã³ ID ãèšå®ããæšæºã®èªèšŒãã©ãŒã ãå¿ èŠã§ãã
ãã ããåé¡ããããŸããXNUMX ã€ã® HTTP ãšãŒãžã§ã³ãé ç®ããå¥ã®é ç®ã®ããŒã¿ã«ã¢ã¯ã»ã¹ããŠãããããŒå ã®ãã®å€ã眮ãæããããšã¯äžå¯èœã§ãã
ãWeb ã¹ã¯ãªãããããããŸãããããã«ã¯å¥ã®å¶éããããåæãä¿åã®ããã®ã³ã³ãã³ããååŸããããšã¯ã§ããŸããã ããŒãžäžã«å¿ èŠãªå€æ°ãååšãããã©ããã確èªããããWeb ã¹ã¯ãªããã®ã¹ãããéã§ä»¥åã«ååŸããå€æ°ãæž¡ãããšã®ã¿ãå¯èœã§ãã
ãããã®ã¿ã¹ã¯ã«ã€ããŠå°ãèããåŸããã³ãã¬ãŒãããã¹ããããªã¬ãŒãã¢ã€ãã ãªã©ãç£èŠã·ã¹ãã ã®ã©ã®éšåã§ãå®å
šã«è¡šç€ºããããã¯ãã䜿çšããããšã«ããŸããã ãŸããWeb ã€ã³ã¿ãŒãã§ã€ã¹ API ãéããŠãã¯ããæŽæ°ã§ããŸãã
Zabbix ã«ã¯ãåªãã詳现㪠API ããã¥ã¡ã³ãããããŸãã APIã«ããããŒã¿ã®ããåãã«ã¯JsonããŒã¿åœ¢åŒã䜿çšãããŸãã 詳现ã¯æ¬¡ã®ãšããã§ãã
å¿ èŠãªããŒã¿ãååŸããŠãã¯ãã«èšé²ããäžé£ã®ã¢ã¯ã·ã§ã³ã次ã®å³ã«ç€ºããŸãã
ã¹ããã1
æåã®ã¹ãããã¯ãåäžã®ã¢ã¯ã·ã§ã³ãŸãã¯è€æ°ã®ã¢ã¯ã·ã§ã³ã§æ§æãããŸãã ãã¹ãŠã®äž»èŠãªããžãã¯ã¯æåã®ã¹ãããã«çµã¿èŸŒãŸããŠãããæåŸã® 3 ã€ã®ã¹ããããäž»èŠãªã¹ãããã§ãã
ç§ã®äŸã§ã¯ãæåã®ã¹ãããã¯ãæåã®ã¿ã¹ã¯ã®ããã« PBX äžã§èªèšŒ Cookie ãååŸããããšã§ããã XNUMX çªç®ã®ã¿ã¹ã¯ã§ã¯ãMikrotik ãã¡ãŒã ãŠã§ã¢ã®çŸåšã®ããŒãžã§ã³ã®çªå·ãååŸããŸããã
Mikrotik ãã¡ãŒã ãŠã§ã¢ã®çŸåšã®ããŒãžã§ã³ã® URL
upgrade.mikrotik.com/routeros/LATEST.6 - çŸåšã®å®å®çã® URL ã¢ãã¬ã¹upgrade.mikrotik.com/routeros/LATEST.6fix â çŸåšã® LTS ããŒãžã§ã³ã® URL ã¢ãã¬ã¹
ãããã®ã¢ãã¬ã¹ã¯ãå©çšå¯èœãªææ°ã®ãã¡ãŒã ãŠã§ã¢ ããŒãžã§ã³ãåä¿¡ãããšãã«ãMikrotik æ©åšèªäœã«ãã£ãŠã¢ã¯ã»ã¹ãããŸãã
æåã®ã¹ãããã¯ã±ãŒã¹ããšã«å®å šã«åå¥ã§ããããã®äœæ¥ã®ããžãã¯ã¯ç°ãªãå ŽåããããŸãã ããã¯ãã¹ãŠããªãã®ã¿ã¹ã¯æ¬¡ç¬¬ã§ãã
Web ã¹ã¯ãªããã䜿çšããå Žåã¯ãå¿ èŠãªå¿çã¡ãœãããèšé²ããŠãã ããã èŠåºã HTTP å¿çãŸãã¯èªå·± ÑелП ããããŒã®ãªãå¿çã§ãã?
èªå¯Cookieãå¿ èŠãªå Žåã¯ãå¿çæ¹æ³ãèšå®ããŸãã èŠåºã ã¢ã¹ã¿ãªã¹ã¯ã®å Žåã®ããã«ãmikrotik ãµãŒããŒã®å¿çã®å Žåã®ããã«ãããŒã¿ãå¿ èŠãªå Žåã¯ã次ã®ããã«å ¥åããŸãã ãã㣠ããããŒã®ãªãå¿çã
ã¹ããã2
XNUMXçªç®ã®ã¹ãããã«é²ã¿ãŸãããã èªå¯ã»ãã·ã§ã³ãååŸããŸãã
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 ã¯ã䜿çšãããŠãã JSON-RPC ãããã³ã«ã®ããŒãžã§ã³ã§ãã
Zabbix 㯠JSON-RPC ããŒãžã§ã³ 2.0 ãå®è£ ããŸãã
- Method - åŒã³åºãããã¡ãœããã
- params - ã¡ãœããã«ãã£ãŠæž¡ããããã©ã¡ãŒã¿ã
- id ã¯ä»»æã®ãªã¯ãšã¹ãèå¥åã§ãã
- auth - ãŠãŒã¶ãŒèªèšŒããŒã ãŸã æã£ãŠããªãã®ã§ãnull ã«èšå®ããŸãããã
API ã䜿çšããããã«ãæš©éãå¶éãããå¥ã®ã¢ã«ãŠã³ããäœæããŸããã ãŸããå¿ èŠã®ãªãå Žæã«ã¢ã¯ã»ã¹ãèš±å¯ããå¿ èŠã¯ãããŸããã 次ã«ãããŒãžã§ã³ 5.0 ããåã§ã¯ããã¯ãã«ãã£ãŠèšå®ããããã¹ã¯ãŒããèªã¿åãããå¯èœæ§ããããŸããã ãããã£ãŠãZabbix 管çè ãã¹ã¯ãŒãã䜿çšãããšã管çè ã¢ã«ãŠã³ããç°¡åã«çãŸããŸãã
ããã¯ããµãŒãããŒãã£ã®ã¹ã¯ãªãããä»ã㊠API ãæäœããè³æ Œæ å ±ãåŽã§ä¿åããå Žåã«ç¹ã«åœãŠã¯ãŸããŸãã
ããŒãžã§ã³ 5.0 以éããã¯ãã«ä¿åããããã¹ã¯ãŒããé衚瀺ã«ãããªãã·ã§ã³ããããŸãã
APIçµç±ã§ããŒã¿æŽæ°çšã®ã¢ã«ãŠã³ããå¥éäœæããå Žåã¯ãå¿
èŠãªããŒã¿ãWebã€ã³ã¿ãŒãã§ãŒã¹çµç±ã§å©çšå¯èœããæŽæ°å¯èœãå¿
ãã確èªãã ããã 確èªããªãã£ãã®ã§ãå¿
èŠãªãã¯ãããªã API ã«è¡šç€ºãããªãã®ããé·ãéç解ã§ããŸããã§ããã
API ã§æ¿èªãåãåã£ãåŸããã¯ãã®ãªã¹ããååŸããŸãã
ã¹ããã3
API ã§ã¯ãã¹ã ãã¯ããååã§æŽæ°ããããšã¯ã§ããŸãããæåã«ãã¯ã ID ãååŸããå¿ èŠããããŸãã ããã«ãç¹å®ã®ãã¹ãã®ãã¯ãã®ãªã¹ããååŸããã«ã¯ããã®ãã¹ãã® ID ãç¥ãå¿ èŠããããããã¯è¿œå ã®èŠæ±ã§ãã ããã©ã«ãã®ãã¯ãã䜿çšãã {ãã¹ãID} ãªã¯ãšã¹ãã§ã¯èš±å¯ãããŸããã 次ã®ããã«å¶éãåé¿ããããšã«ããŸããã
ãã®ãã¹ãã® ID ã䜿çšããŠããŒã«ã« ãã¯ããäœæããŸããã ãã¹ã ID ãèŠã€ããã®ã¯ãWeb ã€ã³ã¿ãŒãã§ã€ã¹ããéåžžã«ç°¡åã§ãã
ç¹å®ã®ãã¹ãäžã®ãã¹ãŠã®ãã¯ãã®ãªã¹ããå«ãå¿çã¯ããã¿ãŒã³ã«ãã£ãŠãã£ã«ã¿ãŒã§ããŸãã
regex:{"hostmacroid":"([0-9]+)"[A-z0-9,":]+"{$MIKROTIK_VERSION}"
ãããã£ãŠãå¿
èŠãªãã¯ãã® ID ãååŸããŸãã MIKROTIK_VERSION ã¯ãæ¢ããŠãããã¯ãã®ååã§ãã ç§ã®å Žåããã¯ããæ€çŽ¢ãããŸã MIKROTIK_VERSIONãã¹ãã«å²ãåœãŠããããã®ã
ãªã¯ãšã¹ãèªäœã¯æ¬¡ã®ããã«ãªããŸãã
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
}
å¯å€ {ã·ã} ãã㯠XNUMX çªç®ã®ã¹ãããã§ååŸãããAPI ã€ã³ã¿ãŒãã§ãŒã¹ãæäœããå¿ èŠãããå Žåã«åžžã«äœ¿çšãããŸãã
æåŸã® 4 ã¹ããã - ãã¯ãã®æŽæ°
ããã§ãæŽæ°ããå¿ èŠããããã¯ã IDãèªèšŒ CookieããŸãã¯ã«ãŒã¿ãŒã®ãã¡ãŒã ãŠã§ã¢ã®ããŒãžã§ã³ãããããŸããã ãã¯ãèªäœãæŽæ°ã§ããŸãã
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} æåã®ã¹ãããã§ååŸãããå€ã§ãã ç§ã®äŸã§ã¯ãçŸåšã® mikrotik ãã¡ãŒã ãŠã§ã¢ã®ããŒãžã§ã³
{ãã¹ããã¯ã} - å€ã¯ XNUMX çªç®ã®ã¹ãããã§ååŸãããã®ã§ãã - æŽæ°ããŠãããã¯ãã® IDã
æèŠ
æšæºæ©èœã䜿çšããŠåé¡ã解決ããã¢ãããŒãã¯ãã¯ããã«è€éã§æéãããããŸãã ç¹ã«ããã°ã©ãã³ã°ã®ç¥èããããå¿ èŠãªããžãã¯ãã¹ã¯ãªããã«ããã«è¿œå ã§ããå Žåã¯ç¹ã«ããã§ãã
ãã®ã¢ãããŒãã®æãããªå©ç¹ã¯ãç°ãªããµãŒããŒéã§ã®ãœãªã¥ãŒã·ã§ã³ã®ã移æ€æ§ãã§ãã
ç§å人ãšããŠã¯ãHTTP ãšãŒãžã§ã³ããå¥ã®é
ç®ã®ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããããããããªã¯ãšã¹ãæ¬æãããããŒã«çœ®ãæããããšãã§ããªãã®ã¯å¥åŠã§ã [
å®æãããã³ãã¬ãŒãã¯ã
åºæïŒ habr.com