Pushgatewayの概要とその使用方法

Pushgatewayとは

Pushgatewayは、Prometheusがデータを収集するための代替手段として利用されるツールです。通常、Prometheusはターゲットからメトリクスを直接取得しますが、特定のユースケースではアクティブにメトリクスをプッシュする必要があります。そのような場合に役立つのがPushgatewayです。

このプラグインは任意のノード上で動作し、監視対象のクライアントと同じマシン上にある必要はありません。ユーザーがカスタムスクリプトを作成して監視データをPushgatewayに送信し、そこからPrometheusサーバーへデータが転送されます。

Pushgatewayのインストールと設定

1. インストール手順

公式サイトからバイナリをダウンロードし、解凍後に実行可能です。以下のコマンドで簡単にインストールできます。

# ダウンロード
wget https://github.com/prometheus/pushgateway/releases/download/v1.0.0/pushgateway-1.0.0.linux-amd64.tar.gz

# 解凍および配置
tar -zxf pushgateway-1.0.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/pushgateway-1.0.0.linux-amd64 /usr/local/pushgateway-1.0.0
ln -sv /usr/local/pushgateway-1.0.0 /usr/local/pushgateway

# 実行
cd /usr/local/pushgateway
./pushgateway &

デフォルトではポート9091でリスニングを開始します。

2. systemdでの管理

Pushgatewayをsystemdで管理するために、以下のようなサービスファイルを作成します。

[Unit]
Description=Pushgateway Service
After=network.target

[Service]
ExecStart=/usr/local/pushgateway/pushgateway
Restart=always

[Install]
WantedBy=multi-user.target

これにより、システム起動時に自動的にPushgatewayが起動します。

カスタムスクリプトによるデータ送信

Pushgateway自体にはデータ収集機能はなく、単にデータを受け取るだけです。例えば、TCP接続数を監視するスクリプトを作成できます。

#!/bin/bash
HOST=$(hostname)
LABEL="tcp_connections"
COUNT=$(netstat -an | grep ESTABLISHED | wc -l)

curl --data-binary "$LABEL $COUNT" "http://localhost:9091/metrics/job/tcp_monitor/instance/$HOST"

このスクリプトを定期的に実行するためにcronジョブを使用できます。

* * * * * /path/to/script.sh

Pushgatewayの利点と欠点

Pushgatewayの主な特徴について、以下にまとめます。

  • 利点: 短期的なジョブや一時的なメトリクスを効率的に収集できる。
  • 欠点: 単一障害点となる可能性があり、同時に多くのスクリプトがデータを送信すると負荷がかかりやすい。
  • 欠点: 送信されたデータの検証やフィルタリングを行わないため、誤ったデータがPrometheusに転送されるリスクがある。

タグ: Prometheus Pushgateway systemd

10月20日 14:16 投稿