
ã¿ãªãããããã«ã¡ã¯ãå ã»ã©ãªãŒãã³ãœãŒã¹ç£èŠã·ã¹ãã Zabbix 3.4ã®æ°ããããŒãžã§ã³ã§ã®å€§éããŒã¿åéã®å¯èœæ§ã«ã€ããŠæ¢ã«èšåããŸããã 次ã«ããã®æ©èœã«ã€ããŠè©³ãã説æããŸããããã«æ確ã«ããããã«ã次ã®2ã€ã®äŸã§èª¬æããŸãã
- é»æ°ã¡ãŒã¿ãŒMercury 236ã®ã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ããJSONã§äžåºŠã«åä¿¡ãããã¹ãŠã®ããŒã¿ã®åé
- smartmontoolsãã衚圢åŒã§ååŸããããŒããã©ã€ããšSSDã®SMARTã€ã³ãžã±ãŒã¿ã®ã³ã¬ã¯ã·ã§ã³ã
ãããŠå®éã®åé¡ã¯äœã§ãããïŒ
ã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ãŸãã¯APIã³ãŒã«ã䜿çšããŠä»¥åã«ããŒã¿ãåéããããšã¯å¯èœã§ããããå°é£ããããŸããã
- å¿ èŠãªããŒã¿é ç®ããšã«ãŠãŒãã£ãªãã£ã®èµ·åãæ¯åé ããã
- åããŒã¿èŠçŽ ã®ãªãœãŒã¹ïŒãã£ã¹ã¯ãããŒããã«ãŠã³ã¿ãŒãã¢ããªã±ãŒã·ã§ã³APIïŒãžã®ã¢ã¯ã»ã¹
- çµæã®è§£æã¯ãå€éšã¹ã¯ãªãã/ãŠãŒãã£ãªãã£ã䜿çšããŠè¡ãå¿ èŠããããŸãã
- åŸã§è§£æãä¿®æ£ããå¿ èŠãããå Žå-UserParametersãŸãã¯ã¹ã¯ãªãããå床æŽæ°ããå¿ èŠããããŸãã
- ãšããããè€æ°ã®ZabbixããŒã©ãŒããã®åæãªã¯ãšã¹ãã«ãããããšãã°ã·ãªã¢ã«ããŒããžã®ã¢ã¯ã»ã¹æã«ãšã©ãŒãçºçããŸããã
äžè¬çã«ã次ã®ãããªãã®ã§ããã

ãããŠã äŸåããŒã¿èŠçŽ ã®åºçŸã«ããã次ã®ããã«ãªããŸããã

ã©ã®ããã«æ©èœããŸããïŒ
- Zabbix 3.4ã§ã¯ãããŒã¿ãœãŒã¹ã¯èŠªã¢ã€ãã ãŸãã¯ãã¹ã¿ãŒã¢ã€ãã ãšåŒã°ããå¥ã®ããŒã¿ã¢ã€ãã ã«ããããšãã§ããŸãã ãã®ãããªèŠçŽ ã«ã¯ãããšãã°ãJSONãXMLããŸãã¯ä»»æã®ããã¹ã圢åŒã®ããŒã¿ã®é åãå«ããããšãã§ããŸãã
- æ°ããããŒã¿ã芪èŠçŽ ã«å°çãããšãåŸå±ãšåŒã°ããæ®ãã®ããŒã¿èŠçŽ ã芪èŠçŽ ã«ã¢ã¯ã»ã¹ããJSONãã¹ãXPathãæ£èŠè¡šçŸãªã©ã®ååŠçæ©èœã䜿çšããŠãããã¹ãããç®çã®ã¡ããªãã¯ãæœåºããŸãã
ãšããã§ã ååŠçãé©æ°çãª3.4ã§ããZabbixãµãŒããŒã«æ°ããããã»ã¹preprocessing_managerãšpreprocessing_workerãè¿œå ããããšã§å®è£ ãããŸãã ãããã£ãŠã3.2ããã¢ããã°ã¬ãŒãããå Žåã¯ããµãŒããŒã®ãã³ãã¬ãŒããæŽæ°ããŠäœæ¥ãç£èŠããããšãå¿ããªãã§ãã ããã
äŸã«ç§»ããŸãã
ããŒãã¥ãªãŒ236

