前提・実現したいこと
Zabbixから、特定のトリガーにて稼働中のDockerコンテナを再起動する様にしたいと思っています。
出来上がっているつもりですが、うまく再起動せず、なぜ再起動しないのか原因が掴めずにおります。
- Zabbix Server 5.4 Virtual Box上のCenOS7のDocker上にコンテナとして構築
- Zabbix Agent 3.0 Ubuntu18上にインストール
- DockerCE 19.03 Ubuntu18上で稼働しており、再起動したいコンテナが動いている
Zabbixのアクションにスクリプトを指定し、スクリプトは以下を指定しています。
docker restart {コンテナ名}
また、sudoコマンドを使用せずにdockerコマンドを実行するために、以下をエージェント側に設定しています。
sudo usermod --shell /bin/bash zabbix sudo gpasswd -a zabbix docker sudo chown root:docker /var/run/docker.sock
発生している問題・エラーメッセージ
現在、以下のエラーメッセージが出て、Dockerコンテナの再起動に至っていません。
Zabbix のwebUI上で出ているエラーメッセージ
Script does not have permission to be executed on the host
Zabbixサーバーのログに出ているエラーメッセージで、関係ありそうな部分
201:20210616:203725.847 In execute_commands() 201:20210616:203725.847 query [txnlev:0] [select groupid from opcommand_grp where operationid=19] 201:20210616:203725.847 query [txnlev:0] [select distinct h.hostid,h.proxy_hostid,h.host,s.type,s.scriptid,s.execute_on,s.port,s.authtype,s.username,s.password,s.publickey,s.privatekey,s.command,s.groupid,s.scope,s.timeout,s.name,h.tls_connect,h.ipmi_authtype,h.ipmi_privilege,h.ipmi_username,h.ipmi_password,h.tls_issuer,h.tls_subject,h.tls_psk_identity,h.tls_psk from opcommand o,opcommand_hst oh,hosts h,scripts s where o.operationid=oh.operationid and o.scriptid=s.scriptid and oh.hostid=h.hostid and o.operationid=19 and h.status=0 union select distinct 0,0,null,s.type,s.scriptid,s.execute_on,s.port,s.authtype,s.username,s.password,s.publickey,s.privatekey,s.command,s.groupid,s.scope,s.timeout,s.name,1,0,2,null,null,null,null,null,null from opcommand o,opcommand_hst oh,scripts s where o.operationid=oh.operationid and o.scriptid=s.scriptid and o.operationid=19 and oh.hostid is null] 201:20210616:203725.847 In zbx_check_script_permissions() groupid:19 hostid:0 201:20210616:203725.847 query [txnlev:0] [select hostid from hosts_groups where hostid=0 and groupid=19] 201:20210616:203725.848 End of zbx_check_script_permissions():FAIL 201:20210616:203725.848 In DCget_nextid() table:'alerts' num:1 201:20210616:203725.848 End of DCget_nextid() table:'alerts' [194:194] 201:20210616:203725.848 In add_command_alert() 201:20210616:203725.848 End of add_command_alert() 201:20210616:203725.848 query without transaction detected 201:20210616:203725.848 query [txnlev:0] [insert into alerts (alertid,actionid,eventid,clock,message,status,error,esc_step,alerttype,parameters) values (194,8,2394,1623843445,':docker restart motionview',2,'Script does not have permission to be executed on the host.',55,1,'');
Agent側のログファイルで関係ありそうな部分
201:20210616:202125.511 query [txnlev:0] [insert into alerts (alertid,actionid,eventid,clock,message,status,error,esc_step,alerttype,parameters) values (178,8,2394,1623842485,':docker restart motionview',2,'Script does not have permission to be executed on the host.',39,1,'');
試したこと
コマンド内容やユーザー権限の問題かどうか確認するために、同じコマンド、同じタイプ、同じユーザーで手動ホスト処理の設定をしてみたところ、想定通りにコンテナが再起動されました。
同じコマンドをアクション処理した場合にエラーが発生し、失敗します。
アクション設定は何か別の権限が必要なのでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/16 15:10
2021/06/17 06:35
2021/06/18 13:00
2021/06/19 13:55
2021/06/19 15:03