iT邦幫忙

DAY 29
11

現代環境下的 Linux 裡的新工具系列 第 26

簡單又有型的系統監測工具:monitorix

  • 分享至 

  • xImage
  •  

過去要監測系統及記錄,常會用到 MRTG,這主要是測網路的工具用,但若要偵測Linux本身,要參考許多資料才能夠設起來。但現在有 Monitorix,大幅縮減設定的方式。

安裝 monitorix

$ wget https://aur.archlinux.org/packages/pe/perl-config-general/perl-config-general.tar.gz
$ cd perl-config-general
$ makepkg -g >> PKGBUILD
$ makepkg -s
$ sudo pacman -U perl-config-general-2.52-1-any.pkg.tar.xz
$ wget https://aur.archlinux.org/packages/mo/monitorix/monitorix.tar.gz
$ tar zxvf monitorix.tar.gz
$ makepkg -g >> PKGBUILD
$ makepkg -s
#同時會需要裝一堆的 perl 套件
$ sudo pacman -U monitorix-3.3.0-2-any.pkg.tar.xz

裝完此套件之後有這個提醒:

----------------------------------------------------------------------
Consider having your rrd databases for monitorix reside in RAM.
https://aur.archlinux.org/packages/anything-sync-daemon
----------------------------------------------------------------------
Optional dependencies for monitorix
    anything-sync-daemon: offload your databases to tmpfs to save i/o to your disk.
    hddtemp: enable support for hdd temp monitoring.
    lm_sensors: enable support for system temp monitoring.
    nvidia: enable support for nVidia card temp and usage monitoring.
    smartmontools: enable support for hdd bad sector monitoring.
    terminus-font: if graphs do not contain characters, you may need this font package.

就是建議裝這些工具套件,才有助於去偵測機器實體的狀態,由於我的機器非nvidia的顯卡,此套件之外都加裝。
其中 anything-sync-daemon 在此 https://aur.archlinux.org/packages/anything-sync-daemon/ 而需自建,這個工具是把常要寫的 rrd 檔寫到記憶體裡的 tmpfs,減少系統的IO,安裝好此套件後,修改 /etc/asd.conf 以下的內容:

WHATTOSYNC=('/srv/http' '/var/lib/monitorix')
VOLATILE="/dev/shm"

然後 systemctl enable asd 及 systemctl start asd,
就會看到 /var/log/ 的目錄裡:

lrwxrwxrwx  1 root  root    35 Oct 14 09:52 monitorix -> /dev/shm/asd-root/var/lib/monitorix

這也可用在那常常被讀寫希望減少IO的目錄設定上。
然後繼續安裝:

$ sudo pacman -S hddtemp lm_sensors smartmontools terminus-font

執行 sensors 看是否可偵測到相關的溫度資訊:

$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +34.0°C  (high = +85.0°C, crit = +105.0°C)
Core 0:         +25.0°C  (high = +85.0°C, crit = +105.0°C)
Core 1:         +34.0°C  (high = +85.0°C, crit = +105.0°C)
Core 2:         +25.0°C  (high = +85.0°C, crit = +105.0°C)
Core 3:         +32.0°C  (high = +85.0°C, crit = +105.0°C)

pkg-temp-0-virtual-0
Adapter: Virtual device
temp1:        +33.0°CA

接著設定 /etc/monitorix.conf 讓 monitorx 要顯示哪些的項目,大部份可用預設值,然後發現有些不能顯示出來的時候,再來改這設定檔,像 lmsens disk 等設定打開,也要看所預設的 log 的位置是否與實際不同,詳細的參數設定可參考 Manual Reference Pages - monitorix.conf

在 apache 的設定檔案指定

  Alias /monitorix /usr/share/monitorix
  ScriptAlias /monitorix-cgi /usr/share/monitorix/cgi

  <Directory /usr/share/monitorix/>
    DirectoryIndex index.html
    Order Allow,Deny
    Allow from all
  </Directory>

  <Directory /usr/share/monitorix/cgi/>
    DirectoryIndex monitorix.cgi
    Options ExecCGI
    #Order Deny,Allow
    #Deny from all
    #Allow from 1.2.3
    Order Allow,Deny
    Allow from all
  </Directory>

並設定 monitorix 的服務每次開機都啟動:

$ sudo systemctl enable monitorix
$ sudo systemctl start monitorix

剛開始從網頁看的時候 http://1.2.3.4/monitorix 的時候,因都還沒有值,過一陣子才會看出值的變化才在圖表裡有所顯示。

參考資料:
Monitorix。Linux效能監控~MRTG真的可以丟掉了~


