๋ฏธํฌ๋กœํ‹ฑ. WEB ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•œ SMS ๊ด€๋ฆฌ

๋ชจ๋‘์—๊ฒŒ ์ข‹์€ ๋‚ !

์ด๋ฒˆ์—๋Š” ์ธํ„ฐ๋„ท์—์„œ ํŠน๋ณ„ํžˆ ์„ค๋ช…๋˜์ง€ ์•Š๋Š” ์ƒํ™ฉ์„ ์„ค๋ช…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํžŒํŠธ๊ฐ€ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ Mikrotik ์ž์ฒด์˜ ์ฝ”๋“œ์™€ ์œ„ํ‚ค์— ๋Œ€ํ•œ ๊ธธ๊ณ  ์ฒด๊ณ„์ ์ธ ํŒŒ๊ธฐ์˜€์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์ž‘์—…: ํฌํŠธ๋ฅผ ์ผœ๊ณ  ๋„๋Š” ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SMS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์žฅ์น˜์— ๋Œ€ํ•œ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์žˆ๋‹ค :

  1. ๋ณด์กฐ ๋ผ์šฐํ„ฐ CRS317-1G-16S+
  2. Mikrotik NETMETAL 5 ์•ก์„ธ์Šค ํฌ์ธํŠธ
  3. LTE ๋ชจ๋Ž€ R11e-LTE

๋ฉ‹์ง„ Netmetal 5 ์•ก์„ธ์Šค ํฌ์ธํŠธ์—๋Š” ๋‚ฉ๋•œ๋œ SIM ์นด๋“œ ์ปค๋„ฅํ„ฐ์™€ LTE ๋ชจ๋Ž€ ์„ค์น˜์šฉ ํฌํŠธ๊ฐ€ ํƒ‘์žฌ๋˜์–ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ์ง€์ ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์  ์ž์ฒด์˜ ์šด์˜ ์ฒด์ œ, ์ฆ‰ R11e-LTE์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ์ง€์›๋˜๋Š” ์ตœ๊ณ ์˜ ๋ชจ๋Ž€์„ ๊ตฌ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ก์„ธ์Šค ํฌ์ธํŠธ๊ฐ€ ๋ถ„ํ•ด๋˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ์ œ์ž๋ฆฌ์— ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค (SIM ์นด๋“œ๊ฐ€ ๋ชจ๋Ž€ ์•„๋ž˜์— ์žˆ๊ณ  ๋ฉ”์ธ ๋ณด๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ ๋Š” ์–ป์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„์•ผํ•˜์ง€๋งŒ). SIM ์นด๋“œ์˜ ๊ธฐ๋Šฅ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ถ„ํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ, ์ผ€์ด์Šค์— ๊ตฌ๋ฉ ๋‘์–ด ๊ฐœ๋ฅผ ๋šซ๊ณ  2๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ์„ ์„ค์น˜ํ•œ ํ›„ ๋๋ถ€๋ถ„์„ ๋ชจ๋Ž€์— ๊ณ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์‰ฝ๊ฒŒ๋„ ๊ทธ ๊ณผ์ •์„ ๋‹ด์€ ์‚ฌ์ง„์€ ๋‚จ์•„ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ์ž๊ธฐ ๋ฒ ์ด์Šค๊ฐ€ ์žˆ๋Š” ๋ฒ”์šฉ ์•ˆํ…Œ๋‚˜๋Š” ๋•‹์€ ๋จธ๋ฆฌ์— ๋ถ€์ฐฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค์ • ๋‹จ๊ณ„๋Š” ์‚ฌ์†Œํ•œ ์ƒํ˜ธ ์ž‘์šฉ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์ธํ„ฐ๋„ท์— ๊ฝค ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, SMS ๋ฉ”์‹œ์ง€ ์ค‘ 5๊ฐœ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ๋ชจ๋Ž€์€ SMS ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์„ ์ค‘๋‹จํ•˜๊ณ  ํ•ด๋‹น ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐ›์€ ํŽธ์ง€ํ•จ์— ์ •์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ์ง€์šฐ๊ณ  ๋ชจ๋Ž€์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ญ์ƒ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒ„์ „ 6.44.1์—์„œ๋Š” ์ˆ˜์‹ ์ด ๋” ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ›์€ ํŽธ์ง€ํ•จ์—๋Š” ๋งˆ์ง€๋ง‰ 4๊ฐœ์˜ SMS๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ ๋‚˜๋จธ์ง€๋Š” ์ž๋™์œผ๋กœ ์ง€์›Œ์ ธ ์ƒํ™œ์— ์ง€์žฅ์„ ์ฃผ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹คํ—˜์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋™์ผํ•œ ๋ฌผ๋ฆฌ์  ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ๋‘ ๋ผ์šฐํ„ฐ์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ผœ๊ณ  ๋„๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํฐ ์–ด๋ ค์›€์€ Mikrotik์ด SNMP๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ๊ฐ’ ์ฝ๊ธฐ๋งŒ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ €๋Š” ๋‹ค๋ฅธ ๋ฐฉํ–ฅ, ์ฆ‰ Mikrotik API๋ฅผ ํŒŒํ—ค์ณ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ œ์–ดํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๋ฌธ์„œ๊ฐ€ ์—†์–ด์„œ ์‹คํ—˜์„ ํ•ด์•ผ ํ–ˆ๊ณ  ์ด ์ง€์นจ์€ ํ–ฅํ›„ ์‹œ๋„๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ Mikrotik ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์–ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1. Netmetal 5์—์„œ ์ด๋ฅผ ์ผœ๊ณ  ๋„๋ ค๋ฉด ๊ฐ๊ฐ ๋‘ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

system script
add dont-require-permissions=no name=disableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/di.php "
add dont-require-permissions=no name=enableiface owner=admin policy=
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=
    "/tool fetch http://WEB_SERVER_IP/en.php "

2. ์›น ์„œ๋ฒ„์— 2๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ์ด ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์— PHP๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

<?php
# file en.php enable interfaces    
require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP ัƒะฟั€ะฐะฒะปัะตะผะพะณะพ Mikrotik', 'ะปะพะณะธะฝ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€ะฐ', 'ะฟะฐั€ะพะปัŒ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€ะฐ')) {
    $API->comm("/interface/ethernet/enable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

<?php
#file di.php disable interfaces
    require('/usr/lib/zabbix/alertscripts/routeros_api.class.php');

    $API = new RouterosAPI();
    $API->debug=true;

if ($API->connect('IP ัƒะฟั€ะฐะฒะปัะตะผะพะณะพ Mikrotik', 'ะปะพะณะธะฝ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€', 'ะฟะฐั€ะพะปัŒ ะฐะดะผะธะฝะธัั‚ั€ะฐั‚ะพั€ะฐ')) {
    $API->comm("/interface/ethernet/disable", array(
    "numbers"=>"sfp-sfpplus16",));
}
   $API->disconnect();
?>

3. Mikrotik ํฌ๋Ÿผ์—์„œ routeros_api.class.php๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„œ๋ฒ„์˜ ์•ก์„ธ์Šค ๊ฐ€๋Šฅํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

sfp-sfpplus16 ๋Œ€์‹  ๋น„ํ™œ์„ฑํ™”/ํ™œ์„ฑํ™”ํ•  ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๋‹ค์Œ ํ˜•์‹์˜ ๋ฒˆํ˜ธ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ๋•Œ

:cmd ะกะ•ะšะ ะ•ะขะะซะ™ะšะžะ” script enableiface
ะธะปะธ
:cmd ะกะ•ะšะ ะ•ะขะะซะ™ะšะžะ” script disableiface 

NETMETAL์€ ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๊ทธ๋Ÿฌ๋ฉด ์›น ์„œ๋ฒ„์—์„œ ๋ช…๋ น์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

SMS ์ˆ˜์‹  ์‹œ ์ž‘์—… ์†๋„๋Š” XNUMX์ดˆ ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Zabbix ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ํœด๋Œ€ํฐ์œผ๋กœ SMS๋ฅผ ๋ณด๋‚ด๊ณ  ๊ด‘ํ•™ ์žฅ์น˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ๋ฐฑ์—… ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์„ ์—ฌ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ด๊ฒƒ์€ ์ด ๊ธฐ์‚ฌ์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ฒ ์ง€๋งŒ, SMS๋ฅผ ๋ณด๋‚ผ ๋•Œ ๊ทธ ๊ธธ์ด๋Š” ํ•œ ๋ฉ”์‹œ์ง€์˜ ํ‘œ์ค€ ํฌ๊ธฐ์— ๋งž์•„์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ๋ฐ”๋กœ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. Mikrotik์€ ์ด๋ฅผ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์ง€ ์•Š์œผ๋ฉฐ, ๊ธด ๋ฉ”์‹œ์ง€๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ๋‹จ์ˆœํžˆ ์ „์†กํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฉ”์‹œ์ง€์—์„œ ์ „์†ก๋˜๋Š” ๋ฌธ์ž๋ฅผ ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด SMS๊ฐ€ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€