ç§ãã¡ã®ãããžã§ã¯ãã§ã¯ãã³ã³ãããä»®æ³ãã·ã³ãã¢ããªã±ãŒã·ã§ã³ããããã¯ãŒã¯ããã€ã¹ãããŒã¿ããŒã¹ãããžãã¹ã€ã³ãžã±ãŒã¿ãŒãããã³å¶åŸ¡ãå¿ èŠãšãããã®ä»ãã¹ãŠã«å ããŠãé»åèšåãæ°åèšåãªã©ã®ããšã³ãžãã¢ãã®ããã©ãŒãã³ã¹ãç£èŠããå¿ èŠããããšæ³åããŠãã ããã åŒç€Ÿã®ããããã³ãã«æšæºçãªããã€ã¹ã䜿çšãããŸãïŒRS-485ã€ã³ã¿ãŒãã§ãŒã¹ãåããäžçžé»åèšMercury 236 ART-01 PQRSãã¡ãŒã«ãŒç¬èªã®ãããã³ã«ãä»ããŠéä¿¡ãè¡ãããŸãã
責任ã®ããã¿ã¹ã¯ã¯ãé»å§ãé»åãé»æµãæ¶è²»ãåšæ³¢æ°ã®ã€ã³ãžã±ãŒã¿ãããã«åéããããšã§ãã ZabbixãšãŒãžã§ã³ãã䜿çšããŠãã®ãããªããã€ã¹ããµãŒããŒã«æ¥ç¶ããããšã¯å®è¡å¯èœãªã¿ã¹ã¯ã§ããããšãã°ãRS-485ãåããã·ãªã¢ã«ããŒãïŒUSBã¢ããã¿ãŒãªã©ïŒã§ååã§ãã ããããããŒã¿ãèªã¿åãæ¹æ³ã¯ïŒ githubãšãã¹ããŒãããŒã ã®ãœãªã¥ãŒã·ã§ã³ãå ±æããŠããã芪åãªäººã ãããªããã°ãZabbixã«ã¢ãžã¥ãŒã«ãäœæããã«ãŠã³ã¿ãŒãããã³ã«ãšããŒãªã³ã°ã€ã³ãžã±ãŒã¿ãŒã«ã€ããŠè©±ãããšãåŠã³ãŸãã
ãŠãŒãã£ãªãã£ã¯ã·ã³ãã«ã§äŸ¿å©ã§ãïŒäœæè ã«æè¬ããŸãïŒãäœæè ã¯æå®ãããããŒãã§ã«ãŠã³ã¿ãŒã«æ¥ç¶ããããŒã¿ãèªã¿åããããã¹ããCSVããŸãã¯JSONã®åœ¢åŒã§æäŸããŸãã
ã€ã³ã¹ããŒã«ããŠå®è¡ããŠã¿ãŸãããïŒ
git clone https://github.com/Shden/mercury236.git
cd mercury236
make
./mercury236 /dev/ttyS0 --help
Usage: mercury236 RS485 [OPTIONS] ...
RS485 address of RS485 dongle (eg /dev/ttyUSB0), required
--debug to print extra debug info
--testRun dry run to see output sample, no hardware required
Output formatting:
....
--help prints this screen
å§ãŸãïŒ OKãã«ãŠã³ã¿ãŒãæ¥ç¶ãã質åããJSONãååŸããŸãã
./mercury236 / dev / ttyS0 --json
{ "U": { "p1": 0.35, "p2": 0.35, "p3": 226.86 }, "I": { "p1": 0.00, "p2": 0.00, "p3": 0.39 }, "CosF": { "p1": 0.00, "p2": 0.00, "p3": 0.60, "sum": 0.60 }, "F": 50.00, "A": { "p1": 41943.03, "p2": 41943.03, "p3": 41943.03 }, "P": { "p1": 0.00, "p2": 0.00, "p3": 53.45, "sum": 53.45 }, "S": { "p1": 0.00, "p2": 0.00, "p3": 89.83, "sum": 89.83 }, "PR": { "ap": 120.51 }, "PR-day": { "ap": 86.00 }, "PR-night": { "ap": 34.51 }, "PY": { "ap": 0.00 }, "PT": { "ap": 0.04 } }
ãã®çµæããã®ãŠãŒãã£ãªãã£ã¯ãã«ãŠã³ã¿ãŒãšéä¿¡ããããã®ãããã³ã«ãå®è£ ããããŒã¿ãåŒãåºããããã«äŸ¿å©ãªJSONãªããžã§ã¯ãã®åœ¢ã§æäŸããããšããããŠãç§ãã¡ã«ãšã£ãŠå°é£ãªäœæ¥ããã¹ãŠå®äºããŸããã 以åã®ããã«ããã®ããã«ãããã䜿çšããããšã¯ã§ããŸãããã¹ã¯ãªããã®åœ¢åŒã§ãã€ã³ãã£ã³ã°ãäœæããå¿ èŠããããæãéèŠãªã®ã¯ãã·ãªã¢ã«ããŒãç°å¢ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããã¡ã«ããºã ãå®è£ ããããšã§ãã 確ãã«ã2人ã®ZabbixããŒã©ãŒãåæã«3ã€ç®ã®ãã§ãŒãº3ã®é»æµã®åŸããã1ã€ããã§ãŒãº2ã®é»æµã®åŸããããåæã«äœ¿çšããå Žåãäœãè¿ãããŸããã
3.4ã§ã¯ããã¹ãŠãéåžžã«ã·ã³ãã«ã«ãªããã¹ã¯ãªãããã©ããããããšãªããåããŒã¿èŠçŽ ã§åãããšã10åå®è¡ããããšãªãããµãŒãããŒãã£ã®ã³ã³ãœãŒã«ãŠãŒãã£ãªãã£ããZabbixã«ããŒã¿ããã°ããç°¡åã«è»¢éã§ããããã«ãªããŸããã ã ãã
Zabbixããmercury236ãŠãŒãã£ãªãã£ã®èµ·åãèšå®ããŸã
sudo cp mercury236 /etc/zabbix/scripts
cd /etc/zabbix/scripts
chmod +x mercury236
sudo usermod -G dialout zabbix
ã¹ã¯ãªãããå®è¡ããã«ã¯ãZabbixãšãŒãžã§ã³ãã®èšå®ã§æ°ããUserParameterãäœæããŸãïŒ
UserParameter=mercury236[*],/etc/zabbix/scripts/mercury236 $1 $2
ãã¡ã€ã«ãä¿åããŸããZabbixãšãŒãžã§ã³ããåèµ·åããããšãå¿ããªãã§ãã ããã
次ã«ãæ°ãããã³ãã¬ãŒãã«èŠªããŒã¿èŠçŽ ãäœæããŸãã

