仮想環境eve-ng上でのPrometheus、GrafanaのDeploy

久しぶりに実験をしているのでまとめていきます。

はじめに

 対象は、eve-ng上でのPrometheus、GrafanaのDeploy検証です。
2024年9月27日一次公開、2024年10月4日、Grafanaの「(1)Grafanaのダウンロードとインストール(docker run -p)」による実装まで執筆完了!
概念的にDockerを書いている書籍が多かったのですが実際に、操作まで書かれているものが見つけずらくnoteに記載しました。
ダッシュボードで各ツールの情報が管理しやすいのはもちろん、以下のようなメリットが期待できます。
・管理の手間が省ける
・複雑なデータ管理と分析が簡単に可視化できる

さまざまなデータ管理に追われ、複数のタブを開いたり、手作業でまとめていたりする方は一気に効率化が進むでしょう。

管理の手間が省ける

Grafanaを利用すると、複数のデータを1つのダッシュボードで可視化でき、一元管理が可能になります。

クラウドコンピューティングやマイクロサービスの利用に伴い、管理にリソースを多く割いているケースがあります。Grafanaを使うと一目で確認ができるため時間が取られにくく、理解や分析も早まります。

なお、執筆中の箇所もあり、Docker、Prometheus、Grafana以外の記載個所につきましては別のNoteにまとめ直す可能性が有ります。


Grafanaとはなにか?


なぜ Grafana なのか? 

(1)データを統合できる

 データベースではなくデータを統合する Grafana では、バックエンド ストアやベンダー データベースにデータを取り込む必要がありません。代わりに、Grafana は、既存のデータがどこにあってもそれを統合することで「単一の画面」を提供するという独自のアプローチを採用しています。 Grafana を使用すると、Kubernetes クラスター、Raspberry Pi、さまざまなクラウド サービス、さらには Google スプレッドシートなど、既存のデータをすべて取得し、単一のダッシュボードから好きなように視覚化できます。

(2)誰でも使えるダッシュボード

 Grafana ダッシュボードは、多数のソースから収集されたデータに洞察力のある意味を与えるだけでなく、作成したダッシュボードを他のチーム メンバーと共有して、一緒にデータを探索することもできます。

 Grafana を使用すると、誰でも動的なダッシュボードを作成して共有し、コラボレーションと透明性を促進できます。

(3)誰でも見ることができるデータ

 Grafana は、1 人の運用担当者だけでなく、組織内のすべての人がデータにアクセスできる必要があるという原則に基づいて構築されました。

 Grafana は、データを民主化することで、データを必要とする人々が簡単にデータを使用し、アクセスできる文化を促進し、データ サイロを解体してチームに力を与えるのに役立ちます。もちろん、経理部の Eric にすべてを見せたくない場合もあります。Grafana Cloud および Enterprise エディションでは、広範なセキュリティ オプションが提供されています。

(4)柔軟性と汎用性

 あらゆるデータを柔軟で多用途なダッシュボードに変換します。他のツールとは異なり、Grafana を使用すると、自分やチーム専用のダッシュボードを構築できます。

 高度なクエリ機能と変換機能を使用すると、パネルをカスタマイズして、実際に役立つ視覚化を作成できます。

 そのままで素晴らしいと思いますが、もう少し柔軟になれない人がいるでしょうか?

1.Prometheus+Grafanaを入れるためのサーバ構築

(1)eve-ng起動画面


(2)RockyLinuxイメージは「Rocky-9.4-x86_64-minimal.iso」を利用


CPU、メモリーは変更 2コア→4コア、メモリは4096→8192へ増量
コンソールは仮想ネットワーク vnc(デフォルト)を使用

(3)RockyLinux~実環境間の接続

コミュニティ版のeveですので事前にネットワークと接続しておきます。

(4)Netの設定

ネットワークの設定は以下になります。自宅環境からインターネットに出る必要が有りますのでManagement(Cloud0)を利用します。


(5)自宅仮想ラボ内にRockyLinuxをDeployしたときの状況


クラウドラボなどと同じなのであまりカッコいいものではないですがまぁ、Eve-ngでよくある風景です。


RockeyLinuxの起動
Startボタンで装置が起動します。

起動状況やコンソールを確認するときは対象のLinuxなどの機器をダブルクリックすることで以下の画面が出てきて確認可能です。「ultravnc_wrapper.bat」を開くを選択する。



2.RockyLinuxのインストール

(1)RockyLinuxインストール中の画面1

 早く終わらせたい人は、「Enter」を押下


(2)インストール時の言語選択

(3)インストールの概要

赤文字の入力が最低必要、IPアドレスが決まっている場合「ネットワークとホスト名」も入力がお薦め

(4)rootパスワードの設定

(5)インストール先ディスクの設定

(6)対象サーバのIPアドレス設定


インストール後にnmtuiコマンドでも設定できますが、GUIで設定したほうが簡単ですのでこちらで設定します。
色々試してみたのですが、Eve-ngデフォルトのGUIVNCの場合、「コロンが打てない問題」というのが有ります。

コロンが打てないわけではないのですが、loadkeys usにする必要があるのでいろいろ余計なことを考えない様にします。
viなどのエディタで終了させるときに「:」を使うのですがその為にキーボードを変えるのが大変という理由です。

(7)IPv4アドレスを固定するときは以下のIPv4内を変更


インストール完了の画面

3.Dockerのインストール

Teratermから環境インストール

(1)起動後TeratermからIPアドレス確認

# ip -4 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    altname enp0s3
    inet 192.168.73.153/24 brd 192.168.73.255 scope global dynamic noprefixroute ens3
       valid_lft 1632sec preferred_lft 1632sec

(2)必要なパッケージのインストール

 例えば、yum-utils をインストールすることで以下のようなツールが使えるようになります:
 yum-config-manager: リポジトリの有効化/無効化や新しいリポジトリの追加。
 package-cleanup: 古いカーネルや不要な依存パッケージのクリーンアップ。
 repoquery: パッケージの依存関係を確認。
 yum-utils はリポジトリの管理やシステムのメンテナンスを効率化するツール群です。

# dnf install -y yum-utils
ocky Linux 9 - BaseOS                          1.4 MB/s | 2.3 MB     00:01
Rocky Linux 9 - AppStream                       3.0 MB/s | 8.0 MB     00:02
Rocky Linux 9 - Extras                           12 kB/s |  15 kB     00:01
Dependencies resolved.
など

(3)リポジトリの設定

Rocky Linux 9用のDockerパッケージのリポジトリを登録

# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(4)インストールするパッケージとバージョンの確認

# dnf list docker-ce.x86_64 --showduplicates
Docker CE Stable - x86_64                       136 kB/s |  58 kB     00:00
Available Packages
docker-ce.x86_64                3:20.10.15-3.el9                docker-ce-stable
docker-ce.x86_64                3:20.10.16-3.el9                docker-ce-stable
など

(5)Dockerパッケージのインストール

#sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

(6)Dockerのバージョンの確認方法

# docker compose version
Docker Compose version v2.29.7

(7)Dockerの起動

# systemctl enable --now docker
 Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
# systemctl is-active docker
active
#

(8)Dockerアカウントの作成1 

DockerHUBのURL
 https://hub.docker.com

下記URL sign upからアカウント作成が可能


(9)Dcoker HUBへの接続

「Login Succeeded 」が表示されたらDockerHUBにログインできています。

# docker login -u XXXXXX
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credential-stores

Login Succeeded パスワード入力
[root@localhost ~]#

(10)Extended docker run でymlファイルをインストールした先を確認する方法 docker exec -it <コンテナ名等> /bin/bash

コンテナ内に入る
まず、目的のコンテナが起動していることを確認し、そのコンテナ内にアクセスします。コンテナ内でシェルを起動し、ファイルの場所を探すことができます。

docker exec -it <コンテナ名またはコンテナID> /bin/bash
例)
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                                     COMMAND                  CREATED        STATUS                    PORTS                                                                                              NAMES
0f3d89589b40   prom/pushgateway                          "/bin/pushgateway"       47 hours ago   Up 47 hours               0.0.0.0:9091->9091/tcp, :::9091->9091/tcp                                                          festive_kare
84eee8f8c3e0   grafana/grafana                           "/run.sh"                5 days ago     Up 47 hours               0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

[root@localhost ~]# docker exec -it 84eee8f8c3e0 /bin/bash
84eee8f8c3e0:/usr/share/grafana$
exit  ★コンテナ内からexit
[root@localhost ~]# docker exec -it grafana /bin/bash
84eee8f8c3e0:/usr/share/grafana$

4.Prometheus導入

