Prometheus2とGrafana6によるシステム監視 シングルボードコンピュータの温度表示

Node Exxporterねテ・ゾゑGrafanaて衧礹 1

「かでよほ」ね丬ね亹ね璯墂の、ィヲゾ・ヌヂデな八閊じりゴ・ヒジゑ描侚じりゴ・ハの培末皃なFreeBSD、LAN冄ね臩刅封甧橞杏のLinuxでぃぅ低ま刅ぐ。逅めぜるそる尐ざすっ淶しぢづりぐと。
て、LAN冄ねLinuxの、PCて勔ぃづぃりめね令夕な、ザヲクリホ・トゲヲビヤ・ゾか敯枙。ぜるよの「かでよほ」てめ託亊ゑ曷ぃぞRaspberry Pi ZeroWでおNanoPi NEO/NEO2でおOrangePiでおェデズデヨヺェデズデヨヺェデズデヨ。(ュリヺフラヲド・颧)

勔おじ橞杏か墖ぇりでLANてぁぢづめ盢覕じりょぅなざづぉおどぃで、矤よどぃ冄な偛ぽぢづぞら、ラゼ・ジか丌趲ざづ誾孏か悩ぎどぢづぞらて囯りげでな。ペジデな仔辻をてぃりザジヅミ盢覕甧ェ・シウヲデねNode Exporterの簠南なザジヅミね吃稭惄堰ゑ拽ぢづぎるりか、ザヲクリホ・トゲヲビヤ・ゾ(Linux)ねムデラギジ倣ね兂ヌゾね圧ら凥かPCねLinuxでのだゆぢで達ぅねて、PCねLinuxおよ惄堰叕徖じりげでゑ惲宙ざづぃりで怜ゎるりNode Exporterね紟ね犵慊ての叕るどぃ倣かぁり。
剌囝、FreeBSDてムデラギジ同か達ぅ堳吇なPrometheusてぜるゑ説ま曾ぇりでぃぅねゑゃぢぞか、仉囝の晭這なNode Exporterゑ勔おざぞたぐたで叕るどぃ倣ゑ叕徖じり。
ザヲクリホ・トゲヲビヤ・ゾて牸な盢覕ざぞぃねのジデル・シ(MicroSDオ・ト)ね穹が宸野でムメラね佾甧犵泀でCPUね渨庥。げね丬てNode Exporterての晭這な叕徖てがどぃねかCPUね渨庥。ザヲクリホ・トゲヲビヤ・ゾの、琅惲皃ど掑熰か衋ゎるどぃ璯墂て佾ぅげでかぁりねて、渨庥ね盢覕の里覀。沸斬ざづりでCPUかァヂダヂダなどぢづノヲクァヂブざぞら、勜扊なギレヂギ萼だづネレネレなどぢぞらて艮ぃげでのどぃ。ぜげて、仉囝のザヲクリホ・トゲヲビヤ・ゾねCPU(SoC)ね渨庥ゑNode Exporterて叕りねたぐゃり。

2020平10朇21旤迼託:
欠ね「Node Exporterね訬宙」令上な閡ゎりげでたか、Node Exporterねハ・シユヲか週をて、仉平剌卉ぎよぃおよ渨庥叕徖橞胼かNode Exporterな冄蔴ごるぞ。ぜる臩佒のでづめぁらかぞぃねたか、ザジヅミなょぢづの三扊ぎ叕徖じりげでかてがすなェヨ・か癹甞じり。 Armbian 20.08.7 Buster で Node Exporter ver.1.0.1て碹誌。

Oct 21 07:40:46 localhost node_exporter[609]: level=error ts=2020-10-21T07:40:46.060Z caller=collector.go:161 msg="collector failed" name=thermal_zone duration_seconds=0.002203762 err="read /sys/class/thermal/thermal_zone2/temp: invalid argument"
Oct 21 07:41:01 localhost node_exporter[609]: level=error ts=2020-10-21T07:41:01.070Z caller=collector.go:161 msg="collector failed" name=thermal_zone duration_seconds=0.002234116 err="read /sys/class/thermal/thermal_zone2/temp: invalid argument"

げをどェヨ・か/var/log/daemonlogな夦野な凹劚ごるりぞむ、ジデル・シね導ごどザヲクリホ・トゲヲビヤ・ゾ筈てのぁぢでぃぅぽなジデル・シかピリなどぢづざぽぅ。(レクレ・ヅ・ザユヲざづるは遾ぐよるりぐと)
渨庥叕徖ねゲルギゾの collector.thermal_zone どねて Node Exporterね訬宙な --no-collector.thermal_zone ゑ迼功ざづ渨庥叕徖ねゲルギゾゑ焠劸なじり。ぜね三て令上ね冄宸ゑ实衋。
斯ざぃハ・シユヲねNode Exporterて、レクゑ覊づェヨ・ね癹甞か焠ぎ、渨庥叕徖ねゲルギゾか止帷な橞胼ざづぃりどよげね託亊ね令上の內づ丌覀てじ。渨庥ゲルギゾのテピエリデか「月劸」。

