インストールガイド · 4 min read · Oct 26, 2025

Ubuntu 22.04にStatpingをインストールする方法

Statpingは、複数のサーバーにホストされているウェブサイトやアプリケーションを監視するオープンソースの稼働監視ツールです。さまざまなソースからリアルタイムデータを取得することで、美しいステータスページを生成できます。SQLite、MySQL、Postgresなど、複数のデータベースシステムと連携できます。このチュートリアルでは、StatpingのフォークであるStatping-ngを使用します。元のアプリケーションはもはや開発されていないためです。

このチュートリアルでは、DockerとNginxサーバーをプロキシとして使用して、Ubuntu 22.04サーバーにStatpingをインストールする方法を学びます。

前提条件

  • Ubuntu 22.04を実行しているサーバー。
  • sudo権限を持つ非rootユーザー。
  • 簡単なファイアウォール(UFW)が有効で実行中であること。
  • サーバーを指す完全修飾ドメイン名(FQDN)、例:status.example.com
  • すべてが更新されていること。 $ sudo apt update && sudo apt upgrade

ステップ1 - ファイアウォールの設定

パッケージをインストールする前に、最初のステップはHTTPおよびHTTPS接続を許可するためにファイアウォールを設定することです。

ファイアウォールの状態を確認します。

$ sudo ufw status

次のような出力が表示されるはずです。

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

HTTPおよびHTTPSポートを許可します。

$ sudo ufw allow http
$ sudo ufw allow https

再度状態を確認して確認します。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

ステップ2 - Dockerのインストール

Dockerの公式GPGキーを追加します。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg

次のコマンドを実行してDockerリポジトリを追加します。

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

システムを更新してDockerのリポジトリを含めます。

$ sudo apt update

DockerとDocker Composeプラグインをインストールします。

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

このチュートリアルでは、古いレガシーバイナリの代わりにDocker Compose v2プラグインを使用します。したがって、実行コマンドはdocker-composeからdocker composeに変更されており、ここに反映されています。

Dockerは特権で実行されるため、コマンドを実行するには頻繁にsudoを使用する必要があります。より良いオプションは、Linuxユーザーアカウントをdockerユーザーグループに追加することです。

$ sudo usermod -aG docker ${USER}

${USER}変数は、現在ログインしているシステムアカウントを取得します。特権を与えたいユーザーでログインしていない場合は、${USER}をユーザー名に置き換えてください。

新しいグループメンバーシップを適用するには、サーバーからログアウトして再度ログインするか、次のコマンドを使用します。ユーザーのパスワードが求められます。

$ su - ${USER}

ステップ3 - Nginxのインストール

Ubuntu 22.04には古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxの安定版リポジトリを追加します。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

システムリポジトリを更新します。

$ sudo apt update

Nginxをインストールします。

$ sudo apt install nginx

インストールを確認します。

$ nginx -v
nginx version: nginx/1.22.0

ステップ4 - SSLのインストール

SSL証明書を生成するためにCertbotをインストールする必要があります。Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。Snapdバージョンを使用します。

Ubuntu 22.04にはデフォルトでSnapdがインストールされています。次のコマンドを実行して、Snapdのバージョンが最新であることを確認します。

$ sudo snap install core

Certbotをインストールします。

$ sudo snap install --classic certbot

次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリへのシンボリックリンクを作成することで実行できることを確認します。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

次のコマンドを実行してSSL証明書を生成します。

$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d status.example.com

上記のコマンドは、サーバーの/etc/letsencrypt/live/status.example.comディレクトリに証明書をダウンロードします。

Diffie-Hellmanグループ証明書を生成します。

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

/etc/letsencrypt/renewal/status.example.com.confファイルを編集のために開きます。

$ sudo nano /etc/letsencrypt/renewal/status.example.com.conf

次のコードを下部に貼り付けます。

pre_hook = systemctl stop nginx
post_hook = systemctl start nginx

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

私たちはCertbotのスタンドアロンオプションを使用してSSL証明書を生成しました。証明書を作成するために自分のウェブサーバーを実行するため、更新中はNginxを停止する必要があります。pre_hookpost_hookコマンドは、更新の前後に実行され、Nginxサーバーを自動的に停止および再起動するため、手動での介入は不要です。

SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを行います。

$ sudo certbot renew --dry-run

エラーが表示されなければ、すべて準備完了です。証明書は自動的に更新されます。

ステップ5 - Docker Composeファイルの設定

Docker Composeファイル用のディレクトリを作成します。

$ mkdir ~/statping

そのディレクトリに移動します。

$ cd ~/statping

Docker Composeファイルを作成して編集のために開きます。

$ nano docker-compose.yml

次のコードを貼り付けます。

services:
  statping:
    container_name: statping
    image: adamboutcher/statping-ng
    restart: always
    ports:
      - 8080:8080
    volumes:
      - ./statping_data:/app
    links:
      - postgres
    depends_on:
      - postgres
    environment:
      DB_CONN: postgres
      DB_HOST: postgres
      DB_PORT: 5432
      DB_DATABASE: statping
      DB_USER: root
      DB_PASS: password123
      NAME: 'Howtoforge Statping page'
      DESCRIPTION: 'Statping Demo page'
      USE_ASSETS: 'true'
      SAMPLE_DATA: 'false'
      ALLOW_REPORTS: 'false'
      ADMIN_USER: navjot
      ADMIN_PASSWORD: yourpassword

  postgres:
    container_name: postgres
    image: postgres:14-alpine
    ports:
      - 5432:5432
    volumes:
      - ./pg_data:/var/lib/postgresql/data/pg_data
    environment:
      POSTGRES_PASSWORD: password123
      POSTGRES_DB: statping
      POSTGRES_USER: root
      POSTGRES_PORT: 5432
      PGDATA: /var/lib/postgresql/data/pg_data

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

