Prometheus と Grafana を使用した監視とアラート
StarRocks は、Prometheus と Grafana を使用して監視とアラートのソリューションを提供します。これにより、クラスタの稼働状況を可視化し、監視やトラブルシューティングが容易になります。
概要
StarRocks は、Prometheus 互換の情報収集インターフェースを提供します。Prometheus は、BE および FE ノードの HTTP ポートに接続して StarRocks のメトリック情報を取得し、その情報を自身の時系列データベースに保存します。Grafana は、Prometheus をデータソースとして使用し、メトリック情報を可視化します。StarRocks が提供するダッシュボードテンプレートを使用することで、StarRocks クラスタを簡単に監視し、Grafana でアラートを設定できます。

以下の手順に従って、StarRocks クラスタを Prometheus と Grafana に統合します。
- 必要なコンポーネントをインストールします - Prometheus と Grafana。
- StarRocks のコア監視メトリックを理解します。
- アラートチャネルとアラートルールを設定します。
ステップ 1: 監視コンポーネントのインストール
Prometheus と Grafana のデフォルトポートは、StarRocks のポートと競合しません。ただし、プロダクション環境では、StarRocks クラスタとは異なるサーバーにデプロイすることを推奨します。これにより、リソースの競合リスクが軽減され、サーバーの異常なシャットダウンによるアラートの失敗を回避できます。
また、Prometheus と Grafana は自身のサービスの可用性を監視できないため、プロダクション環境では Supervisor を使用してハートビートサービスを設定することを推奨します。
以下のチュートリアルでは、監視ノード (IP: 192.168.110.23) に監視コンポーネントをデプロイし、root OS ユーザーを使用して以下の StarRocks クラスタを監視します (デフォルトポートを使用)。このチュートリアルに基づいて独自の StarRocks クラスタの監視サービスを設定する場合は、IP アドレスを置き換えるだけです。
| ホスト | IP | OS ユーザー | サービス |
|---|---|---|---|
| node01 | 192.168.110.101 | root | 1 FE + 1 BE |
| node02 | 192.168.110.102 | root | 1 FE + 1 BE |
| node03 | 192.168.110.103 | root | 1 FE + 1 BE |
注意
Prometheus と Grafana は、FE、BE、CN ノードのみを監視でき、Broker ノードは監視できません。
1.1 Prometheus のデプロイ
1.1.1 Prometheus のダウンロード
StarRocks の場合、Prometheus サーバーのインストールパッケージをダウンロードするだけで済みます。パッケージを監視ノードにダウンロードします。
Prometheus をダウンロードするにはここをクリック。
LTS バージョン v2.45.0 を例にとり、パッケージをクリックしてダウンロードします。

または、wget コマンドを使用してダウンロードすることもできます。
# 以下の例では、LTS バージョン v2.45.0 をダウンロードします。
# コマンド内のバージョン番号を置き換えることで、他のバージョンをダウンロードできます。
wget https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
ダウンロードが完了したら、インストールパッケージを監視ノードのディレクトリ /opt にアップロードまたはコピーします。
1.1.2 Prometheus のインストール
-
/opt に移動し、Prometheus インストールパッケージを解凍します。
cd /opt
tar xvf prometheus-2.45.0.linux-amd64.tar.gz -
管理を容易にするため、解凍したディレクトリの名前を prometheus に変更します。
mv prometheus-2.45.0.linux-amd64 prometheus -
Prometheus のデータストレージパスを作成します。
mkdir prometheus/data -
管理を容易にするため、Prometheus のシステムサービス起動ファイルを作成します。
vim /etc/systemd/system/prometheus.serviceファイルに以下の内容を追加します。
[Unit]
Description=Prometheus service
After=network.target
[Service]
User=root
Type=simple
ExecReload=/bin/sh -c "/bin/kill -1 `/usr/bin/pgrep prometheus`"
ExecStop=/bin/sh -c "/bin/kill -9 `/usr/bin/pgrep prometheus`"
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data --storage.tsdb.retention.time=30d --storage.tsdb.retention.size=30GB
[Install]
WantedBy=multi-user.targetその後、エディタを保存して終了します。
注意
Prometheus を異なるパスにデプロイする場合は、上記ファイルの ExecStart コマンド内のパスを同期することを確認してください。また、ファイルは Prometheus データストレージの有効期限条件を「30 日以上」または「30 GB を超える」と設定しています。必要に応じてこれを変更できます。
-
Prometheus の設定ファイル prometheus/prometheus.yml を変更します。このファイルは、内容のフォーマットに厳しい要件があります。変更する際は、スペースとインデントに特に注意してください。
vim prometheus/prometheus.ymlファイルに以下の内容を追加します。
global:
scrape_interval: 15s # グローバルスクレイプ間隔を 15 秒に設定します。デフォルトは 1 分です。
evaluation_interval: 15s # グローバルルール評価間隔を 15 秒に設定します。デフォルトは 1 分です。
scrape_configs:
- job_name: 'StarRocks_Cluster01' # 監視されるクラスタはジョブに対応します。ここで StarRocks クラスタ名をカスタマイズできます。
metrics_path: '/metrics' # 監視メトリックを取得するための Restful API を指定します。
static_configs:
# 以下の設定は 3 つの FE ノードを含む FE グループを指定します。
# ここでは、各 FE に対応する IP と HTTP ポートを記入する必要があります。
# クラスタデプロイ時に HTTP ポートを変更した場合は、それに応じて調整してください。
- targets: ['192.168.110.101:8030','192.168.110.102:8030','192.168.110.103:8030']
labels:
group: fe
# 以下の設定は 3 つの BE ノードを含む BE グループを指定します。
# ここでは、各 BE に対応する IP と HTTP ポートを記入する必要があります。
# クラスタデプロイ時に HTTP ポートを変更した場合は、それに応じて調整してください。
- targets: ['192.168.110.101:8040','192.168.110.102:8040','192.168.110.103:8040']
labels:
group: be設定ファイルを変更した後、
promtoolを使用して変更が有効かどうかを確認できます。./prometheus/promtool check config prometheus/prometheus.yml以下の プロンプトが表示されれば、チェックが通過したことを示します。次に進むことができます。
SUCCESS: prometheus/prometheus.yml is valid prometheus config file syntax -
Prometheus を起動します。
systemctl daemon-reload
systemctl start prometheus.service -
Prometheus のステータスを確認します。
systemctl status prometheus.serviceActive: active (running)が返さ れれば、Prometheus が正常に起動したことを示します。また、
netstatを使用してデフォルトの Prometheus ポート (9090) のステータスを確認することもできます。netstat -nltp | grep 9090 -
Prometheus を起動時に自動的に開始するように設定します。
systemctl enable prometheus.service
その他のコマンド:
-
Prometheus を停止します。
systemctl stop prometheus.service -
Prometheus を再起動します。
systemctl restart prometheus.service -
実行時に設定をリロードします。
systemctl reload prometheus.service -
起動時の自動開始を無効にします。
systemctl disable prometheus.service
1.1.3 Prometheus へのアクセス
ブラウザを通じて Prometheus Web UI にアクセスできます。デフォルトポートは 9090 です。このチュートリアルの監視ノードの場合、192.168.110.23:9090 にアクセスする必要があります。
Prometheus のホームページで、トップメニューの Status --> Targets に移動します。ここで、prometheus.yml ファイルで設定された各グループジョブの監視ノードをすべて確認できます。通常、すべてのノードのステータスは UP であるべきで、サービス通信が正常であることを示します。

この時点で、Prometheus は設定され、セットアップされています。詳細情報については、Prometheus ドキュメントを参照してください。