(1)Prometheusのダウンロードとインストール(docker run -p)

 「https://prometheus.io/docs/prometheus/latest/installation/」よりPrometheusのダウンロード実施

簡易的にインストールする場合以下の内容でも問題ありません バックグランドで動かす方法
# docker run -d -p 9090:9090 prom/prometheus
Unable to find image 'prom/prometheus:latest' locally
latest: Pulling from prom/prometheus
9fa9226be034: Pull complete
続く

docker run -d -p 9090:9090 prom/prometheus コマンドでPrometheusを実行した場合、
デフォルトではPrometheusの設定ファイル(prometheus.yml)はコンテナ内の 
/etc/prometheus/prometheus.yml に配置されます。

# ファイアウォールの設定を確認
sudo firewall-cmd --list-all

# ポート 9090 を開放
sudo firewall-cmd --zone=public --add-port=9090/tcp --permanent

# 設定を再読み込み
sudo firewall-cmd --reload

(2)Dockerで稼働中のプロセスを確認する方法

# docker ps -a
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS                      PORTS     NAMES
c6d2a4003211   prom/prometheus   "/bin/prometheus --c…"   10 minutes ago   Exited (2) 10 minutes ago             peaceful_pasteur

(3)コンテナを停止するコマンド

# docker rm -f peaceful_pasteur

(4)その他Dockerプロセスの再起動方法

docker stop prometheus 
docker rm prometheus

(5)node_expoterのインストール

# docker run -d \
  --net="host" \
  --pid="host" \
  -v "/:/host:ro,rslave" \
  -v "/etc/node-exporter:/etc/node-exporter" \
  quay.io/prometheus/node-exporter:latest \
  --path.rootfs=/host
Unable to find image 'quay.io/prometheus/node-exporter:latest' locally
latest: Pulling from prometheus/node-exporter
9fa9226be034: Already exists
1617e25568b2: Already exists
a7193bcb1fb2: Pull complete
Digest: sha256:4032c6d5bfd752342c3e631c2f1de93ba6b86c41db6b167b9a35372c139e7706
Status: Downloaded newer image for quay.io/prometheus/node-exporter:latest
050cdf4c36c72f03e447bf138ce3f3564f3329ac7c6dede0144dd2fcc0f88907

node_exporterが稼働していることの確認

# docker ps
CONTAINER ID   IMAGE                                     COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                                                                                                                                                      NAMES
95a1ccb8d9ac   quay.io/prometheus/node-exporter:latest   "/bin/node_exporter …"   45 seconds ago   Up 44 seconds                                                                                                                                                                                                                                                                                              amazing_chaum
5a015cb4f3f0   prom/snmp-exporter                        "/bin/snmp_exporter …"   8 days ago       Up 8 days       0.0.0.0:9116->9116/tcp, :::9116->9116/tcp                                                                                                                                                                                                                                                  snmp_exporter
#
# ファイアウォールの設定を確認
sudo firewall-cmd --list-all

# ポート 9100 を開放
sudo firewall-cmd --zone=public --add-port=9100/tcp --permanent

# 設定を再読み込み
sudo firewall-cmd --reload
 

(6)snmp監視の実装

1. SNMP Exporterのインストール

まず、Prometheusのエクスポーターとして SNMP Exporter をインストールします。SNMP対応機器から情報を収集し、それをPrometheusのメトリクス形式で提供します。

# yum  -y update
1. EPELリポジトリのインストール
#  yum install epel-release –y
2. SNMPパッケージのインストール
#  yum -y install net-snmp net-snmp-utils net-snmp-devel
#  yum -y install snmp-mibs-downloader
EPELリポジトリの無効化
yum-config-manager --set-disabled epel-cisco-openh264
リポジトリの更新
yum makecache
パッケージのインストール
yum -y install net-snmp net-snmp-utils net-snmp-devel
パッケージの確認
snmpget –version
NET-SNMP version: 5.9.1
# cd  /usr/share/snmp/mibs/
mib.txtが存在することを確認する
# ls
# cp /usr/share/snmp/mibs/* ./mibs 
[root@localhost etc]# cd snmp_exporter/
[root@localhost snmp_exporter]# ls
generator.yml  mibs  snmp.yml
# cat generator.yml
modules:
  if_mib:
    walk: [sysUpTime, interfaces, ifXTable]

#

# docker run -it -v /etc/snmp_exporter:/opt/ -v /etc/snmp_exporter/mibs:/
opt/mibs prom/snmp-generator generate

ts=2024-10-19T18:45:49.683Z caller=net_snmp.go:175 level=info msg="Loading MIBs" from=mibs
ts=2024-10-19T18:45:49.824Z caller=main.go:58 level=info msg="Generating config for module" module=if_mib
ts=2024-10-19T18:45:49.829Z caller=main.go:73 level=info msg="Generated metrics" module=if_mib metrics=43
ts=2024-10-19T18:45:49.838Z caller=main.go:98 level=info msg="Config written" file=/opt/snmp.yml
#ls
# docker run -d -v /etc/snmp_exporter:/opt/ --name snmp-exporter prom/snmp-exporter

メトリクスの確認(ブラウザから確認)

http://<snmp-exporter-ip>:9116/metrics
SNMP Exporterのセットアップが完了し、Prometheusでの監視が開始できるはず

(7)prometheus.ymlの編集


# docker ps
# docker exec -it <コンテナIDまたは、NAME> /bin/sh
/prometheus $ cd /etc/prometheus/
/etc/prometheus $ ls
console_libraries  consoles           prometheus.yml

編集時
/prometheus $ vi prometheus.yml
/etc/prometheus $ cat prometheus.yml
# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
      - targets: ["192.168.73.156:9116"]
      - targets: ["192.168.73.156:9100"]
    # 9100 node-expoert
###### SNMP
  - job_name: 'cisco_ncs_snmp'
    static_configs:
      - targets: ['192.168.73.142']

    metrics_path: /snmp
    params:
      module: ['snmpnet_basic']
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: snmp-exporter:9116
==
/prometheus $ exit
#
# sudo docker restart  <コンテナIDまたは、NAME> 

※dnfコマンドでインストールした時のymlファイルの設置場所
/etc/prometheus/prometheus.yml
vi /etc/prometheus/prometheus.yml などで編集する。

(7)Prometheusの再起動コマンド(以下はdnfでインストールした場合)

sudo systemctl restart prometheus

# sudo systemctl restart prometheus
# sudo systemctl status prometheus
● prometheus.service - Prometheus
     Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; preset: disabled)
     Active: active (running) since Mon 2024-10-07 23:33:21 JST; 9s ago
   Main PID: 3542800 (prometheus)
      Tasks: 10 (limit: 48919)
     Memory: 28.5M
        CPU: 714ms
     CGroup: /system.slice/prometheus.service
             mq3542800 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/data --web.listen-address=0.0.0.0:9090 --web.config.file=/etc/prome>

Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.444Z caller=head.go:685 level=info component=tsdb msg="WAL segment loaded" segment=147 maxSegment=149
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.550Z caller=head.go:685 level=info component=tsdb msg="WAL segment loaded" segment=148 maxSegment=149
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.552Z caller=head.go:685 level=info component=tsdb msg="WAL segment loaded" segment=149 maxSegment=149
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.552Z caller=head.go:722 level=info component=tsdb msg="WAL replay completed" checkpoint_replay_duration=4.507809ms wal_>
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.561Z caller=main.go:1014 level=info fs_type=XFS_SUPER_MAGIC
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.561Z caller=main.go:1017 level=info msg="TSDB started"
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.561Z caller=main.go:1197 level=info msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.577Z caller=main.go:1234 level=info msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.y>
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.577Z caller=main.go:978 level=info msg="Server is ready to receive web requests."
Oct 07 23:33:22 localhost.localdomain prometheus[3542800]: ts=2024-10-07T14:33:22.578Z caller=manager.go:974 level=info component="rule manager" msg="Starting rule manager..."
[root@localhost ~]#

ymlファイルのネタ


(8)Prometheusの起動確認

http://192.168.73.153:9090(192.168.73.153は、ホストアドレスのIP+ポート番号9090で確認)で起動確認

(8)snmp.ymlの設定

SNMP Exporterは snmp.yml という設定ファイルを使用して、どのOIDを監視するかを指定します。このファイルを適切に設定する必要があります。

以下の例は、単純なSNMPデバイス(例:スイッチやルーター)からデータを取得するための snmp.yml 設定例です。
dockerでインストールした場合、/etc/snmp/snmp.ymlのパターンが多いです。

# docker ps
# docker exec -it <コンテナIDまたは、NAME> /bin/sh
/ # cd /etc/snmp_exporter/
/etc/snmp_exporter # ls
snmp.yml
/etc/snmp_exporter # vi snmp.yml

