ಪೋರ್ಟ್ 80 ಮೂಲಕ Lunix/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣ...

ಎಲ್ಲರಿಗೂ ನಮಸ್ಕಾರ, ಹಬ್ರೆಯಲ್ಲಿ ಇದು ನನ್ನ ಮೊದಲ ಅನುಭವ. ಬಾಹ್ಯ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ನೆಟ್ವರ್ಕ್ ಉಪಕರಣಗಳನ್ನು ಪ್ರಮಾಣಿತವಲ್ಲದ ರೀತಿಯಲ್ಲಿ ಹೇಗೆ ನಿರ್ವಹಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ನಾನು ಬರೆಯಲು ಬಯಸುತ್ತೇನೆ. ಪ್ರಮಾಣಿತವಲ್ಲದ ಅರ್ಥವೇನು: ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಬಾಹ್ಯ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಉಪಕರಣಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅಗತ್ಯವಿರುತ್ತದೆ:

  • ಸಾರ್ವಜನಿಕ IP ವಿಳಾಸ. ಸರಿ, ಅಥವಾ ಉಪಕರಣವು ಯಾರೊಬ್ಬರ NAT ಹಿಂದೆ ಇದ್ದರೆ, ನಂತರ ಸಾರ್ವಜನಿಕ IP ಮತ್ತು "ಫಾರ್ವರ್ಡ್" ಪೋರ್ಟ್.
  • ಕೇಂದ್ರೀಯ ನೋಡ್‌ಗೆ ಸುರಂಗ (PPTP/OpenVPN/L2TP+IPSec, ಇತ್ಯಾದಿ) ಅದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.

ಆದ್ದರಿಂದ, ಪ್ರಮಾಣಿತ ವಿಧಾನಗಳು ನಿಮಗೆ ಸರಿಹೊಂದುವುದಿಲ್ಲವಾದಾಗ ನಿಮಗೆ "ನನ್ನ ಬೈಕು" ಅಗತ್ಯವಿರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ:

  1. ಉಪಕರಣವು NAT ಹಿಂದೆ ಇದೆ ಮತ್ತು ಸಾಮಾನ್ಯ http (ಪೋರ್ಟ್ 80) ಹೊರತುಪಡಿಸಿ, ಎಲ್ಲವನ್ನೂ ಮುಚ್ಚಲಾಗಿದೆ. ದೊಡ್ಡ ಫೆಡರಲ್ ಕಾರ್ಪೊರೇಟ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಯಾಗಿದೆ. ಅವರು ಬಂದರುಗಳನ್ನು ನೋಂದಾಯಿಸಬಹುದು, ಆದರೆ ತಕ್ಷಣವೇ ಅಲ್ಲ, ತ್ವರಿತವಾಗಿ ಅಲ್ಲ ಮತ್ತು ನಿಮಗಾಗಿ ಅಲ್ಲ.
  2. ಅಸ್ಥಿರ ಮತ್ತು/ಅಥವಾ "ಕಿರಿದಾದ" ಸಂವಹನ ಚಾನಲ್. ಕಡಿಮೆ ವೇಗ, ನಿರಂತರ ನಷ್ಟಗಳು. ಸುರಂಗವನ್ನು ಸಂಘಟಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ನೋವು ಮತ್ತು ಹತಾಶೆ.
  3. ದುಬಾರಿ ಸಂವಹನ ಚಾನಲ್, ಅಲ್ಲಿ ಅಕ್ಷರಶಃ ಪ್ರತಿ ಮೆಗಾಬೈಟ್ ಎಣಿಕೆಯಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಉಪಗ್ರಹ ಸಂವಹನ. ಜೊತೆಗೆ ದೀರ್ಘ ವಿಳಂಬಗಳು ಮತ್ತು "ಕಿರಿದಾದ" ಬ್ಯಾಂಡ್.
  4. ನೀವು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಣ್ಣ ಮಾರ್ಗನಿರ್ದೇಶಕಗಳನ್ನು "ಕಣಕಡಿ" ಮಾಡಬೇಕಾದಾಗ ಪರಿಸ್ಥಿತಿ, ಒಂದೆಡೆ, ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲು OpenWrt / Lede ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ, ಮತ್ತು ಮತ್ತೊಂದೆಡೆ, ರೂಟರ್ನ ಸಂಪನ್ಮೂಲಗಳು (ಮೆಮೊರಿ) ಸಾಕಾಗುವುದಿಲ್ಲ. ಎಲ್ಲದಕ್ಕೂ.

