はじめに
Prometheusは、大量の分散アプリケーション向けのオープンソースのイベント監視ソフトウェアです。リアルタイムの指標とアラート、柔軟なクエリ、HTTPプルモデルを備えており、Kubernetesクラスタを監視するのに適しています。
Prometheusはスタンドアロンアプリケーションですが、視覚化ダッシュボードで使用すると、Kubernetesクラスターの概要をより適切に維持できます。このシナリオで人気のある選択肢は、オープンソースの視覚化ソフトウェアであるGrafanaです。これは、すぐに使用できるデータソースとしてPrometheusをサポートします。
このチュートリアルでは、KubernetesクラスターにGrafanaをインストールし、Prometheusに接続して、ダッシュボードでデータを整理する方法を説明します。
前提条件
- Kubernetesクラスター
- kubectlコマンドラインツールがインストールされています
- Prometheusのインストールとセットアップ
Grafanaのインストール
GrafanaをKubernetesクラスターにインストールするには、一連の yaml
を作成して適用します ファイル。
1. grafana-datasource-config.yaml
というタイトルのファイルにConfigMapを作成することから始めます :
nano grafana-datasource-config.yaml
このファイルは、次の宣言で構成されています。
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-datasources
namespace: default
data:
prometheus.yaml: |-
{
"apiVersion": 1,
"datasources": [
{
"access":"proxy",
"editable": true,
"name": "prometheus",
"orgId": 1,
"type": "prometheus",
"url": "http://prometheus-service.monitoring.svc:9090",
"version": 1
}
]
}
2. Grafanaをインストールする名前空間を指定して、ファイルの内容をニーズに合わせて調整します。
3.ファイルを保存して終了します。
4. kubectlを使用してクラスターに変更を適用します:
kubectl create -f grafana-datasource-config.yaml
出力は、ConfigMapの作成を確認します:
5.次に、 yaml
を作成します Grafanaデプロイメントのファイル:
nano deployment.yaml
このファイルには、Grafanaデプロイメント構成が含まれています:
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: grafana
template:
metadata:
name: grafana
labels:
app: grafana
spec:
containers:
- name: grafana
image: grafana/grafana:latest
ports:
- name: grafana
containerPort: 3000
resources:
limits:
memory: "1Gi"
cpu: "1000m"
requests:
memory: 500M
cpu: "500m"
volumeMounts:
- mountPath: /var/lib/grafana
name: grafana-storage
- mountPath: /etc/grafana/provisioning/datasources
name: grafana-datasources
readOnly: false
volumes:
- name: grafana-storage
emptyDir: {}
- name: grafana-datasources
configMap:
defaultMode: 420
name: grafana-datasources
6.ファイルを保存してから、クラスターに適用します。
kubectl create -f deployment.yaml
出力は、デプロイメントの作成を確認します:
7.最後に、 service.yaml
を作成します Grafanaサービスを構成するファイル:
nano service.yaml
このファイルは、次の宣言で構成されています。
apiVersion: v1
kind: Service
metadata:
name: grafana
namespace: default
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: '3000'
spec:
selector:
app: grafana
type: NodePort
ports:
- port: 3000
targetPort: 3000
nodePort: 32000
8.クラスターのニーズに合わせてファイルを調整し、保存して適用します。
kubectl create -f service.yaml
出力は、サービスが正常に作成されたことを確認します:
9. kubectl port-forwardコマンドを使用して、Grafanaサービスをポート 3000
に転送します :
kubectl port-forward svc/grafana 3000
10.ブラウザを開いて、 http://localhost:3000/
に移動します。 。
11.ユーザー名とパスワードを尋ねるGrafanaログイン画面が表示されます。 admin
と入力します 両方のフィールドで、[ログイン]をクリックします 。
12. Grafanaは新しいパスワードを設定するように要求し、その後ホームページが表示されます。
PrometheusをGrafanaデータソースとして追加
GrafanaでPrometheusの使用を開始するには、データソースとしてPrometheusを追加します。
1.左側のサイドバーで、歯車のアイコンにカーソルを合わせて、構成サブメニューを表示します。
2.データソースをクリックします 。
2.構成ページが開きます。 データソースの追加をクリックします ボタン。
3. Select をクリックして、データソースタイプとしてPrometheusを選択します。 右側のボタン。
4.Prometheusの構成ページが開きます。ここでは、ソースの名前、PrometheusサービスのURLとポート、およびアクセスのタイプを指定します(サーバーアクセスがデフォルトのオプションです)。
5.完了したら、ページの一番下までスクロールして、保存してテストをクリックします。 ボタン。
GrafanaはPrometheusとの接続をテストし、データソースの追加を完了します。
Prometheus統計をダッシュボードとしてGrafanaにインポートする
Grafanaはすぐに使用できるPrometheusをサポートしており、事前に作成されたPrometheusダッシュボードに簡単にアクセスできます。
1.データソースに戻ります セクションを選択し、プロメテウスを選択します 。
2.設定を開きます ドロップダウンメニュー。
3.次に、[ダッシュボード]をクリックします 。
4.使用可能なダッシュボードのリストが表示されます。 インポートをクリックして、必要なダッシュボードをインポートします ダッシュボード名の右側にあるボタン。
5.ダッシュボードにアクセスするには、左側のサイドバーにある4つの四角のアイコンにカーソルを合わせて、ダッシュボードを表示します。 メニュー。
6.管理をクリックします 。
7. Prometheusを選択します リストから管理するダッシュボード。
Prometheusサーバーからの統計
Prometheusダッシュボードは、以下で説明するいくつかの単一統計グラフで構成されています。
単一統計グラフ
Prometheus Statsを選択した後 ダッシュボード管理のダッシュボード ページでは、統計はパネルに整理されて表示されます。
最初の行は、次のパネルで構成されています。
- 稼働時間 :Prometheusサーバーが起動してからどれくらいの時間が経過したか
- ローカルストレージメモリシリーズ :Prometheusが現在メモリに保持しているシリーズの数
- 内部ストレージキューの長さ :この数値は小さいほど良いです。 「空」メッセージは、キュー番号がゼロであることを意味します。
取り込みたサンプル パネルには、Prometheusが5分の速度で取り込んだサンプルメッセージの数に関する情報が表示されます。
プロメテウススクレープメトリクス
スクレイプメトリック パネルは、サンプルが取り込まれたパネルのすぐ下にあります。
- ターゲットスクレイプ パネルには、範囲ベクトルの時系列ごとに、過去5分間に測定されたターゲット(Prometheus)をスクレイピングする頻度が表示されます。
- スクレイプ持続時間 パネルには、同じ5分間に測定された擦り傷の持続時間が表示されます。
評価期間
ルール評価期間 スクレープメトリックパネルの下にあるパネルは、実行するすべての評価の長さに関する情報を提供します。
新しいダッシュボードを作成する
新しいGrafanaダッシュボードを作成するには:
1.ダッシュボードに移動します ページをクリックし、新しいダッシュボードをクリックします ボタン。
2.新しい空のパネルと行を追加できる画面が表示されます。
3.ダミーパネルが1つある新しい画面が表示されます。
Prometheusクエリエディタを使用してダッシュボードをカスタマイズする
特定のGrafanaパネルを編集するには:
1.パネルのタイトルをクリックして、ドロップダウンメニューを開きます。
2.メニューで、[編集]をクリックします 。
3.編集ウィンドウが表示されます。新しいクエリを導入するか、現在のクエリを変更して、パネルをカスタマイズします。クエリは、Prometheusクエリ言語を使用して実行されます。
4.次の指標は、Grafanaの既製のPrometheusダッシュボードには含まれていませんが、Prometheusの監視には役立ちます。
-
prometheus_local_storage_memory_chunks
–Prometheusがメモリに保存するメモリチャンクを監視します。 -
prometheus_local_storage_memory_series
–Prometheusがメモリに保存するメモリシリーズを監視します。 -
prometheus_local_storage_ingested_samples_total
–サンプルの摂取率を測定します。 -
prometheus_target_interval_length_seconds
–ターゲットスクレイプ間の時間を測定します。 -
prometheus_local_storage_chunk_ops_total
–すべてのPrometheusストレージチャンク操作の1秒あたりの速度を監視します。
既製のダッシュボードとプラグインを使用する
Grafanaは、Webサイトからダウンロードできる既製のダッシュボードとプラグインを幅広く提供しています。既成のダッシュボードをインストールするには:
1.プラグインのjson
をダウンロードします ファイル。
2.インポートをクリックします ボタンをクリックし、指示に従ってファイルをGrafanaにアップロードします。
3.プラグインをインストールするには、 kubectl exec
を使用してクラスター内のGrafanaポッドにログインします。 。
kubectl exec -it [grafana-pod] -- [shell]
4.ここで、 grafana-cli
を使用します プラグインをインストールするためのコマンドラインツール:
grafana-cli plugins install grafana-worldmap-panel
プラグインはGrafanaプラグインディレクトリにインストールされます。デフォルトの場所は/var/lib/grafana/plugins
。プラグインが正常にインストールされると、Grafanaで自動的に利用可能になります。