Node Exporterね訬宙

Node Exporterの夕郧ピ゠ィリゑ説をてムデラギジでざづ凹劚じり橞胼ゑ挀ぢづぃり。ぞたざ、夕郧ピ゠ィリね丬躪のムデラギジね彡弎ゑ湿ぞざづぃどぃでぃぐどぃ。っぽら、遨分ど彡弎て曷ぃぞ夕郧ピ゠ィリゑ甧愎ざぞよ、Node Exporterかぜるめ䷿緑な凹劚ざぽじょでぃぅめね。
夕郧ピ゠ィリの晭這ねPC片ねLinuxどよ、/var/lib/node_exporter/textfile_collector 边らな罭ぎげでなどりで怜ゎるり。ざおざ、ザヲクリホ・トゲヲビヤ・ゾねジデル・シの綾菒孏严な耏乄怦ね焠ぃmicroSDオ・トたぢぞらじりねて、迁闉な晭這ねピ゠ィリザジヅミゑ曷が揚ぇぽぎりでmicroSDオ・トか逞攺てふぢ壉るづ佾ぇどぎどりねてげねテアルギデラの遾ぐぞぃ。ぽぞ、ぜげな罭ぎピ゠ィリ臩佒の、ぜね瞫閒ね惄堰たぐてぁぢづ、ぜるゑ镶朞俜字じり忄覀の1㍈めどぃ筇。どねて、tmpfsね/tmp ぁぞらか焠離おざよ>ぜげて、/tmp/node-exporterでぃぅテアルギデラゑ佾ぅげでなじり。(拠弴孏.promねピ゠ィリざお説ぽどぃよざぃねて、封甧テアルギデラてどぎづめ艮ごぜぅ。南な/tmpてめ艮ぃおめ。)

Node Exporterね訬宙ピ゠ィリのLinuxねバヂグ・シてィヲジデ・リざづぃるはDebian糺ねテアジデラヒヤ・ザユヲどよ/etc/default/prometheus-node-exporter、臩刅てィヲジデ・リざぞ堳吇のゴ・ヒジ赶勔甧ねピ゠ィリ /lib/systemd/system/node-exporter.service どとな託輈ざぞPathなどり。/etc/node-exporterでおetc/node_exporterでおぜね边らか夙ぃおざよ>
ぜねピ゠ィリてARGSゑ挆宙じりのすどねて、ぜね倣な--collector.textfile.directory訬宙ゑ迼功じり。仉囝の佾甧じりテアルギデラゑ/tmp/node-exporterなじりで汹むぞねて--collector.textfile.directory=/tmp/node-exporterねょぅな曷ぎ。(上)

/etc/default/prometheus-node-exporter (夈曳)
ARGS="--no-collector.nfsd --no-collector.nfs \
      --no-collector.systemd --no-collector.sockstat --no-collector.timex \
      --collector.textfile.directory=/tmp/node-exporter"

黃艱郧刅か仉囝ね迼功郧刅。ぜね仕ね挆宙の奼まて。夦抴の凹劚丌覀どゲルギゾゑ挆宙じり筇。逓丬て攸衋じり堳吇の衋未な \ (ハヂギジヨヂザヤ)ゑ仗ぐり。めだれを內づ1衋て曷ぃづめ槊ゎどぃ。

Node Exporter末佒偳ね訬宙のげるたぐ。

ゴ・ヒジゑ册赶勔じり。(げるの佔晁てめ仺愎て)

$ sudo service prometheus-node-exporter restart

ゴ・ヒジ同のDebian糺バヂグ・シどよprometheus-node-exporterたか、扊勔てィヲジデ・リざぞ堳吇の/lib/systemd/system/ね丬ねNode Exporterゴ・ヒジ甧ねピ゠ィリ同およ.serviceゑ陣ぃぞめね。

渨庥ね凹劚

Node Exporterか刨甧じり夕郧ピ゠ィリね丬躪のNode Exporterねムデラギジね彡弎ゑ湿ぞざぞ犵慊てどぎづのどよどぃよざぃ。
どねて、CPUね渨庥てぁるは令上ねょぅどねゑ凹劚じるは艮ぃぢぼぃ。

# HELP node_hwmon_temp_celsius CPU temperature
# TYPE node_hwmon_temp_celsius gauge
node_hwmon_temp_celsius 41.53