ಸಂಖ್ಯೆಯ ಬಾರಿ ಗಮನಿಸಿ ರೂಟರ್‌ನ USB ಪೋರ್ಟ್‌ಗೆ ಫ್ಲ್ಯಾಷ್ ಡ್ರೈವ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದರಿಂದ ಮತ್ತು ರೂಟರ್‌ನ ಮೆಮೊರಿಯನ್ನು ವಿಸ್ತರಿಸುವುದರಿಂದ ಏನು ತಡೆಯುತ್ತದೆ?

ಹೆಚ್ಚಾಗಿ, ಅವಶ್ಯಕತೆಗಳು ಒಟ್ಟಾರೆಯಾಗಿ ಪರಿಹಾರದ ವೆಚ್ಚಕ್ಕೆ, ಆದರೆ ಕೆಲವೊಮ್ಮೆ ರೂಪ ಅಂಶವು ಪ್ರಮುಖ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಸೈಟ್‌ನಲ್ಲಿ TP-Link ML3020 ಇದೆ, ಅದರ ಏಕೈಕ USB ಪೋರ್ಟ್ ಅನ್ನು 2G/3G ಮೋಡೆಮ್‌ಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಇದೆಲ್ಲವನ್ನೂ ಕೆಲವು ರೀತಿಯ ಸಣ್ಣ ಪ್ಲಾಸ್ಟಿಕ್ ಕೇಸ್‌ನಲ್ಲಿ ಸುತ್ತಿ ಮತ್ತು ಎಲ್ಲೋ ಎತ್ತರದ, ಎತ್ತರದ (ಮಾಸ್ಟ್‌ನಲ್ಲಿ) ಇರಿಸಲಾಗುತ್ತದೆ. ದೂರ, ದೂರ (ಕ್ಷೇತ್ರದಲ್ಲಿ, ಹತ್ತಿರದ ಮೊಬೈಲ್ ಆಪರೇಟರ್ ಬೇಸ್ ಸ್ಟೇಷನ್‌ನಿಂದ 30 ಕಿಮೀ). ಹೌದು, ನೀವು USB ಹಬ್ ಅನ್ನು ಪ್ಲಗ್ ಇನ್ ಮಾಡಬಹುದು ಮತ್ತು ಪೋರ್ಟ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ವಿಸ್ತರಿಸಬಹುದು, ಆದರೆ ಇದು ತೊಡಕಿನ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲ ಎಂದು ಅನುಭವ ತೋರಿಸುತ್ತದೆ.

ಆದ್ದರಿಂದ, ನನ್ನ ವಿಶಿಷ್ಟ ಪರಿಸ್ಥಿತಿಯನ್ನು ನಾನು ನಿಮಗೆ ವಿವರಿಸಲು ಪ್ರಯತ್ನಿಸಿದೆ: "ಎಲ್ಲೋ ದೂರದಲ್ಲಿ, ದೂರದಲ್ಲಿ, ಲಿನಕ್ಸ್ ಚಾಲನೆಯಲ್ಲಿರುವ ಅತ್ಯಂತ ಪ್ರಮುಖವಾದ, ಲೋನ್ಲಿ ಮತ್ತು ಸಣ್ಣ ರೂಟರ್ ಇದೆ. ಅವನು "ಜೀವಂತ" ಎಂದು ದಿನಕ್ಕೆ ಒಮ್ಮೆಯಾದರೂ ತಿಳಿದುಕೊಳ್ಳುವುದು ಮುಖ್ಯ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ, ಆಜ್ಞೆಗಳನ್ನು ಅವನಿಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, "ಜೇನುತುಪ್ಪ, ರೀಬೂಟ್!"

ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಗೋಣ:

1) ರೂಟರ್ ಬದಿಯಲ್ಲಿ, ಕ್ರಾನ್ ಮೂಲಕ, ಪ್ರತಿ 5/10/1440 ನಿಮಿಷಗಳು, ಅಥವಾ ನಿಮಗೆ ಬೇಕಾದಾಗ, ನೀವು wget ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸರ್ವರ್‌ಗೆ http ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಬೇಕು, ವಿನಂತಿಯ ಫಲಿತಾಂಶವನ್ನು ಫೈಲ್‌ಗೆ ಉಳಿಸಿ, ಫೈಲ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವಂತೆ ಮಾಡಿ , ಮತ್ತು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ.

ನನ್ನ ಕ್ರಾನ್ ಲೈನ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