ã芧ã®ãšããã芪ããŒã¿èŠçŽ ã«ã¯ç¹å¥ãªãã®ã¯ãããŸãã-UserParameter ZabbixãšãŒãžã§ã³ãããã§ãã¯ããã ãã§ãã ããã¯ãã©ã®ã¿ã€ãã®æ€èšŒã芪èŠçŽ ãšããŠæ©èœã§ãããã«ã€ããŠã®å¶éããªãããšãæå³ããŸã ãããã§ã¯ã Zabbixãã©ãããŒãŸãã¯å€éšãã§ãã¯ãä»ããŠããŒã¿ãåä¿¡ã§ããŸã ã éžæããå¯äžã®ãã®ã¯ãæ å ±ã¿ã€ã-ããã¹ããš1æ¥ã®å±¥æŽä¿åæéã§ã-ããé·ãä¿åããã«ã¯ãäŸåèŠçŽ ã«ã¡ããªãã¯ãåå¥ã«ä¿åããŸãïŒä¿åæéã0ã«èšå®ããŠã芪èŠçŽ ã«ããŒã¿ããŸã£ããä¿åã§ããŸããïŒã ãã®ããŒã¿èŠçŽ ã®ååŠçã«ã¯è§Šããªãããšã«æ³šæããŠãã ããã
ã«ãŠã³ã¿ãŒã¡ããªãã¯ãèšå®ãã
äŸåããŒã¿é ç®ã®äœæãéå§ããã«ã¯ãæ°ããã¢ã·ã¹ã¿ã³ãã䜿çšã§ããŸãã ããŠããŸãã¯åã«ãããŒã¿é ç®ã®äœæããã¯ãªãã¯ããŠãã ããïŒ

