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注記クラスタのスケーリング(スケールイン/スケールアウト)後、Prometheus はサービス(
targets)変更を検出できないことにご注意ください。例えば、AWS 上にデプロイされたクラスターの場合、Prometheus サービスをホストする EC2 インスタンスにec2:DescribeInstancesおよびec2:DescribeTags権限を付与し、prometheus/prometheus.yml にec2_sd_configsおよびrelabel_configsプロパティを追加できます。詳細な手順については、付録 - Prometheus のサービス検出を有効にするを参照してください。設定ファイルを変更した後、
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 Documentation を参照してください。
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
1.2.2 Grafana のインストール
-
yumコマンドを使用して Grafana をインストールします。このコマンドは、Grafana に必要な依存関係を自動的にインストールします。yum -y install grafana-enterprise-10.0.3-1.x86_64.rpm -
Grafana を起動します。
systemctl start grafana-server.service -
Grafana のステータスを確認します。
systemctl status grafana-server.serviceActive: active (running)が返されれば、Grafana が正常に起動したことを示します。また、
netstatを使用してデフォルトの Grafana ポート (3000) のステータスを確認することもできます。netstat -nltp | grep 3000 -
Grafana を起動時に自動起動するように設定します。
systemctl enable grafana-server.service
その他のコマンド:
-
Grafana を停止します。
systemctl stop grafana-server.service -
Grafana を再起動します。
systemctl restart grafana-server.service -
起動時の自動起動を無効にします。
systemctl disable grafana-server.service
詳細については 、Grafana Documentation を参照してください。
1.2.3 Grafana へのアクセス
ブラウザを通じて Grafana Web UI にアクセスでき、デフォルトポートは 3000 です。このチュートリアルの監視ノードの場合、192.168.110.23:3000 にアクセスする必要があります。ログインに必要なデフォルトのユーザー名とパスワードはどちらも admin に設定されています。初回ログイン時に、Grafana はデフォルトのログインパスワードを変更するよう促します。今はこれをスキップしたい場合は、Skip をクリックできます。その後、Grafana Web UI のホームページにリダイレクトされます。

1.2.4 データソースの設定
左上のメニューボタンをクリックし、Administration を展開してから Data sources をクリックします。
