CentOS-7 の展開と Zabbix 3.0 のインストール

記事ディレクトリ

  • 目的:

  • Zabbix 3.0のデプロイ

  • メールアラーム機能の設定、OSの自動検出・自動追加機能の設定

  • 検出されたホストを自動的に監視し、電子メール アラートを送信するアクションを構成する

  • 検出されたホストを自動的に監視し、DingTalk ロボット アラームを実現するアクションを構成します

Zabbix 3.0をデプロイしてインストールします。

  • 「ホスト名とホストの解決」を設定する

HOSTNAME=zabbix
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash		#触发bash;主机名已改变

ここに画像の説明を挿入

  • MySQL をインストールします (CentOS-7 では mariadb に名前変更されました)

yum -y install mariadb-server mariadb

ここに画像の説明を挿入

systemctl start mariadb		#启动服务
systemctl enable mariadb	#加入系统服务,开机自启动

ここに画像の説明を挿入

cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el7.noarch.rpm

ここに画像の説明を挿入

  • 使用する必要があるいくつかの zabbix パッケージをインストールします
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

ここに画像の説明を挿入

  • zabbix-get ソフトウェア パッケージをインストールすると、後でコマンドを実行して監視情報を取得しやすくなります。
yum install -y zabbix-get-3.0.28-1.el7.x86_64

