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 でリクエストをキャンセルし、重複リクエストを防ぐ方法について簡単に説明します。

推薦する

Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)

Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...

変換を使用して純粋な CSS ポップアップ メニューを実装するためのサンプル コード

序文トップメニューを作成する場合、ポップアップのセカンダリメニューを作成する必要があります。 以前の...

CSS BEM 命名標準の概要 (推奨)

1 BEM命名標準とはBem は、ブロック、要素、修飾子の略語であり、Yandex チームによって...

カルーセル効果を実現するjQueryプラグイン

毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...

アコーディオン効果を実現するネイティブ js

実際のWebページ開発でも、アコーディオンは頻繁に登場します。簡単なアコーディオンを作ったのですが、...

Vue を使用してモバイル APK プロジェクトを完了することについての簡単な説明

目次基本設定エントリファイル main.jsアプリ.vue表紙ヘッダー検索バー本体当プロジェクトでは...

IE8はマルチ互換モードを使用してWebページを正常に表示します

IE8には複数の互換モードがあります。 IE プラットフォームの設計者である Chris Wilso...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

JavaScript で右クリック メニューを統合する layim のサンプル コード

目次1. 効果の実証2. 実装チュートリアル3. 最後に、完全なコードを添付します4. その他の右ク...

Linux でのファイルの編集、保存、終了の実践的な説明

Linux でファイルを編集した後、保存して終了するにはどうすればよいですか?保存して終了するコマン...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

MySQL の char、varchar、text フィールド タイプの違い

MySQL では、char、varchar、text の各タイプのフィールドはすべて文字タイプのデー...

HTML リンク アンカー タグと SEO におけるその役割の概要

<a> タグは主に、ハイパーリンクまたはアンカー リンクとも呼ばれるリンクとブックマーク...

Dockerでホストファイルをカスタマイズする方法について簡単に説明します

目次1. コマンド2. docker-compose.yml 3. Dockerファイル4. 直接変...