DUICUO

CentOS 7 への Zabbix Agent 6.0 のワンクリックインストールと自動登録。

問題の背景

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 = システムうなめ
インクルード= /etc/zabbix/zabbix_agentd.d/*.conf
安全でないユーザーパラメータ=1
終了
}
関数 AGENT_RUN() {
ステータス=$(ss -ntl|grep 10050|head -1|awk '{print $1}'|wc -l)
if [[ $STATUS -eq 1 ]];then echo $(hostname -I ) 'インストールOK!!!';else echo $(hostname -I ) 'インストール失敗!!!';fi
}

3. エージェントが正常に登録され、起動されたことを確認します。

ご覧の通り、正常に起動しました。

ヒント

次のエラーが発生した場合は、firewalld ファイアウォールがポート 10050 を開いているかどうかを確認してください。

 ファイアウォール- cmd -- 永続的-- ゾーン= パブリック-- 追加- ポート= 10050 / tcp
ファイアウォール- cmd -- リロード