æåã®ãã§ãŒãºã®é»å§ã®ããŒã¿èŠçŽ ãäœæãã次ãéžæããŸãã
- ã¿ã€ãïŒäŸåããŒã¿é ç®
- äžæ¬¡ããŒã¿é ç®ïŒmercury-get

次ã«ããååŠçãã¿ãã§ãJSONãã¹åŒãè¿œå ããŸãã
JSONãã¹ïŒ$ .U.p1

ãšããã§ãå°ãã¢ããã€ã¹ã ãããã°ãšãšã©ãŒã®ãã£ããã«å€ãã®æéãè²»ãããªãããã«ãJSONãã¹ã«å ¥åããåã«ãããšãã°ããŠãŒãã£ãªãã£ããåãåã£ãJSONãã³ããŒããŠã jsonpath.comã§ãªã³ã©ã€ã³ã§åŒã®æ£ç¢ºæ§ããã°ãã確èªã§ããŸãã
åæ§ã«ãèå³ã®ããä»ã®ã¡ããªãã¯ãäœæããŸãã å«ã-æ¯æ¥ã®ã¬ãŒãã§ã®çŽ¯ç©ãšãã«ã®ãŒã
ãããè¡ãã«ã¯ãæ°ããããŒã¿é ç®ãäœæãã次ãéžæããŸãã
- ã¿ã€ãïŒäŸåããŒã¿é ç®
- äžæ¬¡ããŒã¿é ç®ïŒmercury-get
ãã ãããååŠçãã¿ãã§ã¯ã2ã€ã®ãã¥ã¢ã³ã¹ã«æ³šæããŠãã ããã
- JSONãã¹ã«ãã€ãã³ããããããè§æ¬åŒ§ã§è¡šèšã䜿çšããŸã
- ååŠçã¯ãã«ãã¹ãããã«ããããšãã§ããŸããããšãã°ãããã§ã¯æåã®ã¹ãããã®çµæã«1000ãæããŠãkW * hããW * hãååŸããŸãã

ã«ãŠã³ã¿ãŒã®æ®ãã®äž»èŠãªã¡ããªãã¯ã«ã€ããŠãåãããšãè¡ããŸãããã®çµæã次ã®ãªã¹ããåŸãããŸãã

ãã³ãã¬ãŒããæãåºããŸããã
ãã³ãã¬ãŒããå®æãããããã«ã ãã¯ãã䜿çšããŠããªã¬ãŒãè¿œå ããå¯èœãªéãæè»ã«ããŸãã ããªã¬ãŒã®äŸåé¢ä¿ãå¿ããªãã§ãã ããã

ã©ããã
ãã³ãã¬ãŒãã®æºåãæŽããããŒã¿ãå®è¡ãããŸãããååŸãããã®ãèŠãŠã¿ãŸãããã

1åã®åŒã³åºãã§åéããããã¹ãŠã®ææ°ããŒã¿ïŒ

ãã¹ãŠã®ã¡ããªãã¯ã®åéæéã¯ãŸã£ããåãã§ããããšã«æ³šæããŠãã ããã
ã«ãŠã³ã¿ãŒã®æçµãã³ãã¬ãŒãã¯ã ãã¡ãã® share.zabbix.comã®ãœãªã¥ãŒã·ã§ã³ãªããžããªããå ¥æã§ããŸã ã
èŠçŽãããšïŒ
- åªããããã°ã©ã ãåå©çšããMercuryãããã³ã«ã«åŸã£ãŠããŒã¿åéã®å®è£ ãèšè¿°ããæéãç¡é§ã«ããŸããã§ãã
- UserParameterã¯æ®ããŸããããåçŽãªåŒã³åºãã«åŽ©å£ããŸããã å®éã system.run []ã䜿çšããããšãã§ããŸã
- scripts-wrappersãäœæããŸããã§ããã ãã³ãã¬ãŒãå ã®JSONãã¹ãä»ããŠãã¹ãŠè§£æãããŸã
- 1åã®ãªã¯ãšã¹ã-å¿ èŠãªãã¹ãŠã®ããŒã¿ãäžåºŠã«ãã«ãŠã³ã¿ãŒã¯ããŸãèŠãããããŸããã§ããã
Smartctlããã³smartmontools