ここに画像の説明を挿入

  • 補足: (zabbix の一部のパッケージ名と使用法) \color{red}{補足: (zabbix の一部のパッケージ名と使用法)}補足:(一部のパッケージz a b b i x使用
  1. zabbix-server-mysql-3.4.6-1.el7.x86_64 (zabbix サーバーのメインインストーラー)
  2. zabbix-agent-3.4.6-1.el7.x86_64 (zabbix エージェントマスターインストーラー)
  3. zabbix-web-3.4.6-1.el7.noarch (zabbix Web インストーラー)
  4. zabbix-get-3.4.6-1.el7.x86_64.rpm (監視データの取得に使用される zabbix サーバー インストール プログラム)
  5. zabbix-web-mysql-3.4.6-1.el7.noarch.rpm (zabbix Web 接続データベースのインストール プログラム)
  6. zabbix-release-3.4.2-1.el7.noarch.rpm (zabbix yum ソース構成ファイルを生成)
  7. zabbix-sender-3.4.6-1.el7.x86_64.rpm (監視データの送信に使用される zabbix エージェント インストーラー)

次に、次の 2 つのパッケージ (zabbix-get と zabbix-sender) に注目します。

  • zabbix-get (サーバー側にインストール)
  • zabbix-sender (エージェント側にインストール)
  • zabbix-get は zabbix サーバー側にインストールされ、zabbix エージェント側と通信するために使用され、エージェント側からサーバー側にデータをアクティブにプルするために使用されます。
  • zabbix-sender は zabbix エージェント側にインストールされ、zabbix サーバー側と通信するために使用され、エージェント側からサーバー側にデータをアクティブにプッシュするために使用されます。
rpm -qa |grep zabbix	#查看已经安装的Zabbix程序包

ここに画像の説明を挿入

Mysqlはデータベースを構築し、zabbixライブラリとテーブルをインポートします

mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix		# 导入数据库脚本,生成数据库环境并授权
  • Zcat コマンド:
    「Zcat」は、圧縮ファイルの内容を解凍せずに表示するためのコマンド ライン ユーティリティです。圧縮ファイルを標準出力に展開し、その内容を表示できるようにします。また、zcat では、gunzip -c コマンドを実行した場合とまったく同じ結果が得られます。
    ここに画像の説明を挿入

Zabix メイン設定ファイルを変更して開始します

#将DBPassword复制一行进行修改
sed -i 's/# DBPassword=.*/&\nDBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
#为Zabbix前端配置PHP,更改时区
sed -i 's|# \(php_value date.timezone\) Europe/Riga|\1 Asia/Shanghai|g' /etc/httpd/conf.d/zabbix.conf
#重启服务
systemctl restart zabbix-server zabbix-agent httpd
#加入系统服务,开机自启动
systemctl enable zabbix-server zabbix-agent httpd

ここに画像の説明を挿入

  • Webページアクセス: http://192.168.137.235/zabbix
    ここに画像の説明を挿入
  • ここで、上で変更したタイムゾーンの日付値が有効になっていることがわかります。
    ここに画像の説明を挿入
  • データベースのパスワードを入力します: zabbix
    ここに画像の説明を挿入
  • Zabbix サービスの詳細をリストします。デフォルトの次のステップです。
    ここに画像の説明を挿入
  • インストール前の概要、デフォルトの次のステップ
    ここに画像の説明を挿入
  • インストールが完了したら、「完了」をクリックして Web 管理ページにログインします。
    ここに画像の説明を挿入
  • デフォルトのユーザー名とパスワード Admin/zabbix
    ここに画像の説明を挿入
  • インターフェース言語を中国語に変更します(個人の好みに応じて、必須ではありません)
    ここに画像の説明を挿入
  • 中国語 (zh_Cn) に変更 中国語、更新して更新を確認します
    ここに画像の説明を挿入

電子メールアラート機能を設定します。

  • 管理 – アラームメディアタイプ – 電子メール
    ここに画像の説明を挿入

  • アラームメールを送信するための 163 個のメールボックスを追加
    ここに画像の説明を挿入

  • 管理者のアラームメディアの変更(Admin) Admin
    - User - Admin

    ここに画像の説明を挿入

  • アラートメディアを追加する
    ここに画像の説明を挿入

  • ニーズに応じて、自分で設定および調整します
    ここに画像の説明を挿入

  • 更新する、追加する
    ここに画像の説明を挿入

自動検出を構成してテストします。

  • 新しい仮想マシンを開き、zabbix クライアントをインストールして構成します。
# 主机名和hosts解析部署
HOSTNAME=zabbix-test
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash		#触发bash;主机名已改变

ここに画像の説明を挿入

# 将 Zabbix 服务端添加到 hosts 解析文件中(方便后面配置文件指向服务端地址)
echo "192.168.137.235 zabbix_server">>/etc/hosts

ここに画像の説明を挿入

# 使用官方yum源安装配置Zabbix agent
cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el6.noarch.rpm

ここに画像の説明を挿入

# 安装客户端
yum -y install zabbix-agent

ここに画像の説明を挿入

# 修改客户端配置文件 zabbix_agentd.conf
cd /etc/zabbix/
sed -i 's/^Server=127.0.0.1/Server=zabbix_server/g' zabbix_agentd.conf
sed -i 's/^ServerActive=127.0.0.1/ServerActive=zabbix_server:10051/g' zabbix_agentd.conf
sed -i "s/^\(Hostname=\).*/\1$(hostname)/g" zabbix_agentd.conf
# 在当前系统级别开启 zabbix-agent 服务,并启动客户端(便于实现自动发现)
chkconfig zabbix-agent on
/etc/init.d/zabbix-agent start

ここに画像の説明を挿入

  • 自動検出機能を Web ページに追加します:
    設定 - 自動検出 - 検出ルールの作成

    ここに画像の説明を挿入
  • 自動検出ルールを追加する
    ここに画像の説明を挿入
  • ステータスが有効
    ここに画像の説明を挿入
  • 検出中 – 自動検出
    クライアントが接続されており、自動検出が完了していることがわかります。

    ここに画像の説明を挿入
  • 補足 (オプションの操作): − − 自動検出アクションを作成します (アクション) − − 自動追加を実現するか、電子メール通知を送信します) \color{red}{補足 (オプションの操作): -- 自動検出アクションを作成します (アクション ) - - 自動追加を実現するか、電子メール通知を送信します)}補足オプション操作_自動検出アクション作成(アクション) _ _ _ _自動追加メール通知実現します
    • 最初にホスト グループを作成して、後で検出ホストをグループに自動的に追加できるようにします。
      ここに画像の説明を挿入
    • 設定 - アクション - イベント ソース (自動検出) - アクションの作成 - ホストの自動追加後に通知メールを送信
      ここに画像の説明を挿入
    • 自動検出アクションの作成
      [アクションの構成] タブ
      ここに画像の説明を挿入
    • 「条件の構成」タブ
      ここに画像の説明を挿入
    • 「アクションの構成」タブ – メールの送信
      ここに画像の説明を挿入
    • 自動検出アクションのリストを表示する
      ここに画像の説明を挿入
    • イベントでは、自動検出によってトリガーされたイベントを確認できます
      ここに画像の説明を挿入
    • 接続が切断されるとクライアントは電子メールを受信します
      ここに画像の説明を挿入

ホストとホスト グループを作成します。

  • 構成 - ホスト - ホストの作成
    ここに画像の説明を挿入
  • 最初のタブのコンテンツを追加すると、残りのタブは一時的に設定されません
    ここに画像の説明を挿入
  • ホスト グループを表示すると、新しく作成されたホスト グループが生成され、このホスト グループに zabbix-agent が追加されています。
    ここに画像の説明を挿入

