監視ソフトのインストールが必要な都道府県・市町村のセキュリティアセスメントの評価があるので、実際にPrometheusとZabbixをインストールしてみました.もともとZabbixをインストールしたかったので、ローカルインストールは非常にスムーズに進みましたが、サーバーはHuawei PengkunのARMアーキテクチャです. . ARM 用のものが見つからなかったので、両方試してみました。この記事では、Promethus のインストール プロセスについて説明します。
- go環境をインストールする
https://dl.google.com/go/go1.19.3.linux-arm64.tar.gz
#Go ロケールを /usr/local に解凍します
[root@xxxxxx]# tar -C /usr/local -xzf go1.8.3.linux-arm64.tar.gz
#システム環境パラメーターの構成
[root@xxxxxx]# vim /etc/profile
# ファイルの末尾に次を追加します。
export PATH=$PATH:/usr/local/go/bin
# システム構成ファイルを更新します
[root@xxxxxx]# source /etc/profile
# go version コマンドを使用して、インストールが成功したことを確認してください!
[root@xxxxxx go]# go版
go バージョン go1.12.12 linux/arm64
#上記のエコーが出れば設定成功!
- プロメテウスをインストールする
https://github.com/prometheus/prometheus/releases/download/v2.40.3/prometheus-2.40.3.linux-arm64.tar.gz
ダウンロードが完了したら、サーバーにアップロードします
#パッケージを解凍
[root@ xxxxxx opt]# tar -zxvf prometheus-2.40.3.linux-arm64.tar.gz
#簡単な名前に変更
[root@ xxxxxx opt]# mv /opt/prometheus-2.40.3.linux-arm64 /opt/prometheus
#ソフトウェアディレクトリを入力してください
[root@ xxxxxx opt]# cd /opt/prometheus
#ソフトウェアのバージョンを確認する
[root@ xxxxxxプロメテウス]# ./プロメテウス --version
#次の結果を得る
プロメテウス、バージョン 2.40.3 (ブランチ: HEAD、リビジョン: 881111fec4332c33094a6fb2680c71fffc427275)
ビルド ユーザー: root@e7f4371658bf
ビルド日: 20220315-15:03:51
バージョン: go1.17.8
プラットフォーム: linux/arm6
- プロメテウスを開始します。
./プロメテウス
ここまでで、Prometheus のインストールと起動が完了しました。ポートが有効になっているかどうかを確認できます。
- 監視するクライアントを構成する
- ノード エクスポーターのダウンロード
4.2 インストールノード
#ファイルの解凍
tar -xf node_exporter-1.2.2.linux-arm64.tar.gz -C /usr/local
# 同期ファイル
ln -sv /usr/local/node_exporter-1.2.2.linux-amd64/ /usr/local/node_exporter
4.3 インストールされているバージョンを確認する
/usr/local/node_exporter/node_exporter --version
node_exporter、バージョン 1.2.2 (ブランチ: HEAD、リビジョン: 26645363b486e12be40af7ce4fc91e731a33104e)
ビルド ユーザー: root@b9cb4aa2eb17
ビルド日: 20210806-13:44:18
バージョン: go1.16.7
プラットフォーム: Linux/AMD64
4.4 node-exporter.service ファイルの作成
vi /lib/systemd/system/node-exporter.service
[ユニット]
説明=node_exporter
ドキュメンテーション=https://prometheus.io
After=network.target
[サービス]
タイプ=シンプル
ExecStart=/usr/local/node_exporter/node_exporter --collector.ntp --collector.mountstats --collector.systemd --collector.tcpstat
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec = 20 秒
再起動=常に
[インストール]
WantedBy=マルチユーザー.ターゲット
4.5 node-exporter の起動
#Boot セルフスタート
systemctl enable node-exporter
#node-exporter サービスを開く
systemctl start node-exporter
#node-exporter サービスを表示
systemctl status node-exporter
#ポート9100を開く
firewall-cmd --zone=public --add-port=9100/tcp --permanent
#firewalld サービスを再起動します
Systemctl restart firewalld
#node-exporter の Web ページを確認する
4.6 クライアントのバインド
サーバー側のサーバー
#Promethus ディレクトリに入る
cd /opt/プロメテウス
#prometheus.yml ファイルを変更する
Scrape_config パラメータの下で設定します
- job_name: "prometheus-node1" #ノード名
static_config:
- ターゲット: [「ノードのIP:9100」]
#promethus サービスを再起動し、Web インターフェイスを確認し、ステータスが更新されるまで 1 分間待ちます
4.7 グラフ命令
4.7.1 検索ボックス
開いている指標の爆発をクリックして、関連する監視指標を選択します。
選択したら、[実行] をクリックしてチャートの説明を表示します。
4.8 アラームルールの設定例
#ルールグループのパスを指定(当方は新規ファイル)
vi prometheus.yml
# 新しいアラート ルール
vi myrules.yml
グループ:
- 名前: node_alert
ルール:
- アラート: cpu_alert
expr: 100 -avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)* 100 > 80
のため: 5m
ラベル:
レベル: 警告
注釈:
説明: "インスタンス: { { $labels.instance }}、CPU 使用率が高すぎます! 値: { {$value}}"
概要: 「CPU 使用率が高すぎます」
- アラート: メモリ使用量
expr: 100 - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes)/ node_memory_MemTotal_bytes * 100 > 80
のため: 5m
ラベル:
ステータス: クリティカル
注釈:
概要: 「メモリ使用率が高い」
説明: "メモリ使用量が 80% を超えています。(現在の使用量:{ {$value}})"
- アラート: ディスカッション
expr: 100 - (((node_filesystem_size_bytes{fstype=~"xfs|ext4"} - node_filesystem_free_bytes{fstype=~"xfs|ext4"}) / node_filesystem_size_bytes{fstype=~"xfs|ext4"}) * 100) > 80
のため: 5m
ラベル:
ステータス: クリティカル
注釈:
概要: 「ディスク使用率が高い」
説明: "ディスク使用率が 80% を超えています (現在の使用率:{ {$value}})"
- アラート: http_alert
expr: count(prometheus_http_requests_total{code="302"})+count(prometheus_http_requests_total{code="400"})+count(prometheus_http_requests_total{code="503"})>1
のため: 5m
ラベル:
ステータス: クリティカル
注釈:
概要: "失敗した応答要求の数が 1 を超えています"
説明: "失敗した応答要求の数が 1 を超えています"
# ここには 3 = 4 つのルールがあります
- cpu_alert: CPU 使用率が 80% を超えた場合にアラートを出す
- メモリ使用量: メモリ使用量が 80% を超えた場合のアラーム
- Diskusage: ディスク使用率が 80% を超えた場合のアラーム
- http_alert: http リクエストの失敗回数が 1 を超える場合、アラートが発行されます
構成が成功し、サーバーを再起動して Web インターフェイスで表示できます。