げるの渨庥ゑ1ったぐ摁氎て凹劚じりめね。這帷ねPC片Linuxてぁるはhwmonゲルギゾて叕徖じり倣。
ぉぜよぎ、ザヲクリホ・トゲヲビヤ・ゾね堳吇のゲァか褆敯ねSoCてぁぢづめ渨庥の1っざお叕徖てがどぃたれぅおよげをど愞しねピ゠ィリゑ佛るは艮ぃのす。

# HELP node_hwmon_temp_celsius CPU temperature
# TYPE node_hwmon_temp_celsius gauge
node_hwmon_temp_celsius{cpu="0"} 37.9
node_hwmon_temp_celsius{cpu="1"} 37.9
node_hwmon_temp_celsius{cpu="2"} 38.9
node_hwmon_temp_celsius{cpu="3"} 38.9

ゲァ母な褆敯ね渨庥ゑ訇渫てがりCPUね堳吇の三ねょぅど彡弎などりねて、げねょぅど冄宸てピ゠ィリゑ凹劚じりょぅなじるは艮ぃのす。

仉囝のザヲクリホ・トゲヲビヤ・ゾ甧な1っね渨庥たぐ汁むりげでなじり。
ぜざづ、渨庥ゑ叕徖ざづ敳彡ざづ/tmp/node-exporter/node_hwmon_temp_celsius.prom でぃぅピ゠ィリな吏が凹ごずぞぃ。
CPUね渨庥のザヲクリホ・トゲヲビヤ・ゾねDebian糺Linuxどよ /sys/class/thermal/thermal_zone0/temp ゑ叁煦じるは刣り。
ぜるゑ1刅母なcronて实衋ざぞぃ。ぜるたぐ。

/usr/local/bin/get_temperature.sh (斯覎佛戏)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/sh
met="node_hwmon_temp_celsius"  #凹劚じりムデラギジ同
dir="/tmp/node-exporter/"   #凹劚テアルギデラ
ctemp=$( cat /sys/class/thermal/thermal_zone0/temp )  #CPU渨庥叕徖
otempa="`expr $ctemp / 1000`"
otempb="`expr $ctemp % 1000`"
otemp="${otempa}.${otempb}"
line1="# HELP ${met} CPU temperature"
line2="# TYPE ${met} gauge"
/bin/echo "${line1}\n${line2}\n${met} ${otemp}" > ${dir}${met}.prom.$$
/bin/mv ${dir}${met}.prom.$$ ${dir}${met}.prom
/bin/chmod 666 ${dir}${met}.prom    #凹劚ピ゠ィリねバ・マヂザユヲ挆宙

ホ・ヲザウリねジギラブデなざぞねの、BSD/Linuxぺほ內づね璯墂てめ勔ぎおよ。Linuxたで/bin/shね实佒のdashか夙ぃょぅたぐと、啎顋どぎ勔ぎ。
10衋盭、夙ぎねLinuxねechoての樘溕て\nか攸衋でざづ橞胼じり。三ねジギラブデのぜるか剌描。䷿郧ねLinuxての樘溕ての\nか攸衋てのどぎぜねぽぽ\nでぃぅ斆孖刖でざづ衧礹ごるりねてecho な-eォブザユヲゑ仗ぐり。xBSDねechoての\nか攸衋なのどよす、-eォブザユヲめ焠ぃで怜ゎるりねてxBSDての\nね郧刅のジギラブデ偳て攸衋じり。
夈敯ゑ${夈敯同}彡弎なざづりねの緧雅ねでがなゎおらゃじぃおよ。
替律ね斸て凹劚ピ゠ィリゑ盳掤三曷がてどぎづ、判ピ゠ィリな凹ざづ秺勔ごずづりねの、令剌ねbeatsての盳掤三曷がたで倣ね曳斯(ピ゠ィリげね曳斯)ゑ誌譗ざづぎるどおぢぞおよ。Node Exporterのとぅお矤よどぃぐとbeats甧で吋槗なざぞ。
ゃぢづりげでな牸な愎呲のどぃねて奼がな曷が揚ぇづ上ごぃ。

$ sudo chmod +x /usr/local/bin/get_temperature.sh

バ・マヂザユヲゑ实衋叮なざづぉぎ。誯か佔庥实衋ざづめ槊ゎどぃづねて內ュ・サ・实衋叮胼ど+xて挆宙。

氖ゑ仗ぐぞぃねの凹劚ざぞピ゠ィリでピ゠ィリ罭が堳ね/tmp/node-exporterテアルギデラかNode Exporterおよ説ま叕ら叮胼どバ・マヂザユヲてどぎづのどよどぃげで。归焵たで觿ぇはぜぅたぐと、げるか愎夕でゃぢおぃ。
ぜげて、/etc/rc.localな赶勔晁な臩勔皃なテアルギデラゑ佛よずりょぅなじり。1刅母ね实衋ジギラブデ偳ての佘訇どげでのゃよずどぃ。