上一篇
連線到Linux遠端圖形界面的工具:VNC
下一篇
總結:Linux 新工具的回顧
系列文
現代環境下的 Linux 裡的新工具27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
SunAllen
iT邦研究生 1 級 ‧ 2013-10-14 12:11:44

沙發開心開心好讚的軟體!

0
lipton
iT邦新手 5 級 ‧ 2013-12-22 09:07:25

安裝在 redhat enterprise 5.8 32bit啟動時有下列訊息 ..
[ABCO-TEST:root:~]# /etc/init.d/monitorix start
Starting monitorix: Can't locate HTTP/Server/Simple/CGI.pm in @INC (@INC contains: /usr/bin/lib /usr/lib/monitorix /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/lib/monitorix/HTTPServer.pm line 27.
BEGIN failed--compilation aborted at /usr/lib/monitorix/HTTPServer.pm line 27.
Compilation failed in require at /usr/bin/monitorix line 30.
BEGIN failed--compilation aborted at /usr/bin/monitorix line 30.

檢查CGI路徑 :
[ABCO-TEST:root:~]# find / -name CGI.pm
/usr/lib/perl5/5.8.8/CGI.pm
/usr/lib/perl5/vendor_perl/5.8.8/CGI.pm

沒法啟動耶 ... 請問哪位高手可解?

0
性格妞
iT邦新手 2 級 ‧ 2013-12-23 08:22:55

我的Linux環境為:

&lt;pre class="c" name="code">$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.10 (Tikanga)

你的 monitorix 的版本為何?

&lt;pre class="c" name="code">$ rpm -q monitorix
monitorix-2.5.2-1.el5.rf

我裝好 monitorix 後,所有的檔案也只是這些:

性格妞 iT邦新手 2 級 ‧ 2013-12-23 08:23:45 檢舉

$ rpm -ql monitorix
/etc/httpd/conf.d/monitorix.conf
/etc/logrotate.d/monitorix
/etc/monitorix.conf
/etc/rc.d/init.d/monitorix
/usr/bin/monitorix
/usr/share/doc/monitorix-2.5.2
/usr/share/doc/monitorix-2.5.2/COPYING
/usr/share/doc/monitorix-2.5.2/Changes
/usr/share/doc/monitorix-2.5.2/README
/usr/share/doc/monitorix-2.5.2/README.FreeBSD
/usr/share/doc/monitorix-2.5.2/README.OpenBSD
/usr/share/doc/monitorix-2.5.2/README.nginx
/usr/share/doc/monitorix-2.5.2/monitorix-alert.sh
/usr/share/man/man5/monitorix.conf.5.gz
/usr/share/man/man8/monitorix.8.gz
/usr/share/monitorix/cgi-bin/monitorix.cgi
/usr/share/monitorix/imgs
/usr/share/monitorix/logo_bot.png
/usr/share/monitorix/logo_top.png
/usr/share/monitorix/monitorixico.png
/var/lib/monitorix/reports/ca.html
/var/lib/monitorix/reports/de.html
/var/lib/monitorix/reports/en.html
/var/lib/monitorix/reports/it.html
/var/lib/monitorix/reports/pl.html
/var/lib/monitorix/reports/send_reports
/var/lib/monitorix/usage

0
性格妞
iT邦新手 2 級 ‧ 2013-12-23 08:24:10

在 redhat, fedora, centOS 裡,需要都用屬於同一版本的rpm套件,包括monitorix版本,及執行的時候所缺的perl套件;如果你一定要裝某些套件最新版本的話,在這一系列的linux系統,就很容易碰到套件版本不相容的問題。

/usr/lib/monitorix/HTTPServer.pm

這個檔案是新版才有的:

&lt;pre class="c" name="code">$ pacman -Q monitorix
monitorix 3.2.1-1
$ pacman -Ql monitorix | grep HTTPServer
monitorix /usr/lib/monitorix/HTTPServer.pm

相對應要用的perl版本是
<pre class="c" name="code">$ pacman -Q perl
perl 5.18.1-1

而在你的centOS的perl官方預設的版本是5.8.8,最好是把你的monitorix降到找得到centOS5.x包好的monitorix之RPM,不然若要配合最新monitorix,要更新perl較新的版本,但又會牽一髮而動全身,造成整個centOS很多套件變動而不穩。
redhat系列的Linux,rpm之間太多的相依,要裝某軟體的最新版本,除非官方有提供或找得到同版本平台包好的rpm是比較不會碰到問題,不然你自行編譯,或硬裝非同版本的rpm雖裝得起來,不見得一定會成功。

我要留言

立即登入留言