modules:
  if_mib:
    walk:
      - 1.3.6.1.2.1.2
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifDescr
    auth:
      community: public
      version: 2c


# docker ps
# docker exec -it <コンテナIDまたは、NAME> /bin/sh
/prometheus $ cd /etc/prometheus/
/etc/prometheus $ ls
console_libraries  consoles           prometheus.yml

# vi prometheus.ymlの中身

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets:
          - 'localhost:9090'  # Prometheus自体のアドレス

  - job_name: 'snmp'
    static_configs:
      - targets:
          - 'localhost:9116'  # SNMP Exporterのアドレス
#
 docker ps
#
 sudo docker restart  <コンテナIDまたは、NAME>
# ポート 9116 を開放(9166が開放していない場合)
sudo firewall-cmd --zone=public --add-port=9900/tcp --permanent

# 設定を再読み込み
sudo firewall-cmd --reload


5.Grafana導入

https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/」よりGrafana  Dcokerイメージのダウンロード方法の確認

Grafana Docker イメージには 2 つのエディションが有るとのことです。今回はエンタープライズ向けをダウンロードしてみましょう

  • グラファナエンタープライズ:grafana/grafana-enterprise

  • Grafana オープンソース:grafana/grafana-oss

また、Grafanaについてですが、「注: Grafana の推奨およびデフォルトのエディションは Grafana Enterprise です。これは無料で、OSS エディションのすべての機能が含まれています。さらに、Enterprise プラグインのサポートを含む完全な Enterprise 機能セットにアップグレードするオプションもあります。」とのことですのでEnterprise向けのプラグインも気になる所です。

「docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise」のコマンドでインストールできる様ですので実行していきます。

(1)Grafanaのダウンロードとインストール(docker run -p)

# docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise
Unable to find image 'grafana/grafana-enterprise:latest' locally
latest: Pulling from grafana/grafana-enterprise
4abcf2066143: Pull complete
2d909cc2324c: Pull complete
9dbc2360a837: Pull complete
ffe507044409: Pull complete
41bb98e3264e: Pull complete
dfb27e8663de: Pull complete
506a53f222bf: Downloading [========>                                          ]  12.38MB/69.04MB
f9608e0e3618: Downloading [==>                                                ]  3.237MB/54.29MB
9f9d9210691d: Download complete
312b95b17829: Download complete

sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent

# 設定を再読み込み
sudo firewall-cmd --reload

(2)Dockerで稼働中のプロセスを確認する方法

3000番ポートでGrafanaが起動していることが確認できます「70775e40d9f4 grafana/grafana-enterprise "/run.sh" About a minute ago Up About a minute 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp grafana」

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                        COMMAND                  CREATED              STATUS                    PORTS                                                                                              NAMES
70775e40d9f4   grafana/grafana-enterprise   "/run.sh"                About a minute ago   Up About a minute         0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                          grafana
a4b521464ca6   splunk/splunk                "/sbin/entrypoint.sh…"   7 days ago           Exited (255) 2 days ago   8065/tcp, 8088-8089/tcp, 8191/tcp, 9887/tcp, 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 9997/tcp   splunk
9d41ee1b41d5   prom/prometheus              "/bin/prometheus --c…"   7 days ago           Exited (255) 2 days ago   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                          interesting_agnesi
8067f3bd0118   prom/snmp-exporter           "/bin/snmp_exporter …"   7 days ago           Exited (255) 2 days ago   0.0.0.0:9116->9116/tcp, :::9116->9116/tcp                                                          snmp_exporter
[root@localhost ~]#

Grafanaのps(プロセス)確認方法

Grafanaのログの確認方法(docker logs --tail 10 grafana)


ホストPCを再起動したときの対応
以下の様にdocker ps コマンドに「grafana/grafana」が表示されない場合の対応

# docker ps
CONTAINER ID   IMAGE                                     COMMAND                  CREATED      STATUS              PORTS                                       NAMES
e0d340fb78df   quay.io/prometheus/node-exporter:latest   "/bin/node_exporter …"   3 days ago   Up 27 minutes       0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node_exporter
3bac9ec99786   prom/prometheus                           "/bin/prometheus --c…"   3 days ago   Up About a minute   0.0.0.0:9090->9090/tcp, :::9090

