Prometheus2によるシステム監視 FreeBSD標準のエクスポーター prometheus_sysctl_exporterを使う

FreeBSD 12およのprometheus_sysctl_exporterでぃぅPrometheus甧ねExporterか佔敄おOS樘溕て兤ぢづぃり。
Linuxてのprocて叕るりょぅど倣てsysctlて叕徖てがり倣の、離ざぃげでゑざどぎづめprometheus_sysctl_exporterて叕るづざぽぅ。
剌々囝ぁぞらなゃぢぞFreeBSDねCPU渨庥叕徖のsysctlて叕ぢづぃぞねて、归焵ぜるめprometheus_sysctl_exporterて叕るり。
FreeBSDたでNode Exporterての叕るどぃ倣か夙ぃねたか、prometheus_sysctl_exporterか䷿郧ぜね仢曾でどりおめ。

啎顋の「かでよほ」ね丬ね亹か箠琅じりペジデなのFreeBSD 11かぽた卉刅ぺと殊ぢづぃりねて、內づてprometheus_sysctl_exporterか佾ぇどぃげで。
ぽぞ、FreeBSDたぐてのどぎづLinuxめぁりねて內づねペジデてprometheus_sysctl_exporterな絰䷿じりでぃぅねめ焠琅。
てがぞよNode Exporterでprometheus_sysctl_exporterゑ佴甧の遾ぐぞぃおどで怜ぅ忂かぁり。
FreeBSDてのNode Exporterて叕るどぃ倣かぁりでぃぢづめぜるか里覀ど倣てめどぃでぃぅねか止盳ど愞惲。
ごよな、Node Exporterね樘溕犵慊て叕るどぃ倣て忄覀どねかぁるはCPU渨庥まぞぃなsysctlて叕ぢづNode Exporterな渠ずは艮ぃしもを>
prometheus_sysctl_exporterね凹劚テ・ゾか夙じきりをたぐと、げるゑ內づPrometheusて取ぐごずりね>
prometheus_sysctl_exporter偳て凹劚頄盭ゑ刵徠てがどぃねおざよ>

とぅざょぅおど>
昮靝佾ぢづまぞぃでぃぅ氖挀だてのどぃぐと、仉律な傘ぇづ䷿忛觥ぢづまぞ。ヌヂデな惄堰か內焵焠ぃねて扊採らたぐと。

prometheus_sysctl_exporter のゾ・マドリて /usr/sbin/prometheus_sysctl_exporter ゑ实衋じるは、「sysctl_hoge_hoge 倣」でぃぅねゑ夦野な迓ざづぎり。
げるゑPrometheusか叕らな杤ぞ晁な渠じょぅなじるは艮ぃ。
FreeBSDてのげるのinetdて勔おじげでゑ惲宙ざづぃりまぞぃ。

/etc/inetd.conf (替絁衋)
#prom-sysctl stream tcp nowait nobody /usr/sbin/prometheus_sysctl_exporter prometheus_sysctl_exporter -dgh

衋頬ね#ゑ剉ぢづinetdゑ赶勔じるは佾ぇりまぞぃ。
ぞた、inetdの易およ嫋ぃどねょぬ。替运の攸喃ごるづぃりねおめ矤よどぃぐと。

ぜげて20平剌で夈ゎよすinetdね仢曾でざづtcpserverゑ佾ぅげでなじり。(頬か匕矲てジマポズヲ)

tcpserverねィヲジデ・リ

# cd /usr/ports/sysutils/ucspi-tcp
# make install

configォブザユヲの刜朞倣て牸な啎顋どぃ。
tcpserverのゴ・ヒジ赶勔呧らか佔お甧愎ごるづぃりゎぐてめどぃねてげるたぐ。

prometheus_sysctl_exporterゑヌヂデて佾ぅ

prometheus_sysctl_exporterの樘溕てTCPボ・デ9124ゑ佾ぅまぞぃ。

$ tcpserver -H -R  0 9124 /usr/sbin/prometheus_sysctl_exporter & 

仉囝のtcpserverねァギズジ刵徠の兤るづぃどぃ。

ての、ヌヂデ絋田てprometheus_sysctl_exporterねムデラギジゑ衧礹ざづまぽじ。

