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) に監視コンポーネントをデプロイし、以下の 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 ドキュメントを参照してください。
1.2 Grafana のデプロイ
1.2.1 Grafana のダウンロード
または、wget コマンドを使用して Grafana RPM インストールパッケージをダウンロードすることもできます。
# 以下の例では、LTS バージョン v10.0.3 をダウンロードします。
# コマンド内のバージョン番号を置き換えることで、他のバージョンをダウンロードできます。
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm