nginxの状態を取得
stub_status
ちょっと前にnginxが今どのくらいのコネクション数なのかの数値を取得したいと思うことがあって、調べたところstub_statusなるものが見つかったので実際にやってみました。
まず、HttpStubStatusModuleが有効になっている必要があります。
下記入っていれば有効
$ nginx -V --with-http_stub_status_module
nginx.conf
下記のように設定します
/nginx_statusへのパスでアクセスで情報を取得できます。
server{ location /nginx_status { stub_status on; #有効化 access_log off; #アクセスログに残さない allow 127.0.0.1; #ローカルからのみアクセス可能 deny all; } }
実際に試してみる
実際にローカルから叩いてみるとこんな感じになります。
$ curl http://127.0.0.1/nginx_status Active connections: 1 server accepts handled requests 135 135 451 Reading: 0 Writing: 1 Waiting: 0
- Active connections
- 現在の接続数
- server accepts handled requests
- 受け付けた接続総数
- 制御した接続総数
- 制御した要求総数
- Reading
- リクエストヘッダーを制御している数
- Writing
- リクエストボディーを制御している数またはクライアントへ返した数
- Waiting
- keep-alive接続数
この値を使ってgrowthforecastやelasticsearchに投げてモニタリングすれば傾向が分かってスケールアップなり対策が取れますね!