é·ãéãUserParametersã䜿çšããŠãããŒããã©ã€ãã®SMARTãå¶åŸ¡ããããããæéå ã«å€æŽã§ããããã«ããæ¹æ³ã«ã€ããŠãæ¢ã«èª¬æããŸããã ãã®ã¢ãããŒãã¯æ©èœããŸãããæ¬ é¥ããªãããã§ã¯ãããŸããã
- smartctlãŠãŒãã£ãªãã£ã®åé·èµ·åãããã³ãã®ãã³ã«ããŒããã£ã¹ã¯ã³ã³ãããŒã©ãæå¹ã«ãã
- LinuxãšWindowsã§ã¯å¥ã ã®è§£æãè¡ãå¿ èŠããããŸããã ä»ããWinã§äœæ¥ããã®ã¯ç¹ã«ã€ããã§ãïŒïŒfor / F ... so ...äºéåŒçšç¬Šãããã«åŒçšç¬Šã§ãšã¹ã±ãŒãããŸã....ãã!!!!ïŒ
ãã®ãã¹ãŠãåãé€ãããã«3.4ã§è©Šã¿ãŸãã
smartmontoolsã®å Žåã«ã¯ãäžèšã®ã«ãŠã³ã¿ãŒã®äŸãšã¯2ã€ã®éãããããŸãã
- smartctlãJSONãè¿ããªã
- ãµãŒããŒã«ã¯ç°ãªãæ°ã®ãã£ã¹ã¯ãååšããå¯èœæ§ãããããã äœã¬ãã«æ€åº ïŒLLDïŒã䜿çšããå¿ èŠããããŸãã
ãããã倧ããããšã¯ãããŸããïŒ ç¬¬äžã«ãåŸå±ããŒã¿èŠçŽ ã¯LLDã§ãæ©èœãã第äºã«ãååŠçãã£ã«ã¿ãŒã®äžã«PCREæ£èŠè¡šçŸããããŸãã ããã䜿çšããŠããŠãŒãã£ãªãã£ã®è¶ æ§é åãããŠããªãåçããå¿ èŠãªã€ã³ãžã±ãŒã¿ãååŸããŸãã ãã®ãããªãã®ïŒ
å§ããŸãããã
UserParametersã®ç°¡çŽ å
ããã¯ïŒ
UserParameter=uHDD[*], sudo smartctl -A $1| grep -i "$2"| tail -1| cut -c 88-|cut -f1 -d' ' UserParameter=uHDD.model.[*],sudo smartctl -i $1 |grep -i "Device Model"| cut -f2 -d: |tr -d " " UserParameter=uHDD.sn.[*],sudo smartctl -i $1 |grep -i "Serial Number"| cut -f2 -d: |tr -d " " UserParameter=uHDD.health.[*],sudo smartctl -H $1 |grep -i "test"| cut -f2 -d: |tr -d " " UserParameter=uHDD.errorlog.[*],sudo smartctl -l error $1 |grep -i "ATA Error Count"| cut -f2 -d: |tr -d " " UserParameter=uHDD.discovery,sudo /etc/zabbix/scripts/smartctl-disks-discovery.pl
次ã®ããã«ãªããŸããïŒ
UserParameter=uHDD.A[*],sudo smartctl -A $1 UserParameter=uHDD.i[*],sudo smartctl -i $1 UserParameter=uHDD.health[*],sudo smartctl -H $1 UserParameter=uHDD.discovery,sudo /etc/zabbix/scripts/smartctl-disks-discovery.pl
for / Fãšfindã䜿çšããŠãCMDããžãã¯ãåæã«åé€ããWindowsã«å¯ŸããŠãåãããšãè¡ããŸã ã ãã¡ãã§èŠããŸã ã
æ°ãã芪ããŒã¿ã¢ã€ãã ãäœæãã
ãã¹ãŠã®SMARTå±æ§ãåéããã«ã¯ããã¹ã¿ãŒããŒã¿èŠçŽ ã®ãããã¿ã€ããäœæããŸãã