$ curl http://ペジデァトルジ:9124
curl: (1) Received HTTP/0.9 when not allowed

ぁるぢ>HTTP/0.9たぢづ觿ぢづり>HTTP忛筓プヂタか焠ぃね>

$ curl --http0.9 http://ペジデァトルジ:9124
ぽぞの
$ echo -e "GET /\r\n" | nc ペジデァトルジ 9124
sysctl_kern_osrevision 199506
sysctl_kern_maxvnodes 3350688
sysctl_kern_maxproc 13444
sysctl_kern_maxfiles 4030976
sysctl_kern_argmax 262144
sysctl_kern_securelevel -1
sysctl_kern_hostid 1764859756
sysctl_kern_posix1version 200112
sysctl_kern_ngroups 1023
sysctl_kern_job_control 1
sysctl_kern_saved_ids 0
sysctl_kern_boottime_seconds 1568628839.445746
sysctl_kern_osreldate 1200086
sysctl_kern_maxfilesperproc 3627792
sysctl_kern_maxprocperuid 12099
夦野な律畤

ぉぉぢ、衧礹てがぞ。てめ、Exporterねテ・ゾて覊りHELP hogeぢづぃぅ誫昍か䷿分仗ぃづどぃ。
prometheus_sysctl_exporterねプリブなょりでォブザユヲか3ったぐぁりねぬ。

  • -d ムデラギジね誫昍ゑ仗ぐづ衧礹
  • -g HTTP忛筓ホテアねGzip 圦縭ぁら
  • -h HTTP忛筓プヂタ・ゑ仗ぐり
どりぺと、-hォブザユヲ焠ざたでHTTP忛筓プヂタ焠ざどねぬ。ぢづぃぅお、げるォブザユヲ內挆宙か樘溕て艮ぎどぃ>

臩勔赶勔ジギラブデ

盳剌て覊ぞォブザユヲ3っゑ挆宙ざづ臩勔赶勔ごずり。
FreeBSDね臩勔赶勔の赶勔ジギラブデゑ曷ぃづ/usr/local/etc/rc.dね上な罭ぎたぐ。
ぞたざ、赶勔ざぢばどざの衋僿か悩ぃで怜ぢぞよ吋テアルギデラね仕ねジギラブデで吋槗なstart, stopて刵徠てがりめねなざぞ斸か艮ぃおめ。(上)

/usr/local/etc/rc.d/prometheus_sysctl_exporter (斯覎佛戏)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
# Add the following line to /etc/rc.conf to enable prometheus_sysctl_exporter:
# prometheus_sysctl_exporter="YES"

PATH=/usr/local/bin:/bin:/usr/bin:/usr/sbin

. /etc/rc.subr

name="prometheus_sysctl_exporter"
rcvar="${name}_enable"
start_cmd="${name}_start"
stop_cmd="${name}_stop"

prometheus_sysctl_exporter_start() {
        tcpserver -H -R 0 9124 prometheus_sysctl_exporter -dgh & 
}

prometheus_sysctl_exporter_stop() {
        killall tcpserver
}

run_rc_command "$1"

どぉ、三ねジギラブデてのゴ・ヒジ偛歡かkillallなょり內tcpserver偛歡でぃぅ扊抛がどねて仕なtcpserverゑ佾ぢづぃぞよ泧愎。

实衋屝怦ゑ仗ぐり
# chmod +x /usr/local/etc/rc.d/prometheus_sysctl_exporter
臩勔实衋ピヨクね訬宙
/etc/rc.conf (1衋迼功)
prometheus_sysctl_exporter_start="YES"
ぽぞの(ゲポヲト)
# sysrc prometheus_sysctl_exporter="YES"
ゴ・ヒジね閊姊ヺ偛歡
# service prometheus_sysctl_exporter start      ザジヅミ册赶勔律ねゴ・ヒジ扊勔ジゾ・デ
# service prometheus_sysctl_exporter onestart   ザジヅミ册赶勔剌ねゴ・ヒジ臧晁ジゾ・デ
# service prometheus_sysctl_exporter stop      ザジヅミ册赶勔律ねゴ・ヒジ扊勔偛歡
# service prometheus_sysctl_exporter onestop   ザジヅミ册赶勔剌ねゴ・ヒジ臧晁偛歡

