Prometheusは、構成された任意のターゲットシステムからメトリックを収集できるオープンソースの監視システムです。 Prometheusは、強力なクエリ、優れた視覚化、正確なアラートを備えた多次元データモデルを実装し、多くの統合が付属しています。
Prometheusは元々SoundCloudによって2012年に作成されましたが、現在はオープンソースコミュニティによって独立して維持されている独立したオープンソースプロジェクトになっています。すべてのコンポーネントはGithubのApache2ライセンスの下で利用できます。
このチュートリアルでは、Prometheusとnode_exporterをインストールして構成する方法を説明します。 Prometheus監視システムをインストールしてから、サーバーからメトリックを収集するようにnode_exporterを構成します。このチュートリアルガイドでは、最新のCentOS8サーバーを使用します。
前提条件
- CentOS8サーバー
- root権限
何をしますか?
- 新しいユーザーを作成し、Prometheusをダウンロードします
- PrometheusをSystemdサービスとして構成する
- Firewallを設定する
- node_exporterのインストールと構成
- node_exporterをPrometheusサーバーに追加します
- テスト
このチュートリアルでは、Prometheusサービスはroot以外のユーザーとして実行されます。したがって、システム上に新しい非rootユーザーを作成する必要があります。 「prometheus」という名前の新しいユーザーを作成し、すべてのprometheusサービスをprometheusユーザーの下で実行します。
以下のコマンドを使用して、新しい「prometheus」ユーザーを作成します。
useradd -m -s /bin/bash prometheus
新しいユーザーが作成されました。次に、ユーザーにログインし、wgetコマンドを使用してプロメテウスをダウンロードします。
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
prometheus-xx.x.x.tar.gzファイルを抽出し、ディレクトリの名前を「prometheus」に変更します。
tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/
その後、「tsdb」ストレージとして使用される新しい「data」ディレクトリを作成します。
mkdir -p ~/prometheus/data
これで、prometheusがサーバーにダウンロードされ、すべてのprometheusファイルが「/ home / prometheus/prometheus」ディレクトリに配置されます。
このステップでは、prometheusをsystemdサービスとして構成します。 '/ etc / systemd/system'ディレクトリに新しいサービスファイルprometheus.serviceを作成します。
'/ etc / systemd / system /'ディレクトリに移動し、vimエディターを使用して新しいサービスファイル'prometheus.service'を作成します。
cd /etc/systemd/system/
vim prometheus.service
以下にプロメテウスサービスの設定を貼り付けます。
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
保存して終了します。
次に、以下のsystemctlコマンドを使用してsystemdシステムをリロードします。
systemctl daemon-reload
プロメテウスサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start prometheus
systemctl enable prometheus
プロメテウスは現在systemdサービスとして実行されています。以下のコマンドを使用して確認してください。
systemctl status prometheus
「実行中」のサービスステータスを取得していることを確認してください。
または、以下のnetstatコマンドを使用して確認してください。
netstat -plntu
以下に示す結果が得られることを確認してください。
Prometheusは、デフォルトでポート「9090」で実行されています。
システムでFirewalldを使用している場合は、ポート9090をFirewalldリストポートに追加します。
以下のfirewall-cmdコマンドを使用して、Prometheusアクセス用にポート9090を開きます。
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
次に、firewalldのルールを確認します。
firewall-cmd --list-all
そして、リストにTCPポート「9090」が表示されます。
次に、Webブラウザを開き、ポート9090でサーバーのIPアドレスを入力します。
http://10.5.5.15:9090/graph
クエリフィールドに「prometheus_http_requests_total」と入力し、[実行]ボタンをクリックします。
また、時間、HTTPステータスコード、メソッドなどに関するすべての情報を含む、プロメテウスサーバーへのHTTPリクエストが表示されます。
node_exporterは、*NixおよびLinuxシステムで実行できるマシンメトリックのエクスポーターです。
このチュートリアルでは、同じサーバープロメテウスにnode_exporterをインストールします。プロメテウスサーバーの指標を監視して取得します。
prometheusユーザーにログインし、wgetコマンドを使用して「node_exporter」をダウンロードします。
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
node_exporterを抽出し、ディレクトリの名前を「node_exporter」に変更します。
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
次に、node_exporterの新しいサービスファイルを作成します。ルートシェルに戻り、「/ etc / systemd / system」ディレクトリに移動し、vimを使用して新しいnode_exporterサービスファイル「node_exporter.service」を作成します。
cd /etc/systemd/system/
vim node_exporter.service
次の構成を貼り付けます。
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
保存して終了します。
次に、systemdシステムをリロードします。
systemctl daemon-reload
次に、node_exporterサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start node_exporter
systemctl enable node_exporter
node_exporterサービスがサーバーで実行されています。netstatコマンドを使用して確認してください。
systemctl status node_exporter
netstat -plntu
そして、node-exporterがデフォルトのポート9100で稼働していることがわかります。
このステップでは、node_exporterをprometheusサーバーに追加します。 prometheusユーザーにログインし、構成'prometheus.yml'ファイルを編集します。
prometheusユーザーにログインします。
su - prometheus
'prometheus'ディレクトリに移動し、構成ファイル'prometheus.yml'を編集します。
cd ~/prometheus/
vim prometheus.yml
'scrape_config'行の下に、以下の構成をコピーして貼り付けて、新しいjob_namenode_exporterを追加します。
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
保存して終了します。
次に、プロメテウスサービスを再起動します。
systemctl restart prometheus
node_exporterがprometheusサーバーに追加されました。
Webブラウザを開き、サーバーのIPアドレスを入力します。
http://10.5.5.15:9090/
クエリフィールドにmeminfoコレクター「node_memory_MemAvailable_bytes」と入力し、「実行」ボタンをクリックします。
そして、以下のような結果が得られます。
サーバーインスタンス「localhost:9100」およびjob_name「node-exporter」で使用可能なメモリを取得します。
または、node_exporterの生データにアクセスする場合は、node_exporterポート9100をfirewalldに追加する必要があります。
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
次に、ポート9100でサーバーのIPアドレスを入力します。
http://10.5.5.15:9100/metrics
そして、以下に示すようにnode_exporter生データを取得します。
その結果、CentOS8サーバーでのnode_exporterを使用したプロメテウス監視システムのインストールと構成が正常に完了しました。