監視項目(項目)を設定します。

ここに画像の説明を挿入

  • 新しい監視項目を作成する
    ここに画像の説明を挿入
  • CPU監視項目の設定と追加

system.cpu.switches: 切り替えるコンテキストの数。整数値を返します。

  • サーバーはコマンドを実行して、切り替えるクライアント CPU コンテキストの数の整数値を取得します。
zabbix_get -s 192.168.137.137 -k "system.cpu.switches"

ここに画像の説明を挿入

  • 監視項目取得の設定
    ここに画像の説明を挿入
  • zabbix-agentの監視項目を再度確認する
    ここに画像の説明を挿入
  • トレンドチャートの傾向を表示する
    ここに画像の説明を挿入
  • ネットワークカード監視項目の設定と追加
net.if.in[if,<mode>]	网络接口上传流量统计;返回 整数。
[if,<mode>]	带中括号的Key表示能接受参数的key
if 指定网卡接口名称;<mode> 指定具体需要监控模式的数据
  • 補足:カスタムキーの追加方法
要想使用自定义key,需要更改agent端配置文件/etc/zabbix/zabbix-agentd.conf
UserParameter=<key>,<command> -- 不接收参数
UserParameter=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo
UserParameter=<key[*]>,<command>$1...$9 -- 接收参数
UserParameter=system.memory.usage[*],awk '/^$1/{print $$2}' /proc/meminfo
第一个$1是前system.memory.usage[*]的所有输出结果;$$2是通过awk过滤出第二行或列的值。

例: \color{red}{例:}:

找到UserParameters,添加UserParametes=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo(自定义的key,需注意不要与内建key重名) --监控空闲内存的值
配置完成需要重启服务:systemctl restart zabbix-agent.service
服务端通过命令查看客户端空先内存:zabbix_get -s 192.168.137.139 -k "system.memory.free"

ここに画像の説明を挿入

  • サーバーはコマンドを実行して、クライアントのネットワーク インターフェイスのアップロード トラフィック統計の整数値を取得します。
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,packets]"
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,bytes]"

ここに画像の説明を挿入

  • クライアントで ifconfig コマンドを実行して、データの取得元と一貫性があるかどうかを確認します。
    ここに画像の説明を挿入
  • 取得・保存(更新)する監視項目を設定する
    ここに画像の説明を挿入
  • 保存 (更新) に加えて、制御項目の下部では、監視項目を複製して構成できるクローン オプションもサポートされています。
    ここに画像の説明を挿入
  • 監視項目のクローンを作成し、次のように監視を追加します。 lnboud Bytes – 受信バイト数
    キーの値と名前を変更するだけです

    ここに画像の説明を挿入
  • 引き続きクローンを作成し、送信パケット数と送信バイト数を追加します。
    送信パケット数

    ここに画像の説明を挿入
  • 送信バイト数
    ここに画像の説明を挿入
  • 新しい監視項目を保存して表示する
    ここに画像の説明を挿入
  • 監視データの傾向を引き続き確認できます
    ここに画像の説明を挿入

トリガーを設定します (トリガー):

  • 設定 - ホスト - 対応するホスト/ホスト グループ - トリガー - 対応するグループ所有者とホストを選択 - トリガーを作成
    ここに画像の説明を挿入
  • 新しいトリガー lnboud パケットの作成 - イベント (アラーム) をトリガーする受信パケットの平均数が 1 秒あたり 100 を超えます
    ここに画像の説明を挿入
  • 該当する監視項目を選択してください
    ここに画像の説明を挿入
  • 受信パケットの数を選択します
    ここに画像の説明を挿入
  • トリガー式を構成する
    ここに画像の説明を挿入
  • 最後に設定して追加します