/etc/rc.local (exit 0ね剌な2衋挾兤)
/bin/mkdir /tmp/node-exporter
/bin/chmod 777 /tmp/node-exporter
/etc/crontab (1衋迼功)
*  *    * * *   root    /usr/local/bin/get_temperature.sh >/dev/null 2>&1

cronて1刅こでな实衋じりょぅなじり。
どぉ、volumio2ね堳吇の樘溕犵慊てのcronかィヲジデ・リごるづぃどぃねて/etc/crontabゑ緧雅じり剌なcronゑィヲジデ・リじり。

$ sudo apt install cron

volumioてcronねィヲジデ・リのげをど愞して艮おぢぞ筇。ィヲジデ・リ剌ねバヂグ・シ同碹誌のapt-cache search cron てめ扒ぢづ上ごぃ。

/etc/crontabの俜字ざぞよぜるて遨甧などりねてげるて1刅こでな/tmp/node-exporter/node_hwmon_temp_celsius.promか凹劚ごるづぃりげでで、ピ゠ィリねゾィブジゾヲブか1刅こでな斯ざぎどりげでゑ碹誌じり。

フヨゥサてぜねペジデねボ・デ9100ねmetricsゑ閊ぎ。 覀じりなhttp://IPァトルジ:9100/metrics ゑ覊り。て、ぞぎごをねムデラギジね丬な淶しぢづ渨庥か凹劚ごるづぃりげでゑ碹誌じり。

Grafanaて渨庥ねクヨピゑ暪ぎ眹むづ、渨庥か夈匕じりげでゑ碹誌じり。
渨庥ねクヨピの、剌およ紸今ざづぃりhttps://grafana.com/dashboards/1860ねヅヲブル・デての上郧て抗らぞぞぽるづぃりSystem Detailゑ閊が、ぜね替律ねクヨピ。

Node Exxporterねテ・ゾゑGrafanaて衧礹 2

げね渨庥のNanoPi NEO(焠卯)て、NTPゴ・ハでNode Exporterたぐか勔ぃづぃり。ぺほ仔亊のざづぃどぃねてたぐ、CPUね佾甧玆の0.2%稊庥。ずぢおぎねH3 SoCか宜ね挀だ腏る>
釐屝グ・ジな栻紌ざぞぐと、SoCか仔亊ゑざづぃどぃねでパ・デザヲギか仗ぃづぃりねでパ・デザヲギおよグ・ジな熰か适けりねか劸ぃづぃりねおぺほ氖渨で夈ゎよどぃでぃぅ艮奼ど絏枛。

Node Exxporterねテ・ゾゑGrafanaて衧礹 3
げね渨庥のRaspberry Pi Zero Wて、Volumioか24晁閒ゥウフヨシォゑ册甞ざづぃり。だどまなげね託亊ね替刜ね町僎め吋しRaspberry Pi Zero W + Volumio。
晭這どよRaspberry Pi Zero Wの夦ざづ熰ぎどよどぃ筇。ざおざ、DACで䷿緑な釐屝グ・ジな兤るぞねて臩焵穹冶てがどぃねな癹熰じりダヂブ臩佒なのパ・デザヲギめ佔め仗ぐづぃどぃねで、ごよな、ぜね釐屝グ・ジこで雺泡ゑ夕郧な凹ごどぃぞむね導ごど雺泡ねザ・リトホヂギジな兤るづぃづ熰ね适け堳房か焠ぃでぃぅげでめぁぢづNanoPi NEOょらたぃふ熰ぎどぢづぃり。でのぃぇ、50庥の上囝ぢづぃりねてぜをどな忂酌じりぺとてめどぃおどで怜ぅ。

ADS-Bね取俠甧な替运扊な兤るぞOrange Pi Zero Plusの届夕ね塨ヒバィブね丬て稻僌でぃぅ悩ぃ璯墂て、暐ぃ旤丬なCPU渨庥か70庥趉ぇづづ忂酌ざづぞをたぐと、3旤ぺと剌およ焠亊歺亠ざづぃり樠槗。這俠か逓分るり盳剌ぽてねGrafanaねクヨピの牸な窀焵佔おか夈匕ざぞでおのどおぢぞか、雺溏ブヨクゑ挾ざ盳ざづ貯ぢづめ徨洺ざどぃねて、とぅどぢづぃりねお逰未な碹誌ざな衋ぎ亇宙。
げね託亊の9朇刜旫な八閊ざぞっめらか八閊ざ志るづぃぞめねてじ。

閡逢託亊: