Monitoring

通過 munin-asyncd 監視 FreeBSD 客戶端的 Munin 不起作用

  • July 25, 2017

我建立了一個 Munin 主節點,目的是監控不同類型的 Unix 機器。我已按照信中的說明進行操作,發現雖然所有 Linux 節點的監控工作都完美無缺,但我無法從 FreeBSD 機器獲得任何有意義的輸出。

所有節點都設置了一個 munin-node 守護程序執行,並munin-async在 Linux 節點和muninFreeBSD 節點上呼叫了一個使用者。使用者設置如下,以允許 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://munin@example.home.lan: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守護程序定義了 spool 目錄/var/spool/munin/async,因此需要在以下命令中指定authorized_keys

/usr/local/share/munin/munin-async --spooldir /var/spool/munin/async --spoolfetch

這在任何地方都沒有以令人滿意的方式記錄,必須從預設位置推導出來。希望這有助於一些可憐的靈魂尋找這個問題。

引用自:https://serverfault.com/questions/864708