さまざまな種類のUnixマシンを監視する目的でMuninマスターノードをセットアップしました。私は手紙の指示に従いましたが、監視はすべてのLinuxノードで問題なく機能しますが、FreeBSDボックスから意味のある出力を得ることができないことがわかりました。
すべてのノードは、munin-nodeデーモンが実行され、Linuxノードではmunin-async
、FreeBSDノードではmunin
というユーザーが設定されています。 SSH接続を許可するために、ユーザーは次のように設定されます。
# /var/munin/.ssh/authorized_keys
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,from="1.2.3.4",command="/usr/local/share/munin/munin-async --spoolfetch" ssh-ed25519 AAAAC3Nza[...]
SSHを介した手動接続は期待どおりに機能し、munin-async
ヘルパーに直接ドロップします。
PTY allocation request failed on channel 0
# munin node at example.home.lan
list
cpu df fail2ban if_bge0 if_bge1 if_bridge0 if_errcoll_bge0 if_errcoll_bge1 if_errcoll_bridge0 if_packets_bge0 if_packets_bge1 if_packets_bridge0 intr_cpu iostat ip_drops ip_forwarding ip_Host ipinput load lpstat memory netirq_bge0 netisr_arp netisr_ether netisr_igmp netisr_ip netisr_ip6 netisr_rtsock netmem_clusters netmem_mbufs netmem_sendfile netstat ntp_kernel_err ntp_kernel_pll_freq ntp_kernel_pll_off ntp_offset ntp_states open_files pf_counters pf_source pf_source_act pf_state pf_state_act sendmail_mailqueue sendmail_mailstats sendmail_mailtraffic swap systat tcpstates udp_errors udp_traffic uptime users
spoolfetch 0
を実行することで、この方法でデータを取得できます。
ただし、munin-cron --debug
を介して実行すると、次の例外が発生します。
2017/07/23 15:14:05 [INFO] example.home.lan/ssh://[email protected]:4949 didn't send any data for spoolfetch. Ignoring it.
2017/07/23 15:14:05 [INFO] No spoofetch data for example.home.lan/ssh://example.home.lan:4949
2017/07/23 15:14:05 [DEBUG] Writing state for home.lan-example.home.lan in /var/munin/state-home.lan-example.home.lan.storable
2017/07/23 15:14:05 [DEBUG] about to write '/var/munin/state-home.lan-example.home.lan.storable'
2017/07/23 15:14:05 [ERROR] Munin::Master::UpdateWorker<home.lan;example.home.lan> failed to connect to node
2017/07/23 15:14:05 [DEBUG] Exit status 20 for worker Munin::Master::UpdateWorker<home.lan;example.home.lan>
2017/07/23 15:14:06 [DEBUG] In exception handler for failed worker home.lan;example.home.lan
ただし、グラフは作成されますが、すべての値はnan
で出力されます。
誰かが私に何が間違っているのかを教えてくれますか?
私は自分で解決策を見つけました。 munin-asyncd
デーモンは/var/spool/munin/async
のスプールディレクトリを定義するため、これはauthorized_keys
のコマンドで指定する必要があります。
/usr/local/share/munin/munin-async --spooldir /var/spool/munin/async --spoolfetch
これはどこにも満足のいく方法で文書化されておらず、デフォルトの場所から推測する必要があります。うまくいけば、これはこの問題を探している貧しい人々の助けになるでしょう。