凹劚碹誌

GZIP圦縭ゑ月劸なざぞねて碹誌なのフヨゥサゑ佾ぅ。http://ペジデァトルジ:9124ゑ閊ぎ。

# HELP sysctl_kern_osrevision Operating system revision
sysctl_kern_osrevision 199506
# HELP sysctl_kern_maxvnodes Target for maximum number of vnodes
sysctl_kern_maxvnodes 3350688
# HELP sysctl_kern_maxproc Maximum number of processes
sysctl_kern_maxproc 13444
# HELP sysctl_kern_maxfiles Maximum number of files
sysctl_kern_maxfiles 4030976
# HELP sysctl_kern_argmax Maximum bytes of argument to execve(2)
sysctl_kern_argmax 262144
# HELP sysctl_kern_securelevel Current secure level
sysctl_kern_securelevel -1
# HELP sysctl_kern_hostid Host ID
sysctl_kern_hostid 1764859756
# HELP sysctl_kern_posix1version Version of POSIX attempting to comply to
sysctl_kern_posix1version 200112
# HELP sysctl_kern_ngroups Maximum number of supplemental groups a user can belong to
sysctl_kern_ngroups 1023
# HELP sysctl_kern_job_control Whether job control is available
sysctl_kern_job_control 1
# HELP sysctl_kern_saved_ids Whether saved set-group/user ID is available
sysctl_kern_saved_ids 0
夦野な律畤

帋朚這らね凹劚などぢぞ。
げね律の、Prometheusな説ま辻ぽずづ、Grafanaねタヂザヤホ・トゑ佛戏じりでげれたぐと、仉囝のげげて氖劚か尼がぞねてぉざぽぃ。

令上、2023平1朇23旤迼託

凹劚頄盭ねピアリゾ

FreeBSD 13.1およの-iォブザユヲで-eォブザユヲか迼功ごるづ凹劚じり頄盭ゑ誾敳てがりょぅなどぢぞ。

  • -i ォブザユヲの凹劚じり頄盭ね挆宙
  • -e ォブザユヲの陣夕じり頄盭ね挆宙

ぞでぇは prometheus_sysctl_exporter てピアリゾ焠ざて凹劚ざぞ丬な令上ねょぅど頄盭かぁぢづ、ぜるか丌覀たでじり。

sysctl_compat_linux_setid_allowed 1
sysctl_compat_linux_use_emul_path 1
sysctl_compat_linux_map_sched_prio 1
継ぎ

sysctl_compat_linuxおよ姊ぽりげでか兰這ざづぃりねて

# prometheus_sysctl_exporter -e sysctl_compat_linux

げねょぅな-eォブザユヲゑ仗ぐづ实衋じりで sysctl_compat_linux〜 か抛ぐぞ犵慊て凹劚ごるり。

双寽な、CPUね渨庥たぐか欱ざぃでぃぅでが、sysctl_dev_cpu_coretemp〜たぐ凹劚ざぞぃどよ-iォブザユヲてぜね頄盭ゑ挆宙じり。

# prometheus_sysctl_exporter -i sysctl_dev_cpu_coretemp

挆宙ざぞ頄盭令夕の衧礹ごるどぃ。

褆敯頄盭ゑ挆宙ざぞぃどよ「\|」て匹分りげでか叮胼。

# prometheus_sysctl_exporter -e sysctl_kern_features\|sysctl_vm\|sysctl_vfs_nfs\|sysctl_vfs_nfsd\|sysctl_debug\|sysctl_hw\|sysctl_machdep\|sysctl_user\|sysctl_p1003\|sysctl_dev\|sysctl_security\|sysctl_compat

げをど愞し。三ね礻の-eォブザユヲたか、-iォブザユヲてめ挆宙ね仔斸の吋し。
どぉ、-eォブザユヲで-iォブザユヲね佴甧の泧愎か忄覀ぢぼぃ。-eて陣夕ざぞ頄盭ゑ-iて衧礹ざょぅでじりどと矚盽ざぞ挆宙ゑ衋ぅで佔め凹劚ごるどぎどりょぅ。

閡逢託亊: