Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード

Zabbix で監視項目と集約されたグラフを設定するためのサンプルコード

1. ローカルマシンを監視するためにZabbixエージェントをインストールする

エージェントソフトウェアをインストールする

サーバーとは異なり、エージェントはzabbix-agentパッケージをインストールするだけで済みます。

/etc/yum.repos.d/zabbix.repo を編集します。 
[ザビックス]
name=Zabbix 公式リポジトリ - $basearch
ベースURL=https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/$basearch/
有効=1
gpgcheck=1
gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
 
[zabbix非サポート]
name=Zabbix 公式リポジトリはサポートされていません - $basearch
ベースURL=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
有効=1
gpgkey=ファイル:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

カール https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
カール https://mirrors.aliyun.com/zabbix/RPM-GPG-KEY-ZABBIX -o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

yum -y zabbix-agent をインストール zabbix-get

2. エージェントを設定して起動する

zabbix_agentd.conf を vim で開きます。
Server=39.108.140.0 # パッシブモード zabbix-server-ip
ServerActive=39.108.140.0 # アクティブモード zabbix-server-ip
Hostname=You-Men # エージェントのホスト名。これは、監視ページに最終的に表示される名前です。 UnsafeUserParameters=1 # ユーザー定義キーで特殊文字の使用を制限するかどうか systemctl restart zabbix-agent
netstat -antp|grep エージェント
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3898/zabbix_agentd 
tcp6 0 0 :::10050 :::* 3898/zabbix_agentdをリッスン

3. snmpを設定する(オプション)

エージェントを使用してデータを取得するだけでなく、zabbix は snmp 経由でデータを取得することもできます。zabbix がより多くの情報を監視できるようにするには、ローカル マシンの snmp 機能を起動します。

yum -y インストール net-snmp net-snmp-utils
vim /etc/snmp/snmpd.conf
com2sec notConfigUser 39.108.140.0 パブリック
アクセス notConfigGroup "" 任意 noauth 正確 すべて なし なし
すべて表示 .1 80
systemctl snmpdを再起動します && systemctl snmpdを有効にします
ss -anup |grep snmp # 161 ポート、udp プロトコル # snmp プロトコルが正常に動作するかどうかをテストします # snmpwalk -v 1 -c public 39.108.140.0 .1.3.6
# コミュニティ公開のバージョン v1 を使用して、192.168.0.1 の .1.3.6 ブランチを調べます。

snmpwalk -v 2c -c パブリック 39.108.140.0
# v2c バージョンを使用し、コミュニティを public に設定して、39.108.140.0 にアクセスします。
# -v は現在の SNMPWALK コマンドライン バージョンを表示します。
# -
# ciscoデバイス39.108.140.0のインターフェースタイプを取得します

次に、Web インターフェイスに移動して、ローカル ホストを監視する方法を設定します。インターフェイスは 127.0.0.1 ですが、設定ファイルには 39.108.140.0 と記載されています。これら 2 つの IP を一致させましょう。3 をクリックして入力し、変更します。

アップデート後、以下のページへ移動し、しばらく待ってからページを再読み込みしてください。空き状況が緑色で表示されます。

この時点で、ローカルホストの監視は完了です。ローカルホストのネットワークカードトラフィックを監視する場合は、以下の図2の手順に従ってください。マウスで数字を1つずつクリックします。監視項目を中国語にしたい場合は、Zabbix障害例1を実行できます。ただし、バージョン4.4は以前のバージョンと比較して改善されています。監視項目は文字化けせず、英語です。

この文字化けしたコードを通常の中国語に変換したい場合は

Windows の場合は、C ドライブで simkai.tff Chinese Kaiti を検索し、サーバーにコピー/アップロードしてから、Zabbix 3.* バージョンのフォント ディレクトリに cp します。
cp /root/simkai.ttf /usr/share/zabbix/fonts/

# インストール方法によってパスは異なります。/ -type d -type fonts と入力して同様のフォルダーを直接見つけてください。これで完了です。# フォントの権限の問題に注意してください。vim /usr/share/zabbix/include/defines.inc.php
 'ZBX_GRAPH_FONT_NAME' を定義します。'simkai' です。
 'ZBX_FONT_NAME' を定義します。 

4. Zabbixはリモートホストを監視する

zabbix-agent をリモート ホストにインストールできない場合は、zabbix-agent がインストールされているマシンを介してパッケージを転送できます。

yum -y yum-utilsをインストールします
# 指定されたディレクトリにダウンロードします yum install zabbix-agent -y --downloadonly --downloaddir=/root
1. Zabbixエージェントをインストールする
 # 方法 1 (外部ソースの zabbix はパッケージをダウンロードできないようです。上記のソースを使用してください):
 # rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
 おいしい、すべてきれい
 yum -y zabbixエージェントをインストールします
 # 方法 2: (別のマシンの zabbix-agent パッケージを使用して、rpm で直接インストールする)
 rpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm

# zabbix-agentの設定を変更し、サービスを開始します vim /etc/zabbix/zabbix_agentd.conf
 サーバー=192.168.244.144
 Server=192.168.244.144 //監視ホストのIPアドレス Hostname=agent1.zabbix.com //監視ホストへの監視対象ホスト名 UnsafeUserParameters=1

 systemctl zabbix-agent を起動します
 ss -antp |grep 10050
# 次に、サービスの管理と簡単な閲覧を容易にするために、Web 側で操作します。
# 監視システムでは、監視対象ホストの役割やその他の属性に基づいて、同じ種類のホストが同じホスト グループに分割されることがよくあります。 

しばらく待って、可用性エリアに赤い警告が表示されない場合は、ホストは追加されていますが、テンプレートがマウントされておらず、監視項目が作成されていないことを意味しますので、テンプレートをマウントしてから監視項目を作成します。

エージェント側に nginx をインストールし、zabbix Web 側に移動してこのテンプレートを見つけてマウントします。

yum -y nginxをインストール
systemctl nginx を起動します

5. 監視ホストのテスト

次に、ブラウザまたはelinksを使用してnginxにアクセスし、データを生成し、zabbixに移動して変更を確認します。

elinks --dump 116.196.83.113

今後、主要な監視項目をカスタマイズする場合は、まず最新のデータがあるかどうかを確認する必要があります。データがない場合は、グラフィックトリガーアラームは表示されません。

この時点で、ローカル ホスト、リモート ホストの追加、ホスト グループの作成、テンプレートのマウントが完了します。

6. Zabbix監視項目

監視項目

監視項目は、Zabbix でデータを取得するための基礎です。監視項目がなければ、データは存在しません。ホストには、取得する単一の指標またはデータを定義する監視項目のみがあるためです。監視項目は、データ収集に適しています。MySQL の追加、削除、変更、クエリなど、複数の類似した監視項目をアプリケーション セットとして定義したり、1 秒あたりのテーブルの読み取りおよび書き込み速度を Mysql アプリケーション セットとして書き込んだりすることができます。

監視項目の例では、以下の必要な情報を入力する必要があります

名前

値として「CPU 負荷」を入力すると、この値がリストやその他の場所で監視項目名として表示されます。

価値

値として system.cpu.load を手動で入力します。これは監視項目の技術名であり、取得する情報の種類を識別するために使用されます。この特定の値は、Zabbix エージェントの事前定義された値のいずれかである必要があります。
https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/zabbix_agent # この URL は、zabbix 公式 Web サイトの事前定義された値です。

情報タイプ

ここでは、数値 (浮動小数点) を選択します。このプロパティは、データの形式を定義します。また、監視項目の履歴保持日数を 7 日または 14 日に減らす必要があります。データベースの場合、データベースが履歴データをあまり多く保持しないようにすることがベスト プラクティスです。
データ型を選択したら、他のオプションは今のところデフォルト値のままにしておきます。
1> ディスク容量の単位は通常B
2> ネットワークカードのトラフィックの単位はbpsです
3> MySQL のアクセス量/秒 (MySQL SELECT、INSERT、MySQL SELECT など)

[追加] をクリックすると、新しい監視項目が監視項目リストに表示されます。

7. データを表示する

監視項目が定義されると、具体的にどのような値が取得されるのか気になるかもしれません。監視ホームページに移動し、「最新データ」をクリックして、該当するホストを選択して、データが取得できるかどうか、また、必要なタイプであるかどうかを確認します。

チャート

監視項目をしばらく実行すると、ビジュアルチャートを表示できます。ない場合は、自分で作成することもできます。以下で詳しく説明します。

8. 共通監視項目

1. サーバーネットワークインターフェースの受信および送信トラフィックと合計トラフィック net.if.in[if,<mode>]
 net.if.out[if,<モード>]
 net.if.total[if,<モード>]

2. サーバーのブートパーティションの残り容量 vfs.fs.size[fs,<mode>]
 vfs.fs.size[/boot,free]

3. 仮想マシンのメモリを監視する vm.memory.size[<mode>]
 vm.memory.size[合計
 vm.memory.size[空き]
 vm.memory.size[有線]

4. サーバーサービスステータスnet.tcp.listen[ポート]
 net.tcp.port[<ip>,ポート]
 net.tcp.service[サービス,<IP>,<ポート>]
 net.tcp.service.perf[サービス,<IP>,<ポート>]

5. サーバープロセスの数 proc.num[<name>,<user>,<state>,<cmdine>]
 zabbix_get -s 39.108.140.0 -k プロセス番号
 121
 zabbix_get -s 39.108.140.0 -k proc.num[,,run]
 3
 zabbix_get -s 39.108.140.0 -k proc.num[,,sleep]
 118

6.サーバーCPUステータス(浮動小数点、単位なし) 
 システム.CPU.intr
 system.cpu.load[<CPU>,<モード>]
 システム.CPU.番号
 システム.CPU.スイッチ
 system.cpu.util[<CPU>,<タイプ>,<モード>]
 zabbix_get -s 39.108.140.0 -k system.cpu.load[すべて、平均1]
 0.000000
 zabbix_get -s 39.108.140.0 -k システム.cpu.負荷[,avg5]
 0.010000

7. ディスクIOステータス vfs.dev.read[デバイス、<タイプ>、<モード>]
 vfs.dev.write[デバイス,<タイプ>,<モード>]
zabbix_get -s 39.108.140.0 -k vfs.dev.read[/dev/vda1]

8. ファイルの変更を監視する vfs.file.chsum[file] # たとえば、/etc/passwd、/etc/group ファイルを監視して、新しいユーザーが作成されたかどうかを確認します vfs.file.md5sum[file]
 vfs.file.size[file] # 通常はログを監視するために使用されます vfs.fs.size[fs,<mode>]

9.ディスク合計。

10. ネットワークカードのトラフィックを監視する

最初にアプリケーション セットを作成します。これにより、後で作成されるネットワーク カードのアップロード、ダウンロード、および合計トラフィックがあまり乱雑にならず、それらはすべてネットワーク アプリケーション セット内にあり、XML ファイルにエクスポートして他の zabbxi ホストに配置して直接使用できるようになります。

今やっていることは、zabbixによってインストールされた組み込みの監視項目を使用して監視項目を作成することです。これはカスタムキーに似ています。監視スクリプトを書いて、パラメータを渡します。各キーの値は監視スクリプトに相当します。

次に、---> Host Group をチェックして最新のデータを確認します。下の図からデータがあることがわかります。

ダウンリンク帯域幅とアップストリーム帯域幅。

ダウンロードは入力され、ダウンストリーム帯域幅は送信するものです。サーバーの場合、アップストリーム帯域幅は高くなければなりません。自宅では、ダウンストリーム帯域幅は高くなります。サーバーは、ごく少数のデータ パケットを受信し、多数のデータ パケットに応答する必要があります。自宅では、非常に小さなデータ パケットを送信し、Web ページ全体を返します。

次に、トラフィックを出力するネットワーク カードを作成し、それをアイコン化してグラフィカルに表示します。

次に、モニタリングで最新のデータを確認します。最新のデータはデータフローに問題がないことを意味するため、この習慣を身に付けることができます。データが来ていない状態でグラフを作成すると、チャートにはデータがないと表示され、しばらく待たなければならないと思うと、時間の無駄になり、効率に影響します。

ご覧の通り、両方の監視項目にデータがあります。次に、グラフを作成しましょう。

次に、「監視の表示」--->「グラフ」に移動し、対応するグループ、対応するホスト、および作成されたグラフを選択します。

このホストでは、nginx をインストールし、Web サイトのルート ディレクトリに大きな画像をアップロードしてアクセスし、ネットワーク変動グラフを表示できます。

または、より大きな rpm または tarball を別のホストに直接アップロードすることもできます。

11. CPUを監視する

以前と同様に、CPUアプリケーションセットを作成して簡単に管理および要約できるようにします。

次に、アプリケーションセット、CPUintr、CPU割り込みカウントの監視項目を作成します。

次に、1分ごとにCPU負荷監視項目を作成します。下の図から、各監視項目にデータが入力されていることがわかります。次に、グラフを作成します。

データをリアルタイムにアイコン化できることがわかります。次は集計グラフを作ってみます。

12. 集計グラフを作成する

この時点で、最初のコンストラクターは完成しました。他のコンストラクターも同じです。ここでは書きませんが、結果の図を見てください。

システム定義の監視項目の作成も上記2つと同様です。練習を重ねれば慣れてきます。公式に定義されたキーの使用に慣れていない場合は、独自のスクリプトを書いて、会社の環境に合わせてキーをカスタマイズすることもできます。この章はこれで終了です。

要約する

Zabbix 設定監視項目と集計グラフのサンプルコードに関するこの記事はこれで終わりです。Zabbix 設定監視項目と集計グラフの関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Zabbixのカスタム監視項目とトリガーについて

<<:  Windows10 での MySQL msi インストール チュートリアル (画像とテキスト付き)

>>:  axios でリクエストをキャンセルし、重複リクエストを防ぐ方法について簡単に説明します。

推薦する

MySQL 8.0.17 のインストールと設定のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...

Vue はシームレスなカルーセル効果 (マーキー) を実現します

この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを例として紹介します。...

Vueはechartを使用してラベルと色をカスタマイズします

この記事では、参考までに、echartを使用してタグと色をカスタマイズするVueの具体的なコードを紹...

uniapp エントリーレベル nvue クライミングピット記録の分析

目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...

MySQLに絵文字表現を挿入する方法

序文今日、オープンソース プロジェクトのフィードバック フォームを設計していたところ、絵文字表現を挿...

MySQL 5.7.21 履歴データディレクトリからデータを復元するチュートリアルの解凍バージョン

状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...

VMware15.5でcentos8.1をインストールし、物理メモリが不足する問題に対処する最も完全なチュートリアル

1. 仮想マシンの準備1. 新しい仮想マシンを作成する 2. 仮想マシンのカスタマイズを選択する 3...

Win7 での mysql5.5 インストール グラフィック チュートリアル

MySQL のインストールは比較的簡単なので、通常は次のステップに直接進み、注意が必要な点に集中する...

MySQL のソートとページング (order by と limit) と既存の落とし穴

並べ替えクエリ (order by)電子商取引の場合: 今日完了したすべての注文を表示し、取引金額に...

Jira リバース プロキシを実装するための nginx について

概要: nginx リバース プロキシ jira を構成し、https を実装します。Tomcat ...

MySQL が group by をサポートしない場合の解決策の概要

MySQL 5.7.x の最新バージョンをダウンロードしてインストールしました。デフォルトでは、on...

Dockerディスク容量不足の問題を解決する

Docker が配置されているサーバーをしばらく稼働させたところ、サーバーのディスク ディレクトリの...

Vueは、センシティブな単語フィルタリングコンポーネントを検出するためのさまざまなアイデアを実装しています。

目次前面に書かれた要件分析 v1アイデア1: インターセプションメソッドを使用して入力ボックスの入力...

Reactでレシピシステムを実装する方法を解説した記事

目次1. レシピ集1.1 プロジェクトの背景1.2 テクノロジースタック1.3 開発環境1.4. プ...

忘れられたボタンタグ

注:この記事は他の人によって翻訳されていますが、考えるべき点が多く、理解しにくい点もあると感じていま...