StatpingとPostgresのDockerイメージを設定しています。Dockerファイルのほとんどは簡単に従うことができます。アプリデータとPostgresデータベースを保存するためにローカルディスクバックアップを使用しています。また、アプリケーションとデータベースを設定するためにいくつかの環境変数を構成しました。それらを見てみましょう。定義できる環境変数の完全なリストを取得するには、StatpingのGitHubリポジトリから公式リストを確認してください。

  • USE_ASSETS変数は、アプリがassetsフォルダからアセットを使用できるようにします。
  • SAMPLE_DATA変数は、Statpingがインストール中に構成するデフォルトのモニターを無効にするためにfalseに設定されています。
  • ALLOW_REPORTS変数は、Statpingが送信する匿名エラーレポートを無効にするためにfalseに設定されています。
  • ADMIN_USERADMIN_PASSWORD変数は、デフォルトユーザーのログイン情報を設定するために使用されます。
  • DB_変数は、Postgresコンテナに定義された変数と一致するデータベースの資格情報を設定するために使用されます。

ステップ6 - Nginxの設定

/etc/nginx/nginx.confファイルを編集のために開きます。

$ sudo nano /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;の前に次の行を追加します。

server_names_hash_bucket_size  64;

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

/etc/nginx/conf.d/statusping.confファイルを編集のために作成して開きます。

$ sudo nano /etc/nginx/conf.d/statusping.conf

次のコードを貼り付けます。status.example.comをあなたのドメイン名に置き換えてください。

upstream backend {
   server 127.0.0.1:8080;
   keepalive 32;
}

server {
  listen 80 default_server;
  server_name status.example.com;
  return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl http2;
   server_name status.example.com;

   http2_push_preload on; # Enable HTTP/2 Server Push

   ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;
   ssl_trusted_certificate /etc/letsencrypt/live/status.example.com/chain.pem;
   ssl_session_timeout 1d;

   # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
   ssl_protocols TLSv1.2 TLSv1.3;

   # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
   # prevent replay attacks.
   #
   # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
   ssl_early_data on;

   ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:50m;
   # OCSP Stapling --- fetch OCSP records from URL in ssl_certificate and cache them
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_dhparam /etc/ssl/certs/dhparam.pem;

   add_header X-Early-Data $tls1_3_early_data;

   access_log /var/log/nginx/statusping.access.log main;
   error_log  /var/log/nginx/statusping.error.log;

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_set_header X-Client-Verify  SUCCESS;
       proxy_set_header X-Client-DN      $ssl_client_s_dn;
       proxy_set_header X-SSL-Subject    $ssl_client_s_dn;
       proxy_set_header X-SSL-Issuer     $ssl_client_i_dn;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 1800s;
       proxy_connect_timeout 1800s;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the `$ssl_early_data` variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Nginxの設定を確認します。

$ sudo nginx -t

Nginxサーバーを再起動します。

$ sudo systemctl restart nginx

ステップ7 - Statpingを実行

Statpingディレクトリに移動します。

$ cd ~/statping

Dockerコンテナを作成して起動します。

$ docker compose up -d

コンテナの状態を確認します。

$ docker compose ps

次のような出力が表示されます。

NAME                COMMAND                  SERVICE             STATUS              PORTS
postgres            "docker-entrypoint.s…"   postgres            running             0.0.0.0:5432->5432/tcp
statping            "/bin/sh -c 'statpin…"   statping            running (healthy)   0.0.0.0:8080->8080/tcp

より詳細な状態を取得するには、docker psコマンドを使用できます。コンテナのログを確認するには、docker logs コマンドを使用します。

ステップ8 - Statpingを設定

コンテナが実行中になったので、ブラウザでhttps://status.example.comのURLを開くと、空白のステータスページが表示されます。Docker ComposeファイルでSAMPLE_DATA変数を省略すると、異なるサービスが事前に定義されたフルページが表示されます。

Statpingステータスページ

下部のダッシュボードリンクをクリックしてログイン画面にアクセスします。

Statpingログイン画面

デフォルトのユーザー名とパスワードの両方にadminを入力します。事前に入力されているように見えても、ユーザー名を入力することを確認してください。サインインボタンをクリックしてStatpingダッシュボードにアクセスします。

Statpingダッシュボード

新しいサービスを追加するには、作成ボタンをクリックし、必要な値を入力します。

Statpingサービス作成

下部のサービスを作成ボタンをクリックして完了します。メールやその他の通知を設定するには、設定ページに移動します。統計ページに新しい名前を付けることもできます。

ライブサービスを持つStatpingステータスページ

ステップ9 - Statpingの更新

Statpingのアップグレードは簡単なステップです。StatpingのDocker Composeディレクトリに切り替えます。

$ cd ~/statping

次に、既存のコンテナを停止して削除します。ただし、データは保持されます。

$ docker compose down --remove-orphans

StatpingのDockerイメージの最新バージョンをプルします。

$ docker compose pull

コンテナを再起動します。

$ docker compose up -d

Statpingのインストールが更新され、再起動されました。

結論

これで、Ubuntu 22.04サーバーにStatpingをインストールする方法を学んだチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。