ZabbixカスタムTCP11状態監視テンプレート
複数のホストに同時に監視項目を追加していると非常に面倒ですが、実際の本番環境では、同じ監視項目を複数のマシンに同時に追加しなければならない場合が多くあります。手動で1つずつ追加するのは非常に面倒です。テンプレートの誕生により、監視する必要のあるホストにテンプレートをリンクするためのテンプレートを作成するだけで済みます。
まず、監視項目の大規模な作成を手動で実現し、それをテンプレートにします。
監視項目を追加する例として、tcp11状態を取り上げます。
tcp11中状态
ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSE
CLOSE_WAIT
LAST_ACK
LISTEN
CLOSING
tcp 3回ハンドシェイク、4回ウェーブコンセプトイラスト
3つのハンドシェイク:
まず、クライアントはクローズクローズ状態にあり、最初のSYN要求がサーバーに送信された後(このSYN要求はseqランダムシーケンスを実行します)、クライアントはSYN_SENT状態にあり、サーバーはクライアントから送信された要求を受信している間はリッスン状態リスニング状態、そうでない場合は要求パケットを受信できません。要求パケットを受信した後はSYN_RCVD状態になります。このとき、SYN要求パケット(これもランダムシーケンス)はクライアントに送信され、ACK確認パケット(ここではACKはランダム)シーケンス値は、クライアントによって送信されたSYNのシーケンス番号+1です。クライアントは、これら2つのパケットを受信した後、ESTABLISHED状態になります。また、ACKパケットをサーバーに送信します(ACKのランダムシーケンス値はサーバーに送信されたSYNシーケンス+1です)。サーバーが受信した後、ステータスはESTABLISHEDになります。
この状態のリクエスト数が多いと、ddos攻撃を受けることに注意してください。
4回振る:
接続を切断する必要がある場合、データ送信はサーバーによって開始されるため、サーバーはアクティブに切断します。そのため、切断もサーバーによって開始されます。
まず、サーバーはFIN要求パケットをクライアントに送信します(切断要求を表します)。送信が完了すると、サーバーはFIN_WAIT_1状態になります(_1は、第2の手の波と区別するためだけのものです)。クライアントは受信後に送信します。ACKの送信後、クライアントはCLOSE_WAIT状態になり、サーバーは受信後にFIN_WAIT_2状態になります。このとき、クライアントはFIN要求パケットも送信して要求します。切断。クライアントは、送信後にLAST_ACKになったことを後悔しています。ステータスでは、サーバーはFIN要求パケットを受信した後TIME_WAIT状態になります。このとき、2MSL時間(MSL時間は60秒、2MSLは120秒)があります。 )、2分後にACK確認パケットがクライアントに送信され、確認が壊れていることを示します。接続を開くと、クライアントはそれを受信した後、クローズ状態になり、4回振って完了します。
1. TCP11ステータス監視項目を手動で作成します
1.1。カスタム監視項目キーを作成します
1.批量获取tcp11种状态取值命令
[root@zabbix-server ~]# stata=(ESTABLISHED SYN_SENT SYN_RECV FIN_WAIT1 FIN_WAIT2 TIME_WAIT TIME_WAITCLOSE CLOSE_WAIT LAST_ACK LISTEN CLOSING )
[root@zabbix-server ~]# for i in ${stata[@]}; do echo "netstat -anpt | grep -c "\'$i\'""; done
netstat -anpt | grep -c 'ESTABLISHED'
netstat -anpt | grep -c 'SYN_SENT'
netstat -anpt | grep -c 'SYN_RECV'
netstat -anpt | grep -c 'FIN_WAIT1'
netstat -anpt | grep -c 'FIN_WAIT2'
netstat -anpt | grep -c 'TIME_WAIT'
netstat -anpt | grep -c 'TIME_WAITCLOSE'
netstat -anpt | grep -c 'CLOSE_WAIT'
netstat -anpt | grep -c 'LAST_ACK'
netstat -anpt | grep -c 'LISTEN'
netstat -anpt | grep -c 'CLOSING'
2.批量获得key值
[root@zabbix-server ~]# for i in ${stata[@]}
> do
> echo "UserParameter=$i,netstat -anpt | grep -c "\'$i\'""
> done
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING
3.在配置文件定义key值
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING
4.重启zabbix-agent
[root@zabbix-server ~]# systemctl restart zabbix-agent
1.2。ページに監視項目を作成する
カスタムキーはzabbixサーバーで作成されるため、zabbixサーバーホストを見つけてください
すべての監視項目はこのように作成されます
クリックして監視項目を作成
名前:確立された状態の数
キー値:確立済み
アプリケーションセット:tcp11状態
すべての監視項目が作成されます
2. tcp11状態をテンプレートにして、ホストグループ内のすべてのホストに適用します
2.1。監視項目キー構成ファイルを監視ホストにプッシュします
[root@zabbix-server ~]# for i in 192.168.81.220 192.168.81.230
> do
> scp /etc/zabbix/zabbix_agentd.d/tcp.conf root@$i:/etc/zabbix/zabbix_agentd.d/
> ssh root@$i "systemctl restart zabbix-agent"
> done
Warning: Permanently added '192.168.81.220' (ECDSA) to the list of known hosts.
[email protected]'s password:
tcp.conf 100% 660 205.2KB/s 00:00
[email protected]'s password:
Warning: Permanently added '192.168.81.230' (ECDSA) to the list of known hosts.
[email protected]'s password:
tcp.conf 100% 660 708.3KB/s 00:00
[email protected]'s password:
2.2。テンプレートを作成する
[構成]-[テンプレート]-[テンプレートの作成]をクリックします
2.3。監視項目を追加する
クリックして監視項目を作成します
2.4。既存の監視項目をテンプレートに追加します
作成したtcp11監視項目を見つけて、[コピー]をクリックします
ターゲットタイプ選択テンプレート-対応するテンプレートを見つける
すでに監視項目があることがわかります
2.5。アプリケーションセットを作成する
テンプレートの検索-アプリケーションセット-アプリケーションセットの作成
2.6。アプリケーションセットに監視項目を追加します
すべての監視項目を選択-バッチ更新
新規または既存のアプリケーションを検索して追加し、アプリケーションセットを選択します
2.7。グラフィックを作成する
テンプレート-グラフィック-グラフィックの作成
グラフィック情報を入力します
名前:tcp11のステータス
すべてのtcp監視項目を選択します
[追加]をクリックします
2.8。テンプレートの作成が完了しました
2.9。ホストグループ内のホストにテンプレートを適用する
192.168.81.220操作
[構成]-[ホスト]-[テンプレート]-[テンプレートの選択]-[追加]をクリックします
更新をクリックします
192.168.81.230の操作は一貫しています
2.10。監視項目を追加しました
2.11モニタリングデータの表示
監視-最新のデータ-ホストの選択-アプリケーションセットの選択
2.12グラフィックの表示
構成-グラフィックス-ホストの選択-グラフィックスの選択
3.サポートされていないアイテムの待機時間を短縮します
デフォルトは10mですが、10秒に変更します
管理-一般-その他の選択-サポートされていないアイテムの更新
サポートされていないものは、10秒後に自動的に更新されます