system.run でSIGPIPE
いつもお世話になっています。
system.run もしくはUserparameterを使用して、ZabbixエージェントにPingを実行させ、その結果を取得しようとしていますが、
結果を取り込むことができません。
エージェントのログではProcess listener error: ZBX_TCP_WRITE() failed [Broken pipe]が表示されています。
14085:20120824:110752.194 Requested [system.run[ping 10.32.147.246 -c 5 -w 6 | grep mdev,wait]]
14085:20120824:110752.194 Executing command 'ping 10.32.147.246 -c 5 -w 6 | grep mdev'
14085:20120824:110752.194 In zbx_popen() command:'ping 10.32.147.246 -c 5 -w 6 | grep mdev'
14085:20120824:110752.198 End of zbx_popen():6
:
14085:20120824:110756.305 End of zbx_waitpid():2945
14085:20120824:110756.305 Run remote command [ping 10.32.147.246 -c 5 -w 6 | grep mdev] Result [52] [rtt min/avg/max/mdev]...
14085:20120824:110756.305 Sending back [rtt min/avg/max/mdev = 0.212/15.440/76.223/30.391 ms]
14085:20120824:110756.305 Got signal [signal:13(SIGPIPE),sender_pid:14085]. Ignoring ...
14085:20120824:110756.305 Process listener error: ZBX_TCP_WRITE() failed [Broken pipe]
原因と解決方法がありましたら教えていただけないでしょうか?
よろしくお願いいたします。
TNK - 投稿数: 4769
pingの処理時間が、デフォルトのタイムアウトである3秒を超えて
しまっているので、サーバ側からの接続が切断されてしまい、エー
ジェント側から接続していたソケットに書き込もうとしてSIGPIPE
が発生したと思われます。
zabbix_server.confとzabbix_agentd.confのTimeoutの値を、
system.run[]
UserParameter
で指定したコマンドやスクリプトの実行が終了して結果を受け取れ
るまでの時間を考慮して伸ばしてみてください。
設定変更後は、zabbix_serverもzabbix_agentdも再起動してくださ
い。