1.目標
オフラインzabbixサーバーを使用してAlibabaCloud ECSサーバーを監視するなど、zabbixクロスネットワーク(クロスネットワークセグメント)監視をマスターします。
zabbix_agentカスタムパラメータで複数のパラメータを渡す方法をマスターする
2.説明
●最初のステップは、Alibaba CloudECSサーバーを監視するオフラインzabbixサーバーを実装する準備をすることです
zabbixサーバーは事前にcentos7.6上に構築されています。
●2番目のステップは、オフラインのzabbixサーバーを使用して、AlibabaCloudのnginx_statusのさまざまな接続をオンラインで監視することです。
ecsで事前にnginxサイトを構築し、Nginx_statusアクセスポリシーを構成します。
パブリックURLを使用してnginx_statusページにアクセスできるようにします。ページ効果のスクリーンショットは次のとおりです。
3つのオフラインzabbixサーバーがオンラインのAlibabaCloudECSサーバーを監視
1. ECSがポート10050を開いていることを確認します(zabbix_agentはデフォルトでポート10050を使用します)。
telnetコマンド[telnet123.123.123.123 10050]を使用して、回線上のzabbix_agentに正常にアクセスできることをテストできます。(123.123.123.123はAlibaba Cloud ECSサーバーのIPアドレスの例です)
セキュリティグループの開設には特に注意してください。
2.オフラインzabbixのアウトバウンド方向のポート10050がファイアウォールによってブロックされていないことを確認します。
[telnet 123.123.123.12310050]と同様のコマンドを使用してテストできます
3.監視ホストを追加します
オフラインのzabbixホストリストにAlibabaCloudECSサーバーを追加します
4.実際のAlibabaCloudECSモニタリング図を以下に示します
4.Webサイトへのアクセス数を監視するカスタム監視スクリプトを作成します
1.説明
私のzabbixサーバーは、監視スクリプトの作成に便利なcentos7.6を使用して構築されていますが、今回はシェルスクリプトを使用しており、高速、便利、シンプルな構文の特徴があります。
スクリプトを作成したら、zabbixサーバーを監視端末として使用します。
2.監視スクリプトを作成します
vi /data/script/xMonitorNginxStatus.sh
#!/usr/bin/env bash
#active 当前活动的客户端连接数,包括waiting连接数
#accepts 当前的客户端连接数
#handled 已处理的连接总数
#requests 客户端请求的总和
#reading 正在读取请求头的当前连接数
#writing 将响应写回客户端的当前连接数
#waiting 等待请求空闲客户端的当前连接数
#---注意:你的zabbix服务器上必须安装curl#
result="/usr/bin/curl -s $1"
case $2 in
active)
$result |awk '/Active/ {print $NF}'
;;
accepts)
$result |awk 'NR==3 {print $1}'
;;
handled)
$result |awk 'NR==3 {print $2}'
;;
requests)
$result |awk 'NR==3 {print $3}'
;;
reading)
$result |awk '/Reading/ {print $2}'
;;
writing)
$result |awk '/Writing/ {print $4}'
;;
waiting)
$result |awk '/Writing/ {print $6}'
;;
*)
echo -e "\e[1;31m应当输入参数active/accepts/handled/requests/reading/writing/waiting中的任一个\e[0m"
;;
esac
3.スクリプトに実行可能権限を追加することに注意してください(またはzabbixサービスのユーザーに実行権限を持たせます)
たとえば、このように書きますが、コピーすることはできません
chmod +x /data/script/xMonitorNginxStatus.sh
4.zabbixサーバー上のzabbix_agentd.confファイルを変更します
●必要に応じて、次のようなコンテンツ行を追加します。
UserParameter=xMonitorNginxStatus[*],"/data/script/xMonitorNginxStatus.sh" $1 $2
長蛇の列:$ 1は渡したURLで、$ 2はnginx_statusのステータス名です(active / accepts / handled / requests / reading / writing / waitingのいずれか)
このようにして、2つのパラメーターがカスタムスクリプトに渡されます
5.zabbixのタイムアウトパラメータを変更します
ナニ?これはなに?
WebページをプルするときにCURLが少し遅くなることがあるため、Webページをプルする時間が4秒を超えると、zabbixはタイムアウトの失敗を考慮します。
●zabbix_agentd.confのタイムアウトパラメータを変更します
[Timeout =]を含む行を見つけて、値を少し大きく調整します。たとえば、[ Timeout = 30 ]に変更します。
●zabbix_server.confのタイムアウトパラメータを変更します
[Timeout =]を含む行を見つけて、値を少し大きく調整します。たとえば、[ Timeout = 30 ]に変更します。
長時間:yumインストール方法を使用している場合、構成ファイルは/ etc / zabbix /ディレクトリーにあります。
6.zabbixサーバーで2つのサービスを再起動します
systemctl restart zabbix-agent
systemctl restart zabbix-server
7. zabbixシェルの下にあるzabbix_getツールを使用して、データを取得できるかどうかを確認します
zabbix_get -s 127.0.0.1 -p 10050 -k xMonitorNginxStatus["http://git.hiibm.com/kahn_status","writing"]
長い間:括弧内の2つの引用符は、スクリプトに渡される2つのパラメーターです。
このコマンドの意味は、zabbixサーバーでユーザーパラメーターxMonitorNginxStatus(つまり、カスタムスクリプト/data/script/xMonitorNginxStatus.sh)を実行し、2つのパラメーターをスクリプトに渡すことです。1つはURLの文字列であり、もう1つは書き込み文字列です。
この方法で値を正しく取得できれば、すべて問題ありません。
8.カスタムモニタリングスクリプトで取得したデータをzabbixWebページにグラフィカルに表示するにはどうすればよいですか?
zabbixWebページの[構成---ホスト--- zabbixサーバー]に監視項目を追加します
次に、グラフィックを追加して完了です。
何か問題でも?
他のウェブサイトの接続状態を監視するのはどうですか?
今すぐWebページのKeyValueにURLを書き込んでください。
五数要約
1. zabbix_agentプログラムはデフォルトでポート10050を使用し、クライアントはインバウンド方向にポート10050を開きます
2.オフラインzabbixサーバーはオンラインサーバーを監視し、zabbixサーバーの発信方向10050を開く必要があります
3.カスタムパラメーターのスクリプトで複数のパラメーターを渡す方法:UserParameter = xMonitorNginxStatus [*]、 "/ data / script / xMonitorNginxStatus.sh" $ 1 $ 2
--------------------------------------------終了2020年10月22日日16:30:09 --------------------------------------------- --------
技術的な投稿を書くのは非常に時間がかかります。この投稿があなたに役立つなら、あなたが少しでも自由にサポートしてくれて、私にもっと創造的な動機を与えてくれることを願っています。
ホワイトスネークパーティーの軽蔑