TWSNNP FCでWebサーバーのMetricsを取得するポーリングを追加したい
今朝は6時半まで寝てしまいました。
SNMP TRAPとsyslogの文字コード自動変換は昨日できたので、今朝は、開発を休んでいる間に思いついたWebサーバーのMetricsを取得するポーリングを追加するための調査です。
このアイデアの元は、GO言語のWebサーバーfiberの
を見つけたことでした。
簡単に
{"pid":{ "cpu":0.4568381746582226, "ram":20516864, "conns":3 },
"os": { "cpu":8.759124087593099, "ram":3997155328, "conns":44,
"total_ram":8245489664, "load_avg":0.51 }}
のようなWebサーバーの動作情報を取得できます。
TWSNMP FCのHTTPポーリングを拡張して、この情報を取得できるようにしようと思いました。
他のWebサーバーについても調べてみました。
Apache2は
動かしてみると
# curl http://127.0.0.1/server-status?auto
127.0.0.1
ServerVersion: Apache/2.4.38 (Debian)
ServerMPM: event
Server Built: 2023-03-02T14:26:27
CurrentTime: Saturday, 01-Apr-2023 08:01:48 JST
RestartTime: Saturday, 01-Apr-2023 07:58:03 JST
ParentServerConfigGeneration: 1
ParentServerMPMGeneration: 0
ServerUptimeSeconds: 224
ServerUptime: 3 minutes 44 seconds
Load1: 0.74
Load5: 0.92
Load15: 0.66
Total Accesses: 4
Total kBytes: 17
Total Duration: 2
CPUUser: 0
CPUSystem: .01
CPUChildrenUser: 0
CPUChildrenSystem: 0
CPULoad: .00446429
Uptime: 224
ReqPerSec: .0178571
BytesPerSec: 77.7143
BytesPerReq: 4352
DurationPerReq: .5
BusyWorkers: 1
IdleWorkers: 49
Processes: 2
Stopping: 0
BusyWorkers: 1
IdleWorkers: 49
ConnsTotal: 0
ConnsAsyncWriting: 0
ConnsAsyncKeepAlive: 0
ConnsAsyncClosing: 0
Scoreboard: ___W______________________________________________....................................................................................................
のような情報が取得できました。
nginxは
です。試してみると
% curl http://192.168.1.4:8881/nginx_status
Active connections: 1
server accepts handled requests
7 7 9
Reading: 0 Writing: 1 Waiting: 0
のような感じです。
なんとなくポーリングを作れそうですが、今朝はここまで
明日に続く
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。