記事ディレクトリ
-
- **目的:**
- Zabbix 3.0をデプロイしてインストールします。
- Mysqlはデータベースを構築し、zabbixライブラリとテーブルをインポートします
- Zabix メイン設定ファイルを変更して開始します
- 電子メールアラート機能を設定します。
- 自動検出を構成してテストします。
- ホストとホスト グループを作成します。
- 監視項目(項目)を設定します。
- トリガーを設定します (トリガー):
- アクションを構成する -- アクションと電子メール アラートを構成します。
- スクリプトを使用して障害ドリルを復元してみます。
- アラーム電子メールのメディア タイプを追加します -- スクリプト (スクリプト) を使用します。
- グラフの作成:
- ホスト テンプレート (テンプレート) を構成します。
- カスタム キーを作成して、クライアントの空きメモリ監視項目を追加します。
- クライアントは Nginx サービスをインストールし、監視を構成します。
- PythonネイルロボットのZabbixアラーム機能:
-
目的:
-
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;主机名已改变
yum -y install mariadb-server mariadb
systemctl start mariadb #启动服务
systemctl enable mariadb #加入系统服务,开机自启动
-
公式 yum ソースを使用して Zabbix をインストールする
- 公式 Web サイトのアドレス:
https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=MySQL
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の使用法)
- zabbix-server-mysql-3.4.6-1.el7.x86_64 (zabbix サーバーのメインインストーラー)
- zabbix-agent-3.4.6-1.el7.x86_64 (zabbix エージェントマスターインストーラー)
- zabbix-web-3.4.6-1.el7.noarch (zabbix Web インストーラー)
- zabbix-get-3.4.6-1.el7.x86_64.rpm (監視データの取得に使用される zabbix サーバー インストール プログラム)
- zabbix-web-mysql-3.4.6-1.el7.noarch.rpm (zabbix Web 接続データベースのインストール プログラム)
- zabbix-release-3.4.2-1.el7.noarch.rpm (zabbix yum ソース構成ファイルを生成)
- 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 サービスをインストールして開始し、ポート 80 をリッスンします。
サーバーはこのサービス (ポート) を監視し、検出できない場合は「再起動/開始」操作を実行します。
検出されたステータスは「OK」、それ以外の場合は「問題」
# 客户端安装httpd服务
yum install -y httpd
# 客户端启动 httpd 服务并查看进程及端口
systemctl start httpd.service #启动服务
ps -ef |grep httpd #查看服务进程
ss -tnl #查看启用端口
{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的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 によって取得されたこれらのインジケーターは、集約されたグラフィックスに入れられます。
- nginx-active 監視項目を構成する
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}
}