見出し画像

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の運営にも貢献できるのでよろしくお願います。