リモートコマンドでapacheの再起動
いつもお世話になっています。
Linuxにおいてzabbix(1.8.3)のアクションのリモートコマンドの機能を使用して、apacheの再起動を行おうとしています。
zabbix_agentがコマンドを実行できるように、visudoで以下の記述を追加し、
zabbix ALL=(ALL) NOPASSWD: ALL
sudo -u zabbix service httpd restart
で作動確認してみましたが、以下のようなメッセージが出力され、
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
起動できません。port80 はroot権限が必要なのでListen portを変更するしかないのでしょうか?
どなたかリモートコマンドでapacheの起動を行っているかたがいらっしゃいましたらよろしくお願いいたします。
TNK - 投稿数: 4731
もし、通常のポート番号80番でhttpdを起動されたいのであれば、root権限が必要です。
その為には、sudoコマンドで-uオプションを利用してzabbixを指定されているのが不要なのではないでしょうか?
以下のURLにも設定例が紹介されていますのでご参照下さい。
http://www.zabbix.jp/modules/bwiki/index.php?SoftwareDesign200805-200806
tthogho1 - 投稿数: 112
早速の回答ありがとうございます。
確認して、再度報告いたします。
tthogho1 - 投稿数: 112
1.visudoで以下を追記
zabbix localhost=(root) NOPASSWD:/etc/init.d/httpd
2.リモートコマンドに以下を記述
{HOSTNAME}:sudo /etc/init.d/httpd restart
してみましたが、sudo /etc/init.d/httpd restart
自体は対象サーバに送られているのがエージェントのログ上分かりましたが、再起動されていません。(エラーメッセージは載っていない)
もうちょっと調べます。
追記
エラーメッセージは載っていないと書いてしまいましたが、
ログに Password: と出力されていたのでPasswordを聞かれているようです。
また、{HOSTNAME}:sudo /etc/init.d/httpd restart
ではなく、{HOSTNAME}:/etc/init.d/httpd restart
にすると、以下のエラーがログに出力されます。
httpd を停止中: [失敗]^M
httpd を起動中: httpd: Could not reliably determine the server's fully qualified domain na
me, using 10.32.147.217 for ServerName
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
TNK - 投稿数: 4731
visudoで追記する行を以下のように変更してみてください。
<code>
zabbix ALL=(root) NOPASSWD:/etc/init.d/httpd
</code>
これで駄目なら、/var/log/secureなどに何らかのエラーログが出力されていると思いますので、その内容をお教え下さい。
tthogho1 - 投稿数: 112
いつもありがとうございます。
再起動できるようになりました。