Prometheus/Loki/Grafanaを使用したシステム監視のセットアップとモニタリング(パート2)
パート1では、企業が監視システムを導入しない、または効果的な監視が行われない場合に発生するリスクと影響について説明しました。また、監視対象のシステムのサーバーをセットアップする方法も紹介しました。パート2では、サーバーモニターのセットアップ方法をさらに詳しく説明し、監視システムの完成を目指します。
ただし、軽量なアプリケーションを作成するためには、いくつかのコツが必要です。
システム監視モデルの展開(続き)
2. サーバーモニターの設定
必要なツール:Prometheus、Loki、Grafana
ダウンロードとインストールの手順:
# Prometheus用のフォルダを作成 $ mkdir /usr/local/src/prometheus # 作成したフォルダに移動 $ cd /usr/local/src/prometheus # 最新のPrometheusをダウンロード $ wget https://github.com/prometheus/prometheus/releases/download/v2.46.0/prometheus-2.46.0.linux-amd64.tar.gz # ダウンロードしたファイルを解凍 $ tar zxvf prometheus-2.46.0.linux-amd64.tar.gz $ mv prometheus-2.46.0.linux-amd64 prometheus # /usr/binに移動 $ cp -r prometheus/prometheus /usr/bin
設定ファイルをダウンロードし、必要に応じて設定を調整します:
# 設定ファイル用のフォルダを作成し、設定ファイルをダウンロード
$ mkdir /etc/prometheus
$ cd /etc/prometheus
$ wget https://raw.githubusercontent.com/prometheus/prometheus/master/documentation/examples/prometheus.yml
設定ファイルの内容を以下のように調整します:
# my global config global: scrape_interval: 15s # 収集間隔を15秒に設定。デフォルトは1分。 evaluation_interval: 15s # ルールを15秒ごとに評価。 # Alertmanager設定 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # ルールファイルの設定 rule_files: # - "first_rules.yml" # - "second_rules.yml" # スクレイプ設定 scrape_configs: - job_name: "prometheus" static_configs: - targets: ["192.168.88.206:9090"] - job_name: 'node-exporter' static_configs: - targets: ["192.168.88.233:9100"] - job_name: 'process-exporter' static_configs: - targets: ["192.168.88.233:9256"]
サービスファイルを作成し、起動します:
$ vi /usr/lib/systemd/system/prometheus-node-exporter.service
ファイル内容は以下の通りです:
[Unit] Description=Prometheus - Monitoring system and time series database Documentation=https://prometheus.io/docs/introduction/overview/ After=network-online.target [Service] Type=simple ExecStart=/usr/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml [Install] WantedBy=multi-user.target
サービスを起動し、状態を確認します:
# デーモンをリロード $ systemctl daemon-reload $ systemctl enable prometheus.service $ systemctl start prometheus.service
ブラウザで確認するには、以下のURLを使用します:
ダウンロードとインストールの手順:
# Loki用のフォルダを作成 $ mkdir /usr/local/src/loki # 作成したフォルダに移動 $ cd /usr/local/src/loki # 最新バージョンをダウンロード $ curl -O -L "https://github.com/grafana/loki/releases/download/v2.8.4/loki-linux-amd64.zip" # 解凍 $ unzip "loki-linux-amd64.zip" # Lokiに実行権限を付与 $ chmod a+x "loki-linux-amd64" # /usr/binにコピー $ cp -r loki-linux-amd64 /usr/bin
設定ファイルをダウンロードします:
# Lokiの設定ファイル用フォルダを作成
$ mkdir /etc/loki
$ cd /etc/loki
$ wget https://raw.githubusercontent.com/grafana/loki/main/cmd/loki/loki-local-config.yaml
サービスファイルを作成します:
$ vi /usr/lib/systemd/system/loki.service
サービスファイルの内容:
[Unit] Description=Loki Documentation=https://github.com/grafana/loki/releases/ [Service] Type=simple ExecStart=/usr/bin/loki-linux-amd64 \ -config.file=/etc/loki/loki-local-config.yaml [Install] WantedBy=multi-user.target
サービスの状態を確認します:
$ service loki status
ブラウザで確認するには、以下のURLを使用します:
http://192.168.88.206:3100/metrics
プロセス確認:
$ ps -ax | grep loki
結果:
CentOS8を使用しているため、Grafana用のリポジトリを作成します:
$ vi /etc/yum.repos.d/grafana.repo
リポジトリの内容:
# Grafanaのリポジトリを追加
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Grafanaをインストールして起動します:
# Grafanaをインストール $ yum install grafana -y # 起動 $ systemctl start grafana-server
ブラウザで確認するには、以下のURLを使用します:
(デフォルト: username: admin, password: admin)
基本設定
PrometheusとLokiのデータソースを追加します:
CPU:
- Menu → Explore
- Data source:Prometheus
- Metric: node_cpu_seconds_total
- Label filters: mode !~ idle
- Rate: Range 1m
メモリ:
- Menu → Explore
- Data source:Prometheus
- モードを右側で選択: code
- Metrics browserでコードを入力
sshdプロセス:
- Menu → Explore
- Data source:Prometheus
- Metric: nodeprocess_namegroup_num_procs
- Label filters: groupname =~ .*sshd.*
システムのログ:
- Data:Loki
- Label filters: filename = /var/log/messages
結果を確認:
総括
どのシステムにも監視システムが必要です。さまざまなツールの中から適切なものを選ぶには、実際にテストしてシステムに合ったものを選ぶことが重要です。Grafanaは非常に視覚的で簡単に使用でき、監視や制御がしやすいため、非常に便利です。
最初の監視インフラの構築を試みた結果、いくつかの教訓を得ることができ、これを共有することで他の方々にも役立ててもらえればと思います。
最後まで読んでいただき、ありがとうございます!
![]() | Phan Văn Liền Web Developer |