シェア
//Prometheus/Loki/Grafanaを使用したシステム監視のセットアップとモニタリング(パート2)

Prometheus/Loki/Grafanaを使用したシステム監視のセットアップとモニタリング(パート2)

パート1では、企業が監視システムを導入しない、または効果的な監視が行われない場合に発生するリスクと影響について説明しました。また、監視対象のシステムのサーバーをセットアップする方法も紹介しました。パート2では、サーバーモニターのセットアップ方法をさらに詳しく説明し、監視システムの完成を目指します。

ただし、軽量なアプリケーションを作成するためには、いくつかのコツが必要です。

システム監視モデルの展開(続き)

2. サーバーモニターの設定

必要なツール:Prometheus、Loki、Grafana

a. Prometheusのインストール

ダウンロードとインストールの手順:

# 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を使用します:

http://192.168.88.206:9090

b. Lokiのインストール

ダウンロードとインストールの手順:

# 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

結果:

c. Grafanaのインストール

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を使用します:

http://192.168.88.206:3100

(デフォルト: 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

今すぐ応募







    福利厚生

    給料・ボーナス制度

    社員の感情・願望を理解しているので、リバークレーンベトナムは特に年2回の定期昇給制度を設けています。毎年6月と12月に評価を行い、毎年1月と7月に給与が変更されます。また、社員は月次と年次の優秀な個人には定期的な業績賞与が別で支給されます。

    日本研修制度

    世界中の新しい技術分野に触れるために、社員を日本にオンサイトさせる方針があります。さらに、技術分野か管理分野かのキャリアパスは社員の決定次第です。

    毎年社員旅行

    リバークレイン・ベトナムは、スタッフに挑戦の機会を提供するだけでなく、年に一度の魅力的な旅行で彼らを楽しませています。エキサイティングなガラディナーやチームビルディングゲームは、リバークレインのメンバー同士の絆をさらに深める手助けをします。

    リバークレイン イベント

    チームビルディング・ファミリーデー・お夏休み・中秋節などのイベントはチーム内のメンバーが接続出来るしお互いに自分のことを共有出来る機会です。ご家族員に連携する際にはそれも誇りに言われています。

    社会保険制度

    リバークレーンベトナムは従業員に社会保険、医療保険、失業手当などの社会保険制度があります。当社は、これらの保険に関するあらゆる手続きをスタッフに必ずサポートしています。さらに、他の保険契約も考慮され、検討されています。

    他福利

    社員向けの活動をサポートすることもあります。 ・文化・芸術・スポーツクラブの運営費用 ・技術研究の教科書を購入する金額 ・エンジニア試験・言語能力試験を受験料 ・ソフトスキルのセミナー・コースの参加費 ・等 また会社政策通り、他のベネフィットもあります。

    © 2012 RiverCrane Vietnam. All rights reserved.

    Close