ಫೈಲ್ /etc/crontabs/root:

  */5 * * * * wget "http://xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai/a.php?u=user&p=password" -O /tmp/wa.sh && chmod 777 /tmp/wa.sh && /tmp/wa.sh

, ಅಲ್ಲಿ:
xn--80abgfbdwanb2akugdrd3a2e5gsbj.xn--p1ai ನನ್ನ ಸರ್ವರ್‌ನ ಡೊಮೇನ್ ಆಗಿದೆ. ನಾನು ಈಗಿನಿಂದಲೇ ಗಮನಿಸುತ್ತೇನೆ: ಹೌದು, ನೀವು ಸರ್ವರ್‌ನ ನಿರ್ದಿಷ್ಟ IP ವಿಳಾಸವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು, ನಮ್ಮ ರಾಜ್ಯವು ಹೋರಾಟದ ನ್ಯಾಯಯುತ ಪ್ರಚೋದನೆಯಲ್ಲಿ ಸಿಂಹದ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸುವವರೆಗೆ ನಾವು ಇದನ್ನು ಮಾಡುತ್ತಿದ್ದೆವು, ನಾನು ಹೇಳುತ್ತೇನೆ, ನನಗೆ ಗೊತ್ತಿಲ್ಲ DigitalOcean ಮತ್ತು Amazon "ಮೋಡಗಳ" ಪಾಲು. ನೀವು ಸಾಂಕೇತಿಕ ಡೊಮೇನ್ ಅನ್ನು ಬಳಸಿದರೆ, ಅಂತಹ ಘಟನೆ ಸಂಭವಿಸಿದಲ್ಲಿ, ನೀವು ಸುಲಭವಾಗಿ ಬ್ಯಾಕಪ್ ಕ್ಲೌಡ್ ಅನ್ನು ಹೆಚ್ಚಿಸಬಹುದು, ಡೊಮೇನ್ ಅನ್ನು ಅದಕ್ಕೆ ಮರುನಿರ್ದೇಶಿಸಬಹುದು ಮತ್ತು ಸಾಧನದ ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸಬಹುದು.

a.php ಎಂಬುದು ಸರ್ವರ್-ಸೈಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಹೆಸರು. ಹೌದು, ವೇರಿಯೇಬಲ್‌ಗಳನ್ನು ಹೆಸರಿಸುವುದು ಮತ್ತು ಒಂದೇ ಅಕ್ಷರದೊಂದಿಗೆ ಹೆಸರುಗಳನ್ನು ಫೈಲ್ ಮಾಡುವುದು ತಪ್ಪು ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ ... ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸುವಾಗ ನಾವು ಈ ರೀತಿಯಲ್ಲಿ ಕೆಲವು ಬೈಟ್‌ಗಳನ್ನು ಉಳಿಸಲು ಸಲಹೆ ನೀಡುತ್ತೇನೆ :)
u - ಬಳಕೆದಾರಹೆಸರು, ಯಂತ್ರಾಂಶ ಲಾಗಿನ್
p - ಪಾಸ್ವರ್ಡ್
“-O /tmp/wa.sh” ಎಂಬುದು ರಿಮೋಟ್ ರೂಟರ್‌ನಲ್ಲಿರುವ ಫೈಲ್ ಆಗಿದ್ದು, ಅಲ್ಲಿ ಸರ್ವರ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ ರೀಬೂಟ್ ಆಜ್ಞೆಯನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ.

ಟಿಪ್ಪಣಿ ಸಂಖ್ಯೆ ಎರಡು: ಓಹ್, ನಾವು wget ಅನ್ನು ಏಕೆ ಬಳಸುತ್ತೇವೆ ಮತ್ತು ಕರ್ಲ್ ಅಲ್ಲ, ಏಕೆಂದರೆ ಕರ್ಲ್ ಮೂಲಕ ನೀವು https ವಿನಂತಿಗಳನ್ನು GET ನೊಂದಿಗೆ ಅಲ್ಲ, ಆದರೆ POST ನೊಂದಿಗೆ ಕಳುಹಿಸಬಹುದು? ಆಹ್ಹ್ ಏಕೆಂದರೆ, ಹಳೆಯ ಜೋಕ್‌ನಲ್ಲಿರುವಂತೆ "NE ಜಾರ್‌ಗೆ ಏರುತ್ತದೆ!" ಕರ್ಲ್ ಸುಮಾರು 2MB ಗಾತ್ರದ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಲೈಬ್ರರಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಮತ್ತು ಈ ಕಾರಣದಿಂದಾಗಿ ನೀವು ಸಣ್ಣ TP-LINK ML3020 ಗಾಗಿ ಚಿತ್ರವನ್ನು ಜೋಡಿಸಲು ಸಾಧ್ಯವಾಗುವುದು ಅಸಂಭವವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ. ಮತ್ತು wget ಜೊತೆಗೆ - ದಯವಿಟ್ಟು.

2) ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ (ನನ್ನ ಬಳಿ ಉಬುಂಟು ಇದೆ) ನಾವು Zabbix ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ಏಕೆ: ಇದು ಸುಂದರವಾಗಿರಬೇಕು (ಗ್ರಾಫ್‌ಗಳೊಂದಿಗೆ) ಮತ್ತು ಅನುಕೂಲಕರವಾಗಿರಬೇಕು (ಸಂದರ್ಭ ಮೆನು ಮೂಲಕ ಆಜ್ಞೆಗಳನ್ನು ಕಳುಹಿಸಿ). Zabbix ಝಬ್ಬಿಕ್ಸ್ ಏಜೆಂಟ್‌ನಂತಹ ಅದ್ಭುತವಾದ ವಿಷಯವನ್ನು ಹೊಂದಿದೆ. ಏಜೆಂಟ್ ಮೂಲಕ, ನಾವು ಸರ್ವರ್‌ನಲ್ಲಿ PHP ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆಯುತ್ತೇವೆ, ಇದು ನಮ್ಮ ರೂಟರ್ ಅಗತ್ಯವಿರುವ ಅವಧಿಯಲ್ಲಿ ನೋಂದಾಯಿಸಲ್ಪಟ್ಟಿದೆಯೇ ಎಂಬ ಮಾಹಿತಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ನೋಂದಣಿ ಸಮಯ, ಸಾಧನಗಳಿಗೆ ಆಜ್ಞೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು, ನಾನು MySQL ಅನ್ನು ಬಳಸುತ್ತೇನೆ, ಸರಿಸುಮಾರು ಕೆಳಗಿನ ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ ಪ್ರತ್ಯೇಕ ಟೇಬಲ್ ಬಳಕೆದಾರರು:

		CREATE TABLE `users` (
		  `id` varchar(25) NOT NULL,
		  `passwd` varchar(25) NOT NULL,
		  `description` varchar(150) NOT NULL,
		  `category` varchar(30) NOT NULL,
		  `status` varchar(10) NOT NULL,
		  `last_time` varchar(20) NOT NULL, // время последнего соединения
		  `last_ip` varchar(20) NOT NULL, // IP последнего соединения 
		  `last_port` int(11) NOT NULL, // порт последнего соединения
		  `task` text NOT NULL, // задача которую получает роутер
		  `reg_task` varchar(150) NOT NULL, // "регулярная" задача, если мы захотим чтобы задача выполнялась всегда при регистрации
		  `last_task` text NOT NULL, // лог задач
		  `response` text NOT NULL, // сюда пишется ответ устройства
		  `seq` int(11) NOT NULL
		) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ಎಲ್ಲಾ ಮೂಲಗಳನ್ನು Git ರೆಪೊಸಿಟರಿಯಿಂದ ಇಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು: https://github.com/BazDen/iotnet.online.git
ಈಗ PHP ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಸರ್ವರ್ ಬದಿಯಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ (ಅನುಕೂಲಕ್ಕಾಗಿ, ಅವುಗಳನ್ನು /usr/share/zabbix/ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಇರಿಸಬಹುದು):

a.php ಫೈಲ್:

<?php
// Получаем входные параметры: имя пользователя, пароль и сообщение от удаленного роутера
// Зачем нужен message ? Это способ ответа роутера, например если вы захотите посмотреть содержимое файла роутера
	$user=$_REQUEST['u'];
	$password=$_REQUEST['p'];
	$message=$_REQUEST['m'];
	
	// Подключаемся к нашей базе данных (MySQL)
	$conn=new mysqli("localhost","db_login","db_password","DB_name");
	if (mysqli_connect_errno()) {
		exit();
	}
	$conn->set_charset("utf8");
	// здесь ищем наш роутер в таблице базы данных
	$sql_users=$conn->prepare("SELECT task, reg_task, response, last_time FROM users WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->bind_result($task, $reg_task, $response, $last_time);
	$sql_users->execute();
	$sql_users->store_result();
	if (($sql_users->num_rows)==1){
		$sql_users->fetch();
		// здесь мы роутеру отправляем его задачи
		echo $task;
		echo "n";
		echo $reg_task;
		// вот здесь мы пишем время ответа и сам ответ роутера
		$response_history="[".date("Y-m-d H:i")."] ".$message;
		// задачу отправили, теперь надо ее удалить,а после удаления отметить в логах, что такая-то задача выполнена
		$last_ip=$_SERVER["REMOTE_ADDR"];
		$last_port=$_SERVER["REMOTE_PORT"];
		$ts_last_conn_time=$last_time;
		$sql_users=$conn->prepare("UPDATE users SET task='', seq=1 WHERE (id=?);");
		$sql_users->bind_param('s', $user);
		$sql_users->execute();
		if (strlen($message)>1){
			$sql_users=$conn->prepare("UPDATE users SET response=?, seq=1 WHERE (id=?);");
			$sql_users->bind_param('ss', $response_history, $user);
			$sql_users->execute();
		}
		// теперь надо сохранить время регистрации пользователя, его айпи и сообщение от него. Пока только сообщение
		$ts_now=time();
		$sql_users=$conn->prepare("UPDATE users SET last_time=?, last_ip=?, last_port=? WHERE (id=?);");
		$sql_users->bind_param('ssss', $ts_now, $last_ip, $last_port, $user);
		$sql_users->execute();
	}
	// если мы не нашли роутер в нашей базе данных, или его статус "неактивный", то ему ... будет отправлена команда reboot....
	// Почему так жестоко ? Потому что роутеры иногда пропадают, а это маленький способ проучить "новых владельцев". 
	else
	{
	echo "reboot";
	}
	$sql_users->close();
	?>

Agent.php ಫೈಲ್ (ಇದು ಜಬ್ಬಿಕ್ಸ್ ಏಜೆಂಟ್‌ನ ಸ್ಕ್ರಿಪ್ಟ್ ಎಂದು ಕರೆಯಲ್ಪಡುತ್ತದೆ):

<?php
	// файл агента Zabbix. Данный скрипт обращается к таблице users и получает "1" если устройство регистрировалось с момента последнего обращения
	// user и password - учетные данные оборудования
	$user = $argv[1];
	$password = $argv[2];
	
	// подключаемся к нашей базе данных
	$conn=new mysqli("localhost","db_user","db_password","db_name");
	if (mysqli_connect_errno()) {
		exit();
		}
	$conn->set_charset("utf8");
	$sql_users=$conn->prepare("SELECT seq FROM users WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->bind_result($seq);
	$sql_users->execute();
	$sql_users->store_result();
	// обмен данными происходит через поле seq. При регистрации железка ставит данное поле в "1"
	if (($sql_users->num_rows)==1){
		$sql_users->fetch();
		echo $seq;
	}
		
	// обнуляем $seq. 
	$sql_users=$conn->prepare("UPDATE users SET seq=0 WHERE id=? AND passwd=? AND status='active';");
	$sql_users->bind_param('ss', $user, $password);
	$sql_users->execute();
	$sql_users->close();
?>		

ಸರಿ, ಅಂತಿಮ ಹಂತ: ಏಜೆಂಟ್ ಅನ್ನು ನೋಂದಾಯಿಸುವುದು ಮತ್ತು ವೇಳಾಪಟ್ಟಿಗಳನ್ನು ಸೇರಿಸುವುದು.

ನೀವು ಇನ್ನೂ zabbix ಏಜೆಂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸದಿದ್ದರೆ, ನಂತರ:

apt-get install zabbix-agent

/etc/zabbix/zabbix_agentd.conf ಫೈಲ್ ಅನ್ನು ಸಂಪಾದಿಸಿ.

ಸಾಲನ್ನು ಸೇರಿಸಿ:

UserParameter=test,php /usr/share/zabbix/agent.php user password

, ಅಲ್ಲಿ:
ಪರೀಕ್ಷೆ ನಮ್ಮ ಏಜೆಂಟ್ ಹೆಸರು
“php /usr/share/zabbix/agent.php ಬಳಕೆದಾರ ಪಾಸ್‌ವರ್ಡ್” - ಸಾಧನ ನೋಂದಣಿ ಡೇಟಾವನ್ನು ಸೂಚಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ ಎಂದು ಕರೆಯುತ್ತಾರೆ.

ಚಾರ್ಟ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ: zabbix ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ತೆರೆಯಿರಿ, ಮೆನುವಿನಿಂದ ಆಯ್ಕೆಮಾಡಿ:
ಸೆಟ್ಟಿಂಗ್‌ಗಳು -> ನೆಟ್‌ವರ್ಕ್ ನೋಡ್‌ಗಳು -> ನೆಟ್‌ವರ್ಕ್ ನೋಡ್ ಅನ್ನು ರಚಿಸಿ. ಇಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಹೋಸ್ಟ್‌ನ ಹೆಸರು, ಅದರ ಗುಂಪು ಮತ್ತು ಡೀಫಾಲ್ಟ್ ಏಜೆಂಟ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ಸಾಕು:

ಪೋರ್ಟ್ 80 ಮೂಲಕ Lunix/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣ...

ಈಗ ನಾವು ಈ ನೆಟ್‌ವರ್ಕ್ ನೋಡ್‌ಗಾಗಿ ಡೇಟಾ ಅಂಶವನ್ನು ಸೇರಿಸಬೇಕಾಗಿದೆ. ಎರಡು ಕ್ಷೇತ್ರಗಳಿಗೆ ಗಮನ ಕೊಡಿ: “ಕೀ” - ಇದು ನಿಖರವಾಗಿ ನಾವು /etc/zabbix/zabbix_agentd.conf ಫೈಲ್‌ನಲ್ಲಿ ಬರೆದ ನಿಯತಾಂಕವಾಗಿದೆ (ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ ಇದು ಪರೀಕ್ಷೆ), ಮತ್ತು “ಅಪ್‌ಡೇಟ್ ಮಧ್ಯಂತರ” - ನಾನು ಅದನ್ನು 5 ನಿಮಿಷಗಳಿಗೆ ಹೊಂದಿಸಿದೆ , ಏಕೆಂದರೆ ಮತ್ತು ಉಪಕರಣವನ್ನು ಸರ್ವರ್‌ನಲ್ಲಿ ಪ್ರತಿ ಐದು ನಿಮಿಷಗಳಿಗೊಮ್ಮೆ ನೋಂದಾಯಿಸಲಾಗುತ್ತದೆ.

ಪೋರ್ಟ್ 80 ಮೂಲಕ Lunix/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣ...

ಸರಿ, ಗ್ರಾಫ್ ಅನ್ನು ಸೇರಿಸೋಣ. ರೆಂಡರಿಂಗ್ ಶೈಲಿಯಾಗಿ "ಫಿಲ್" ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ.

ಪೋರ್ಟ್ 80 ಮೂಲಕ Lunix/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣ...

ಔಟ್ಪುಟ್ ತುಂಬಾ ಲಕೋನಿಕ್ ಆಗಿದೆ, ಉದಾಹರಣೆಗೆ ಈ ರೀತಿ:

ಪೋರ್ಟ್ 80 ಮೂಲಕ Lunix/OpenWrt/Lede ಆಧಾರಿತ ಸಾಧನಗಳ ರಿಮೋಟ್ ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ನಿಯಂತ್ರಣ...

ಸಮಂಜಸವಾದ ಪ್ರಶ್ನೆಗೆ: "ಇದು ಯೋಗ್ಯವಾಗಿದೆಯೇ?", ನಾನು ಉತ್ತರಿಸುತ್ತೇನೆ: ಅಲ್ಲದೆ, ಸಹಜವಾಗಿ, ಲೇಖನದ ಆರಂಭದಲ್ಲಿ "ಬೈಸಿಕಲ್ ರಚಿಸಲು ಕಾರಣಗಳು" ನೋಡಿ.

ನನ್ನ ಮೊದಲ ಗ್ರಾಫೊಮ್ಯಾನಿಯಾಕ್ ಅನುಭವವು ಓದುಗರ ಆಸಕ್ತಿಯನ್ನು ಹುಟ್ಟುಹಾಕಿದರೆ, ಮುಂದಿನ ಲೇಖನಗಳಲ್ಲಿ ರಿಮೋಟ್ ಉಪಕರಣಗಳಿಗೆ ಆಜ್ಞೆಗಳನ್ನು ಹೇಗೆ ಕಳುಹಿಸಬೇಕು ಎಂಬುದನ್ನು ವಿವರಿಸಲು ನಾನು ಬಯಸುತ್ತೇನೆ. ರೂಟರ್ಓಎಸ್ (ಮೈಕ್ರೋಟಿಕ್) ಆಧಾರಿತ ಸಾಧನಗಳಿಗೆ ಸಂಪೂರ್ಣ ಯೋಜನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ನಾವು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೇವೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