åã®äŸã®ããã«ãç¹å¥ãªèšå®ã¯å¿ èŠãããŸããã æ å ±ã¿ã€ãã®ã¿ãããã¹ãã§ãããä¿åæéã¯1æ¥ã§ãã
ãã¹ãçµæãšã€ã³ãã³ããªããŒã¿ãåéããã«ã¯ãä»ã®ããŒã§smartctlãå®è¡ããå¿ èŠããããŸãã ãããã£ãŠãåãæ¹æ³ã§ãããã«2ã€ã®ããŒã¿èŠçŽ ãäœæããŸãã
- uHDD.i ["{ïŒDISKNAME}"]
- uHDD.health ["{ïŒDISKNAME}"]
SMARTãã©ã€ãå±æ§ã®ååŸãã»ããã¢ãããã
å±æ§5ãåé 眮ã®åŸå±ããŒã¿é ç®ãäœæããŸãã

ãããŠããååŠçãã¿ãã§ã¯ãæ£èŠè¡šçŸã䜿çšããŸãã

JSONãã¹ãšåæ§ã«ããããã°ããšã©ãŒã®ãã£ããã«å€ãã®æéãè²»ãããªãããã«ãæ£èŠè¡šçŸãå ¥åããåã«ãåŒã®æ£ç¢ºæ§ããªã³ã©ã€ã³ã§ãã°ãã確èªãããšäŸ¿å©ã§ããããšãã°ãregex101.comã§smartctlåºåãã³ããŒããŸãã
ãã®çµæããããã¿ã€ãã®ãã®ãããªãªã¹ããååŸããŸãã

ãã¹ããäœãèµ·ãã£ãããèŠã
2å°ã®HDDã®å ŽåïŒ

Windowsã®SSDã®å ŽåïŒ

smartmontoolsã䜿çšããäŸãèŠçŽããã«ã¯ïŒ
- UserParametersãããã¹ãŠã®è§£æãåé€ããŸãã
- å€éšã¹ã¯ãªããã¯ãããŸããïŒLLDãé€ãïŒãå€éšäŸåé¢ä¿ã¯ãããŸããããã¹ãŠã®è§£æã¯ZabbixãµãŒããŒã§è¡ãããå¿ èŠã«å¿ããŠããã«è¡šç€ºããŠä¿®æ£ããã®ã¯ç°¡åã§ãã
- ãŠãŒãã£ãªãã£ãŸãã¯APIãXML / JSONãè¿ããªãå Žå-é¢ä¿ãããŸãããåžžã«æ£èŠè¡šçŸã䜿çšããŠã¿ãŠãã ããã
- ããŒããã©ã€ããããèŠãããŸãããæåã«SMARTãã©ã¡ãŒã¿ãŒã®å šãªã¹ããååŸãã次ã«ZabbixãµãŒããŒã§ã¡ããªãã¯ã«é 眮ããŸãã
æŽæ°ããããã³ãã¬ãŒãïŒåæã«æŽæ°ãããããªã¬ãŒãSSDã®ããŒã¿èŠçŽ ã®è¿œå ïŒã¯ãshare.zabbix.comã®ãœãªã¥ãŒã·ã§ã³ãªããžããªïŒ ãã¡ã ïŒããå ¥æã§ããŸã ã
æåŸã«
ã¡ããªãã¯ã®å€§éåéã¯ããããã¯ãŒã¯ã®è² è·ãšç£èŠå¯Ÿè±¡ã·ã¹ãã ã®ãªãœãŒã¹ãåæžããå€éšã¹ã¯ãªããã®å¿ èŠæ§ãæžããããã®ã·ã³ãã«ã§ç°¡åãªæ¹æ³ã§ãã å€ãã®ZabbixãŠãŒã¶ãŒãæ°ã«å ¥ã£ãŠããããšç¢ºä¿¡ããŠããŸãã
PSãã®èšäºã¯ã ããã°ã§ãè±èªã§å ¥æã§ããŸãã