問題の背景Zabbixクライアントを手動で追加するのは非常に時間がかかり、人件費と時間コストの増加につながります。企業内の数千台規模のサーバーを監視するニーズに応えるため、Zabbixは自動検出・登録機能を提供しており、ローカルエリアネットワーク内のサーバーを一括で自動検出し、Zabbix監視プラットフォームに自動的に追加します。 自動検出(パッシブモード):サーバーによって開始され、Zabbixサーバーは検出プロセスを開始し、ローカルエリアネットワーク上のIPサーバーとデバイスを定期的にスキャンします。これにより、ホストの自動検出、ホストグループへのホストの自動追加、テンプレートの自動読み込み、アイテムの自動作成、イメージの自動作成が可能になります。 デメリット:エージェント サーバーの数が多すぎると、自動検出によって zabbix サーバーに大きな負荷がかかり、自動ホスト追加プロセスが非常に遅くなります。 自動登録(アクティブモード): ZabbixサーバーはZabbixエージェントからのアクティブなレポートを待機します。これはクライアントによって開始されますが、クライアントにはAgentdがインストールされ、実行されている必要があります。そうでない場合、自動的に登録され、ホストリストに追加されません。SNMPを使用するホストの場合は、自動検出を使用する必要があります。 デメリット:エージェントがサーバーを見つけられない可能性があります。 追記:アクティブかパッシブかはエージェントによって異なります。アクティブモードかパッシブモードかに関わらず、設定はエージェント側で行います。 以下では、Zabbix 6.0 での自動エージェント登録の実際的なプロセスについて説明します。 1. Zabbix ServerのWebインターフェースで自動登録を設定する(1) 構成 --> アクション --> 自動登録アクション。 (2)ホストの自動登録条件を定義する。 (3)登録したホストに関連付けるテンプレートを定義します。 2. CentOS 7 ホストに Zabbix エージェントをインストールして構成するためのワンクリック自動化スクリプト。 cd / opt rz がZabbix エージェント6.0.4-1.el7.x86_64.rpm をアップロードしました zabbix_install.sh インストールスクリプトを実行する sh zabbix_install . sh スクリプトの内容は次のとおりです。 cat zabbix_install . sh #!/usr/bin/env バッシュ # RHEL7 システムのみサポートされます # バージョン: 2.0 # モニターのアドレスを設定する サーバーアドレス= '192.168.31.47' 関数GET_OS_Version () { OS_Version = $ ( cat / etc / redhat - release | sed - r 's/.* ([0-9]+)\..*/\1/' ) } 関数INIT_OS () { # SELinux を無効にしました sed - i 's/SELINUX=enforcing/SELINUX=disabled/g' / etc / selinux / config 強制0を設定する } 関数GET_OS_STATUS () { プロセス= $ ( ps - ef | grep - v grep | grep zabbix_agent | wc - l ) if [[ $Processes != '0' ]]; then echo $ ( hostname - I ) 'エージェントプロセスはシステムに既に存在します!!!' ; exit 1 ; fi } 関数Install_7 (){ yum -y localinstall / opt / zabbix - エージェント- 6.0 .4 - 1. el7 . x86_64 . rpm & > /dev / null if [[ $ ? != '0' ]]; then echo $ ( hostname - I ) 'インストールに失敗しました!!!' ; fi systemctl start zabbix - エージェント systemctl enable zabbix - エージェント systemctl zabbix エージェントを再起動します } 関数Restart_AGENT7 () { systemctl zabbix エージェントを再起動します } 関数Configure (){ cat << EOF > /etc/ zabbix / zabbix_agentd . conf Pidファイル= /var/run/zabbix/zabbix_agentd.pid ログファイル= /var/log/zabbix/zabbix_agentd.log ログファイルサイズ= 0 サーバー= $SERVER_ADDRESS ServerActive = $SERVER_ADDRESS HostnameItem = システム. ホスト名 HostMetadataItem = システム。 うなめ インクルード=
3. エージェントが正常に登録され、起動されたことを確認します。 ご覧の通り、正常に起動しました。 ヒント次のエラーが発生した場合は、firewalld ファイアウォールがポート 10050 を開いているかどうかを確認してください。 ファイアウォール- cmd -- 永続的-- ゾーン= パブリック-- 追加- ポート= 10050 / tcp ファイアウォール- cmd -- リロード |