2017年2月2日木曜日

dockerのzabbix3.2環境でエージェント自動登録を試す

docker で zabbix3.2 のテスト環境を作る」で構築したZabbix環境でエージェントの自動登録を試してみます。


Zabbixサーバの設定変更


Zabbixエージェント起動時に自動登録するようにします。
Zabbixサーバの設定変更は、下記ページが参考になります。
http://junkbox.wicurio.com/index.php?Zabbix3%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%81%AE%E8%87%AA%E5%8B%95%E7%99%BB%E9%8C%B2

[ホストメタデータ]に "linux" を含む場合は、"LinuxServersグループ"に所属させ、"Template OS Linux" を適用するようにします。


Zabbixエージェントの設定変更


Zabbixエージェントの設定は、"/etc/zabbix/zabbix_agentd.conf"に記載されています。
DockerHubのZabbixエージェントの場合は、コンテナ作成時に指定する環境変数で zabbix_agnet.conf を変更できます。
詳細は、下記参照
https://hub.docker.com/r/zabbix/zabbix-agent/

今回は、docker-compose.yml を修正して、Zabbixエージェント起動時に自動登録するように設定します。
ホストメタデータ(ZBX_METADATA)には、上記の「Zabbixサーバ設定変更」にあわせて "linux" を設定します。
  agent:
    image: zabbix/zabbix-agent:alpine-latest
    volumes:
      - /etc/localtime:/etc/localtime:ro
    environment:
      ZBX_SERVER_HOST: zabbix_server_1
      ZBX_HOSTNAMEITEM: system.hostname
      ZBX_METADATA: linux
    ports:
      - "10050:10050"
    depends_on:
      - server
    privileged: true

動作確認


コンテナの状態を確認します。
[root@centos0702 zabbix]# docker-compose ps
     Name                    Command               State                 Ports
--------------------------------------------------------------------------------------------
zabbix_agent_1    /bin/bash /run_zabbix_comp ...   Up      0.0.0.0:10050->10050/tcp
zabbix_db_1       docker-entrypoint.sh mysql ...   Up      0.0.0.0:3306->3306/tcp
zabbix_server_1   /bin/bash /run_zabbix_comp ...   Up      0.0.0.0:10051->10051/tcp, 162/udp
zabbix_web_1      /bin/bash /run_zabbix_comp ...   Up      443/tcp, 0.0.0.0:80->80/tcp

agent のコンテナを再構築して、自動登録の設定を有効にします。
[root@centos0702 zabbix]# docker-compose up -d --no-deps agent
Recreating zabbix_agent_1

ログで設定変更を確認します。
[root@centos0702 zabbix]# docker-compose logs agent
Attaching to zabbix_agent_1
agent_1   | ** Deploying Zabbix agentd with none database
agent_1   | ** Preparing the system
agent_1   | ** Preparing Zabbix agent
agent_1   | ** Preparing Zabbix agent configuration file
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "PidFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "LogType": 'console'... added
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "LogFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "LogFileSize": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "DebugLevel": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "SourceIP": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "EnableRemoteCommands": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "LogRemoteCommands": ''... removed
agent_1   | ** Using 'zabbix_server_1' servers for passive checks
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "Server": 'zabbix_server_1'... updated
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "ListenPort": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "ListenIP": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "StartAgents": ''... removed
agent_1   | ** Using 'zabbix_server_1:10051' servers for active checks
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "ServerActive": 'zabbix_server_1:10051'... updated
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "Hostname": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "HostnameItem": 'system.hostname'... added
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "HostMetadata": 'linux'... added
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "HostMetadataItem": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "RefreshActiveChecks": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "BufferSend": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "BufferSize": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "MaxLinesPerSecond": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "Timeout": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "Include": '/etc/zabbix/zabbix_agentd.d/'... added first occurrence
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "UnsafeUserParameters": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "LoadModulePath": '/var/lib/zabbix/modules/'... added
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSConnect": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSAccept": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSCAFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSCRLFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSServerCertIssuer": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSServerCertSubject": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSCertFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSKeyFile": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSPSKIdentity": ''... removed
agent_1   | ** Updating '/etc/zabbix/zabbix_agentd.conf' parameter "TLSPSKFile": ''... removed
agent_1   | ** Cleaning the system
agent_1   | ########################################################
agent_1   | ** Executing supervisord
agent_1   | 2017-01-30 10:56:42,545 CRIT Set uid to user 0
agent_1   | 2017-01-30 10:56:42,545 CRIT Set uid to user 0
agent_1   | 2017-01-30 10:56:42,545 WARN Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
agent_1   | 2017-01-30 10:56:42,545 WARN Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
agent_1   | 2017-01-30 10:56:42,558 INFO RPC interface 'supervisor' initialized
agent_1   | 2017-01-30 10:56:42,558 INFO RPC interface 'supervisor' initialized
agent_1   | 2017-01-30 10:56:42,559 INFO supervisord started with pid 1
agent_1   | 2017-01-30 10:56:42,559 INFO supervisord started with pid 1
agent_1   | 2017-01-30 10:56:43,594 INFO spawned: 'zabbix-agentd' with pid 55
agent_1   | 2017-01-30 10:56:43,594 INFO spawned: 'zabbix-agentd' with pid 55
agent_1   | Starting Zabbix Agent [b23ca4da2c2a]. Zabbix 3.2.3 (revision 64610).
agent_1   | Press Ctrl+C to exit.
agent_1   |     55:20170130:105643.616 Starting Zabbix Agent [b23ca4da2c2a]. Zabbix 3.2.3 (revision 64610).
agent_1   |     55:20170130:105643.616 **** Enabled features ****
agent_1   |     55:20170130:105643.616 IPv6 support:          YES
agent_1   |     55:20170130:105643.616 TLS support:           YES
agent_1   |     55:20170130:105643.616 **************************
agent_1   |     55:20170130:105643.616 using configuration file: /etc/zabbix/zabbix_agentd.conf
agent_1   |     55:20170130:105643.616 agent #0 started [main process]
agent_1   |     56:20170130:105643.616 agent #1 started [collector]
agent_1   |     57:20170130:105643.617 agent #2 started [listener #1]
agent_1   |     58:20170130:105643.620 agent #3 started [listener #2]
agent_1   |     59:20170130:105643.624 agent #4 started [listener #3]
agent_1   |     60:20170130:105643.626 agent #5 started [active checks #1]
agent_1   |     60:20170130:105643.819 no active checks on server [zabbix_server_1:10051]: host [b23ca4da2c2a] not found
agent_1   | 2017-01-30 10:56:44,821 INFO success: zabbix-agentd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
agent_1   | 2017-01-30 10:56:44,821 INFO success: zabbix-agentd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

画面で確認します。
[設定] > [ホスト] を見ると、コンテナが登録されています。