{zabbix-agent:net.if.in[eth0,packets].last(#1)}>100
ここに画像の説明を挿入

  • トリガーのリストを表示する
    ここに画像の説明を挿入
  • 監視項目の傾向を確認する
    ここに画像の説明を挿入
  • 関連するトリガーを表示し、パケット数のサイズを監視します。
    ここに画像の説明を挿入
  • トリガーに戻り、値を「5」に変更し(100 は定義しすぎます)、
    異常イベントを表示するために観察します(3 つの方法)

    ここに画像の説明を挿入
    • 最初の方法: ホストに対応するトリガーをフィルターで除外します。
      ここに画像の説明を挿入
    • 2 つ目は、対応するホストのイベントを表示することです。
      ここに画像の説明を挿入
    • 3 番目の方法は、ダッシュボードの対応するシステム ステータスを表示することです。
      ここに画像の説明を挿入

アクションの構成 – アクションと電子メール アラートの構成:

  • 設定 - アクション - トリガー (アクションの作成)
    ここに画像の説明を挿入
  • 設定アクション
    ここに画像の説明を挿入
  • 構成条件
    ここに画像の説明を挿入
  • アクションの構成 - メール、メッセージの送信
    ここに画像の説明を挿入
  • アクションリストを表示する
    ここに画像の説明を挿入
  • メールが届いているか確認してください
    ここに画像の説明を挿入

∗ ∗ 概要: ∗ ∗ \color{red}{**概要:**}概要:
クライアントはサーバーに接続 – 監視項目の設定 – トリガーの設定 – アクションの実行 – アラームの受信
∗ ∗ 補足: ∗ ∗ \color{red}{**補足: **}補足
-アクションタブの設定詳細
ここに画像の説明を挿入
-コンディションタブの設定詳細
ここに画像の説明を挿入
-オペレーションタブの設定詳細 -アクション動作の設定詳細-
ここに画像の説明を挿入
メッセージ送信-リモートコマンド
実行
ここに画像の説明を挿入

ここに画像の説明を挿入

スクリプトを使用して障害ドリルを復元してみます。

  • httpd サービスをインストールします。

クライアントは Httpd サービスをインストールして開始し、ポート 80 をリッスンします。
サーバーはこのサービス (ポート) を監視し、検出できない場合は「再起動/開始」操作を実行します。
検出されたステータスは「OK」、それ以外の場合は「問題」

# 客户端安装httpd服务
 yum install -y  httpd

ここに画像の説明を挿入

# 客户端启动 httpd 服务并查看进程及端口
systemctl start httpd.service		#启动服务
ps -ef |grep httpd				#查看服务进程		
ss -tnl						#查看启用端口

ここに画像の説明を挿入

  • zabbix-agent ホストは、監視項目 (項目) を追加します。

ここに画像の説明を挿入

  • 監視項目の表示、追加
    ここに画像の説明を挿入
  • 検出データの表示
    ここに画像の説明を挿入
  • 検出傾向の表示
    ここに画像の説明を挿入
  • zabbix-agent ホストはトリガー (トリガー) を追加します。

  • 新しいトリガー

{zabbix-agent:net.tcp.listen[80].last(#1)}=0
ここに画像の説明を挿入

  • 式を選択
    ここに画像の説明を挿入
  • トリガーのリストを表示する
    ここに画像の説明を挿入
停止 httpd 服务
systemctl stop httpd.service

ここに画像の説明を挿入

  • モニターの傾向を再度表示する
    ここに画像の説明を挿入
启动 httpd服务,查看事件
systemctl start httpd.service
状态由:OK -- Problem -- OK

ここに画像の説明を挿入

  • zabbix-agent ホストはアクション (アクション) を追加します。

    • 「アクション」タブを構成する
      ここに画像の説明を挿入
    • 「条件」タブを構成する
      ここに画像の説明を挿入
    • 「アクション」タブを構成する
      • 構成の最初のステップ
        ここに画像の説明を挿入
      • 2 番目のステップを構成する
        ここに画像の説明を挿入

カスタム スクリプト (カスタム スクリプト) 実装の前提:
エージェント側の設定:
1. zabbix は対応するスクリプトを実行する権限を持っています;
/etc/sudoers ファイルを編集し、次を追加します: zabbix ALL=(ALL) NOPASSWD: ALL
コメント次の行: Defaults requlretty
2. エージェント プロセスはリモート コマンドの実行を許可し、/etc/zabbix/zabbix-agentd.conf
ファイルを

  • zabbix-agent 構成ファイルを変更します。
visudo		#为zabbix用户赋予sudo权限,如果 /etc/sudoers文件中有Defaults requiretty这一行需要注释,表明远程执行命令不需要开启终端

ここに画像の説明を挿入

systemctl restart zabbix-agent.service		#重启zabbix-agent客户端服务

ここに画像の説明を挿入

  • 3 番目のステップを構成する
    ここに画像の説明を挿入
  • アクションリストを表示する
    ここに画像の説明を挿入
  • httpd サービスを閉じてアクションをトリガーします
systemctl stop httpd.service		#停止httpd服务
ps -ef |grep httpd				#查看服务进程		
ss -tnl						#查看启用端口

ここに画像の説明を挿入

  • ステータスの傾向変化の表示
    ここに画像の説明を挿入
  • イベントを確認すると、サービスのダウンタイムが非常に短いことがわかります
    ここに画像の説明を挿入
  • ログレベルに応じて、実行されたアクションは/var/log/zabbix/zabbix_server.logに表示されます。
  • httpd サービスの起動ポート番号を変更し、次のいくつかの手順の実行を継続するかどうかを確認します (問題のエスカレーション) \color{red}{httpd サービスの起動ポート番号を変更し、次のいくつかの手順の実行を継続するかどうかを確認します (問題のエスカレーション)エスカレーション)}h t t p dサービスの起動ポート番号を変更し次のいくつかの手順(問題エスカレーション)の実行を続行するかどうかを確認します。
grep Listen /etc/httpd/conf/httpd.conf			#查看httpd占用端口号
sed -i 's/80/8080/g' /etc/httpd/conf/httpd.conf		#修改监听端口Listen 80为8080
grep Listen /etc/httpd/conf/httpd.conf			#查看httpd占用端口号

ここに画像の説明を挿入

ss -tnl						#查看当前占用端口
systemctl restart httpd.service	#重启httpd服务
ss -tnl						#查看当前占用端口

ここに画像の説明を挿入

  • 最新データ、データ傾向を見る
    ここに画像の説明を挿入

  • 数分待ってからイベントの実行ステータスを表示します
    ここに画像の説明を挿入

  • 確認してください、メールが配信されました
    ここに画像の説明を挿入

  • ポート番号を 80 に戻してサービスを再起動し、メールを確認します。
    ここに画像の説明を挿入

アラーム電子メールのメディア タイプを追加します – スクリプト (スクリプト) を使用します。

  • アラーム メディア タイプ
    ここに画像の説明を挿入
    スクリプトを追加しました − − zabbix サーバー上のスクリプトの保存場所: \color{red}{script -- zabbix サーバー上のスクリプトの保存場所:}スクリプト_ _ _ _ _- z a b b i xサーバー上のスクリプト保存される場所:
位于server主机的alertscripts参数定义的目录下,默认为/usr/lib/zabbix/alertscripts/
zabbix调用脚本时会向其传递参数;3.0之前的版本通过:
	$1:消息接收人	$2:消息主题	  $3:消息主体
3.X之后的版本,此三个参数默认不再传递,需自行定义;
	参数(){
    
    ALSTER.SENDTO}	{
    
    ALSTER.SUBJECT}	{
    
    ALSTER.MESSAGE}
  • メディアリストを見る
    ここに画像の説明を挿入

  • オリジナルに基づいて「Admin」アラーム メディア タイプを追加しました。
    ここに画像の説明を挿入

  • タイプを選択して追加
    ここに画像の説明を挿入

  • アラームメディアを更新する
    ここに画像の説明を挿入

  • 追加されたアクション – アクション (スクリプトを使用してメールを送信する)
    ここに画像の説明を挿入

  • zabbixサーバーにスクリプトを追加する

yum provides */mail		#查看mail命令在哪个安装包中(脚本中用到此命令,需要安装)
yum install -y mailx-12.5-19.el7.x86_64		#安装包含mailm命令安装包
vi sendmail.sh		#新建脚本文件,需要与配置报警媒介脚本命名一样

ここに画像の説明を挿入

chmod +x sendmail.sh	#赋予执行权限
systemctl restart zabbix-server	#重启服务生效
bash -n sendmail.sh	测试脚本有没有问题
bash -x sendmail.sh [email protected] "hello world" "hello everyone"	#发送测试邮件

ここに画像の説明を挿入

  • 電子メールが正常に送信されたことを確認する
    ここに画像の説明を挿入

  • クライアントはポート番号を再度変更し、時間を待って再度検証します。
    イベントを確認します。4 つのステップがすべて実行されました。

    ここに画像の説明を挿入

  • 実行アクションのログは、次の場所で表示できます。 レポート – アクション ログで、実行送信のステータス (件名コンテンツを含む) を表示します。
    ここに画像の説明を挿入

  • メールが実際に受信されたかどうかを確認する
    ここに画像の説明を挿入

グラフの作成:

  • 構成 - ホスト - グラフィックス (グラフ)

  • 受信パケット数と送信パケット数の傾向グラフを作成する
    ここに画像の説明を挿入
  • グラフの表示
    モニタリング – グラフ – 対応するグループ/ホストを選択
    ここに画像の説明を挿入
  • 受信バイト数と送信バイト数の傾向グラフを作成する
    ここに画像の説明を挿入
  • CPU コンテキスト スイッチの数のトレンド グラフを作成する
    ここに画像の説明を挿入
  • Webサービスの傾向グラフの作成(円を使用)
    ここに画像の説明を挿入
  • 上記のトレンド グラフを 1 つの画面に表示します。

    検出 – 集計グラフ – 集計グラフの作成
    ここに画像の説明を挿入
  • 集約されたグラフのリストを表示して構成する
    ここに画像の説明を挿入
  • グラフィックを追加する
    ここに画像の説明を挿入
  • 4つのグラフを順番に集計グラフに追加します
    ここに画像の説明を挿入
  • 効果を見る
    ここに画像の説明を挿入

ホスト テンプレート (テンプレート) を構成します。

ホストの作成とホスト監視項目、トリガー、グラフィックスなどの構成と非常に似ているため、ここでは詳しく紹介しません\color{red}{ホストの作成とホスト監視項目の構成と非常に似ていますが、トリガーやグラフィックなど、あまり詳しくないのでここで紹介}ホストの作成ホスト監視項目トリガーグラフィックスなどの設定よく似ているためここでは詳しく紹介ません。
ここに画像の説明を挿入

  • テンプレートを作成する
    ここに画像の説明を挿入
  • test-templates-group グループの下のテンプレート リストをフィルタリングします。
    ここに画像の説明を挿入
  • テンプレートに移動し、このテンプレートのアプリケーション セットを作成します
    ここに画像の説明を挿入
  • テンプレート監視項目の作成 - ネットワーク カードの受信バイト数と送信バイト数
    ここに画像の説明を挿入
  • テンプレートの表示 – 監視項目のリスト
    ここに画像の説明を挿入
  • テンプレートの作成 – グラフ
    ここに画像の説明を挿入
  • test-templates テンプレートの下のグラフィックのリストを表示します。
    ここに画像の説明を挿入
  • ホストリンクテンプレート方式
    ここに画像の説明を挿入
  • ホストのリンク解除テンプレートの方法
    ここに画像の説明を挿入
  • リンクされたテンプレート ホストの監視トレンド グラフを表示する
    ここに画像の説明を挿入
  • 他のテンプレートをこのテンプレートにリンク/集約し、そのテンプレート構成コンテンツを適用します。
    例: test-templates テンプレート内のテンプレート OS Linux テンプレートをリンクします。これらはすべて Linux オペレーティング システムに適用できます。

    ここに画像の説明を挿入
  • Template OS Linux テンプレートをリンクした後、test-templates テンプレートの内容を再度確認します。
    アプリケーション セット/監視項目/トリガー/グラフィックスなど、明らかに大幅に増加しています。

    ここに画像の説明を挿入
  • テンプレートのインポート/エクスポート – 異なる zabbix サーバー間でテンプレートを共有すると便利です
    ここに画像の説明を挿入
  • 新しいホスト監視項目 Web サービスを作成し、マクロ「{$HTTP_PORT}」を呼び出します
    ここに画像の説明を挿入
  • 設定したばかりの監視項目を表示します
    ここに画像の説明を挿入
  • グローバルマクロを追加する
    ここに画像の説明を挿入
  • 設定した監視項目を再度確認する
    ここに画像の説明を挿入
  • テンプレートマクロを追加
    ここに画像の説明を挿入
  • 設定した監視項目を再度確認する
    ここに画像の説明を挿入
  • ホストマクロを追加
    ここに画像の説明を挿入
  • 設定したばかりの監視項目を再度表示します。
    ここに画像の説明を挿入
    概要: \color{red}{概要:}概要:
由此断定,范围越小,优先级越高;
宏的依次查找次序为:
全局宏 -- 模板宏 -- 主机宏
宏类型:
	内建:{
    
    MACRO_NAME}
	自定义:{
    
    $MACRO_NAME}
命名方式:大写字母、数字和下划线组成;

カスタム キーを作成して、クライアントの空きメモリ監視項目を追加します。

	创建自定义Key方法,上面在创建主机组的时候已经讲过,也做了示范;

ここに画像の説明を挿入

  • 最新データのメモリフリー監視項目を表示
    ここに画像の説明を挿入
  • トレンドグラフを閲覧し、
    ここに画像の説明を挿入
    この監視項目を定義するトリガーを Mb 単位で表示する場合、一定の値未満である必要があり、アラームに対するアクション (アクション) − − デモンストレーションを行わない この監視項目のトリガーを定義する場合、 be 特定の値未満の場合、アクション (アクション) をトリガーしてアラームを発します − - デモなし \color{red}{この監視項目のトリガーを定義する場合、一定の値未満の場合にアクション (アクション) をトリガーする必要があります一定値未満 アラーム -- デモなし この監視項目のトリガーを定義する場合、一定値未満である必要があります。アラーム -- デモなしへのアクション (アクション) をトリガーします。この監視項目トリガー定義する一定以下になっ場合Act i o n (アクション)トリガーしてアラーム発しますデモンストレーションなしこの監視項目トリガー定義する一定以下の場合Act i o n アクショントリガーしてアラーム発しますプレゼンテーションなし

クライアントは Nginx サービスをインストールし、監視を構成します。

  • 注: \color{red}{注:}:
上面安装了httpd服务,端口会被占用,因此先把httpd服务停掉;
systemctl stop httpd.service
将zabbix中httpd的80端口监控项也禁用掉。
  • クライアントは nginx サービスをインストールします。

# 先下载nginx的rpm包
cd /usr/local/src/
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm

ここに画像の説明を挿入

# 安装nginx服务
yum install -y nginx-1.10.0-1.el7.ngx.x86_64.rpm

ここに画像の説明を挿入

  • 「/etc/nginx/conf.d/default.conf」設定ファイルを編集し、location セクションを追加します。
    ここに画像の説明を挿入
  • nginxサービスを開始する
nginx -t		#查看配置文件语法是否存在错误
systemctl start nginx.service		#启动服务
ps -ef |grep nginx			#查看进程
netstat -anpl |grep pid	#查看占用端口号
curl http://127.0.0.1/ngxstatus		#网页查看nginx的活动连接数

ここに画像の説明を挿入

  • カスタム キーを追加して、nginx のアクティブな接続の数を取得します。
# 修改zabbix-agent配置文件"/etc/zabbix/zabbix_agentd.conf" 添加:
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk '/^Active/{print $3}'
  • カスタム キーを追加して、nginx が受け入れる訪問数を取得します
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk 'NR==3{print $3}'
# 重启服务
systemctl restart zabbix-agent.service

ここに画像の説明を挿入

# zabbix-server端命令获取自定义key的结果(nginx活动连接数)
zabbix_get -s 192.168.137.139 -k "nginx.status.active"
# zabbix-server端命令获取自定义key的结果(nginx接收访问的数量)
zabbix_get -s 192.168.137.139 -k "nginx.status.accepts"

ここに画像の説明を挿入

  • パラメータ値の読み取りを容易にし、読み取る必要があるパラメータを自動的に一致させるには、スクリプトを記述する必要があります \color{red}{パラメータ値の読み取りを容易にし、必要なパラメータを自動的に一致させるには読み取るには、スクリプトを記述する必要があります}パラメータの読み取りを容易にし読み取る必要があるパラメータ自動的照合するにはスクリプトを記述する必要があります
cat /usr/bin/ngxstatus.sh

ここに画像の説明を挿入

# 赋予脚本执行权限
chmod +x /usr/local/ngxstatus.sh
# 依次执行脚本获取各个值
/usr/bin/ngxstatus.sh active

ここに画像の説明を挿入

# 修改zabbix-agent配置文件自定义key参数的变量值
UserParameter=nginx.status.[*],/usr/bin/ngxstatus.sh $1
# 重启服务
systemctl restart zabbix-agent.service

ここに画像の説明を挿入

  • サーバーはコマンドを実行し、取得した値を再度確認します
zabbix_get -s 192.168.137.139 -k "nginx.status.[active/accepts/...]"

ここに画像の説明を挿入

  • 概要: \color{red}{概要:}概要
    呼び出しスクリプト内のカスタムキーを組み合わせてzabbix-agentの監視項目を作成 ここでは詳しく説明しませんが、上記のカスタム空きメモリキーを組み合わせることで実現できます。
    例:
    • nginx-active 監視項目を構成する
      ここに画像の説明を挿入
    • トリガーの作成、監視項目(アイテム)へのバインド
      ここに画像の説明を挿入
    • 監視トレンド チャートを確認します。
      ここに画像の説明を挿入
      ステータスが 0 の場合、トリガーはイベントをトリガーし、イベントはアクションを実行し、アラームを送信します。
      ここではこれらについて簡単に説明します。残りは自分で追加します。 nginx によって取得されたこれらのインジケーターは、集約されたグラフィックスに入れられます。

PythonネイルロボットのZabbixアラーム機能:

まず、DingTalk グループ チャットにカスタム ロボットを追加します。
创建群聊 -- 群设置 -- 添加机器人 -- 选择自定义机器人

ここに画像の説明を挿入

  • クリックして追加
    ここに画像の説明を挿入

  • カスタムボット名; 追加が完了しました
    ここに画像の説明を挿入

  • Webhook のコンテンツをコピーする
    ここに画像の説明を挿入

  • 追加後、グループチャットメッセージが表示されます
    ここに画像の説明を挿入

  • スクリプトを作成します。

# 在zabbix服务端的alertscripts目录下新建一个python脚本
cd /usr/lib/zabbix/alertscripts/
# 脚本内容可以直接克隆我的Git:
git --version		#查看是否安装又git
yum -y install git	#安装git工具

ここに画像の説明を挿入

git clone https://github.com/Linux-Chiron/zabbix-dingding.git		#克隆zabbix-dingding代码到本地
mv zabbix-dingding/zabbix_dingding.py .		#移动zabbix_dingding.py脚本到当前目录

ここに画像の説明を挿入

  • スクリプト内の「api_url」パラメーターの URL (Webhook) 値を変更します。
    ここに画像の説明を挿入
# 为脚本赋予执行权限
chmod +x zabbix_dingding.py
# 查看Python版本,使用Python2.x
进入:python
退出:quit()
# 手动调试脚本
python zabbix_dingding.py 123

ここに画像の説明を挿入

  • 手動デバッグ スクリプトを参照すると、エラーが報告されます。解決策: − − スクリーンショットのデモンストレーションがありません\color{red}{手動デバッグ スクリプトを参照すると、エラーが報告されます。解決策: -- スクリーンショットのデモンストレーションがありません}手動デバッグスクリプトを見るエラーが報告されました解決策: _スクリーンショットデモなし_
yum -y install epel-release	#安装epel扩展源
yum -y install python-pip		#安装python-pip
pip install --upgrade pip		#升级pip
pip install requests			#安装requests包
  • スクリプトを手動で再度デバッグします。
    ここに画像の説明を挿入
アラート メディアを作成します。

ここに画像の説明を挿入

  • アラーム メディアをユーザー管理者のアラーム メディアにバインドします。
    ここに画像の説明を挿入

  • 管理者ユーザーのアラーム メディア リストが表示され、正常に追加されました
    ここに画像の説明を挿入

  • アクションを追加する
    ここに画像の説明を挿入

  • 関連するトリガー条件を追加するための「条件」タブ
    ここに画像の説明を挿入

  • [アクションの設定] タブ – DingTalk のみを送信します
    ここに画像の説明を挿入

  • アクションのリストを表示する
    ここに画像の説明を挿入

  • 受信パケット数を変更するトリガー式の値
    ここに画像の説明を挿入

  • ビュー検出 - イベント
    ここに画像の説明を挿入

  • DingTalk でアラームがあるかどうかを確認する – 障害/回復通知

    • 失敗通知:
      ここに画像の説明を挿入

    • 回復通知:
      ここに画像の説明を挿入

補足: − − アクションタブのタイトルと内容情報: \color{red}{補足: -- アクションタブのタイトルと内容情報:}補足アクションタブタイトルコンテンツ情報: _

  • 障害通知内容:
服务器:{
    
    HOST.NAME}发生: {
    
    TRIGGER.NAME}故障!
{
    
    
告警主机:{
    
    HOST.NAME}
告警地址:{
    
    HOST.IP}
监控项目:{
    
    ITEM.NAME}
监控取值:{
    
    ITEM.LASTVALUE}
告警等级:{
    
    TRIGGER.SEVERITY}
当前状态:{
    
    TRIGGER.STATUS}
告警信息:{
    
    TRIGGER.NAME}
告警时间:{
    
    EVENT.DATE} {
    
    EVENT.TIME}
事件ID:{
    
    EVENT.ID}
}
  • 通知コンテンツを復元します。
服务器:{
    
    HOST.NAME}: {
    
    TRIGGER.NAME}已恢复!
{
    
    
告警主机:{
    
    HOST.NAME}
告警地址:{
    
    HOST.IP}
监控项目:{
    
    ITEM.NAME}
监控取值:{
    
    ITEM.LASTVALUE}
告警等级:{
    
    TRIGGER.SEVERITY}
当前状态:{
    
    TRIGGER.STATUS}
告警信息:{
    
    TRIGGER.NAME}
告警时间:{
    
    EVENT.DATE} {
    
    EVENT.TIME}
恢复时间:{
    
    EVENT.RECOVERY.DATE} {
    
    EVENT.RECOVERY.TIME}
持续时间:{
    
    EVENT.AGE}
事件ID:{
    
    EVENT.ID}
}

おすすめ

転載: blog.csdn.net/wkl1007/article/details/108325357