Image「grafana/grafana」のIDを確認する。
今回の場合、CONTANER IDは、「84eee8f8c3e0」になる。

[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE                                     COMMAND                  CREATED       STATUS                        PORTS                                                                                              NAMES
84eee8f8c3e0   grafana/grafana                           "/run.sh"                3 days ago    Exited (255) 26 minutes ago   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                          grafana
e0d340fb78df   quay.io/prometheus/node-exporter:latest   "/bin/node_exporter …"   3 days ago    Up 26 minutes                 0.0.0.0:9100->9100/tcp, :::9100->9100/tcp                                                          node_exporter
af86946e2bbd   quay.io/prometheus/node-exporter:latest   "/bin/node_exporter …"   3 days ago    Exited (143) 3 days ago                                                                                                          relaxed_jennings
87b7fbbac13d   influxdb:2                                "/entrypoint.sh infl…"   3 days ago    Exited (255) 26 minutes ago   0.0.0.0:8086->8086/tcp, :::8086->8086/tcp                                                          intelligent_goldberg
761ed3eaadd2   influxdb:2                                "/entrypoint.sh infl…"   3 days ago    Exited (0) 3 days ago                                                                                                            upbeat_brattain
068138ba84b6   influxdb:2                                "/entrypoint.sh infl…"   3 days ago    Exited (0) 3 days ago                                                                                                            focused_khorana
74ea720e2458   telegraf                                  "/entrypoint.sh tele…"   3 days ago    Created                                                                                                                          telegraf
3bac9ec99786   prom/prometheus                           "/bin/prometheus --c…"   3 days ago    Up About a minute             0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                          prometheus
a4b521464ca6   splunk/splunk                             "/sbin/entrypoint.sh…"   11 days ago   Exited (255) 6 days ago       8065/tcp, 8088-8089/tcp, 8191/tcp, 9887/tcp, 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 9997/tcp   splunk
9d41ee1b41d5   prom/prometheus                           "/bin/prometheus --c…"   11 days ago   Exited (255) 6 days ago       0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                          interesting_agnesi
8067f3bd0118   prom/snmp-exporter                        "/bin/snmp_exporter …"   11 days ago   Exited (2) 3 days ago                                                                                                            snmp_exporter

以下のコマンドを投入する「docker start 84eee8f8c3e0(コンテナID)」

# docker start 84eee8f8c3e0
84eee8f8c3e0

再度ps コマンドを投入する
IMAGEに「grafana/grafana 」が追加されていることを確認可能

[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                                     COMMAND                  CREATED      STATUS          PORTS                                       NAMES
84eee8f8c3e0   grafana/grafana                           "/run.sh"                3 days ago   Up 23 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   grafana
e0d340fb78df   quay.io/prometheus/node-exporter:latest   "/bin/node_exporter …"   3 days ago   Up 29 minutes   0.0.0.0:9100->9100/tcp, :::9100->9100/tcp   node_exporter
3bac9ec99786   prom/prometheus                           "/bin/prometheus --c…"   3 days ago   Up 3 minutes    0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   prometheus

(4)Grafanaの起動確認

http://192.168.73.153:3000(192.168.73.153は、ホストアドレスのIP+ポート番号3000で確認)で起動確認
初期ID/パスワードは admin/admin

(5) パスワード更新画面

なにかパスワードを入力すると先に進みます

(6)Grafanaログイン後初期画面

(7) 外部データの取り込み方法 

HOME > Connections

(8)New Addtionsの表示

(9)検索画面に「prometheus」などの入力

(10)Prometheus Data Source - Native Pluginの表示

 右上DataSourceの入力

(11)DataSourceにProtmetheusの表示

 DataSource入力後、Test&Saveを選択

(12)Test&SaveがOKだった時の表示

(13)Prometheusのデータ取得1

 HOME→Explorerの選択

(14)Prometheusのデータ取得2 クエリ内容の入力

Outlineにprometheusを選択、Metric:UP選択、Instanceにjobを選択、SelectValueにprometheusを選択

(15)Prometheusのデータ取得2

「QueryInspector」のクリックと「Query」のRefleshの実行

(16)Prometheusのデータ取得3

(17)DashBoardへの追加

(18)AddPaneltoDashBoardの選択画面表示


6.Grafana拡張

ここから先は

5,109字 / 9画像

¥ 100

この記事が気に入ったらチップで応援してみませんか?