notebook

都内でWEB系エンジニアやってます。

nginxの状態を取得する

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に投げてモニタリングすれば傾向が分かってスケールアップなり対策が取れますね!