munin監控服務器

選擇munin的緣由並不是是以爲這個工具好讀,而是簡單,server-node形式,容易上手。
php

下面詳細的介紹munin的安裝,配置,自定義腳本插件,這裏寫的時候我選擇的是shell,由於其餘的語言都不熟。html

1、安裝node

我這裏的環境是centos6.6 64位
#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
#vi /etc/yum.repos.d/epel.repo #這個就是上面安裝包安裝後生成的文件
替換[epel]中的路徑爲mirrorlist=
貼出最終的文件來給你們看以下
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1 
修改完畢後安裝munin
#yum clean
#yum install munin munin-node #這地方若是你只是node端就不必裝munin了,能夠省了
安裝完成!

2、配置ios

munin上面安裝後會在如下目錄產生文件(夾)
/usr/share/doc/munin-common-2.0.25
/usr/share/perl5/vendor_perl/Munin
/var/run/munin
/etc/logrotate.d/munin-node
/etc/munin
/etc/rc.d/init.d/munin-node
/usr/sbin/munin-node
/usr/sbin/munin-node-configure
/usr/sbin/munin-run
/usr/share/munin
/var/lib/munin
/var/lib/munin-node/plugin-state
/etc/cron.d/munin
/etc/httpd/conf.d/munin.conf
/etc/logrotate.d/munin
/etc/munin
/usr/bin/munin-check
/usr/bin/munin-cron
/usr/bin/munindoc
/usr/sbin/munin-sched
/var/log/munin
/var/www/cgi-bin/munin-cgi-graph
/var/www/cgi-bin/munin-cgi-html
/var/www/html/munin

其中,/etc/munin是munin的配置文件集中地,其中munin.conf是munin的server的配置文件,而node的配置文件都在/etc/munin/plugin-conf.d成都文件夾中。nginx

個人munin server的配置文件以下web

dbdir	/var/lib/munin
htmldir /var/www/html/munin
logdir /var/log/munin
rundir  /var/run/munin
tmpldir	/etc/munin/templates
includedir /etc/munin/conf.d
graph_strategy cron
cgiurl_graph /munin-cgi/munin-cgi-graph
max_size_x 50
max_size_y 50
html_strategy cron
max_processes 90
[localhost.localhost]     #node的名稱
    address 127.0.0.1
    use_node_name yes
    df._dev_sda1.warning 1
    users.warning 1
contacts other
contact.other.command mail -s "Munin notification ${var:host}" 476556**3@qq.com #發送告警郵件
contact.other.always_send warning critical

另外,個人node端沒有作太大的配置,除了剛開始實驗memecache的監控作了以下配置外,自定義監控腳本根本沒有配置。shell

[diskstats]        #默認
user munin

[iostat_ios]
user munin

[memcached_*]        #我本身照着網上給的添加的
env.host 127.0.0.1
env.port 11211
env.timescale 3

好了,上述的配置已經完成,可是,這裏須要提示是munin是須要web容器的支撐的,因此必定記得安裝nginx或者apache或者其餘,在這裏我選擇nginx,由於小而強大,下面貼出nginx的配置,其實只須要改nginx的目錄路徑便可,以下apache

location / {
            root   /var/www/html/munin/;        #你沒看錯,就是這句
            index  index.html index.htm index.php;
        }

好了,用下面的命令把nginx,munin啓動起來centos

/usr/local/nginx/sbin/nginx
/etc/init.d/munin-node start

啓動起來以後訪問頁面,以下bash

wKioL1TLN1Ljp1VBAAEw9oR_5zU320.jpg

好啦,已經能夠訪問啦,若是不能訪問,請檢查網絡,防火牆,密碼等設置。

3、自定義腳本

munin的簡單之處在於自定義腳本能寫能用,它的腳本在/usr/share/munin/plugins/下

[root@localhost munin]# ll /usr/share/munin/plugins/
total 1516
-rwxr-xr-x. 1 root root  1624 Nov 26 14:37 acpi
-rwxr-xr-x  1 root root  2749 Jan 14 18:58 alive_test
-rwxr-xr-x. 1 root root  3258 Nov 26 14:37 amavis
……

我寫的是網站的監控碼的監控,以下所示

#!/bin/sh
#www_chengdu_cn.sh is written by juanfa

if [ "$1" = "config" ]; then

      echo "graph_title website status"
      echo 'graph_args --base 1000 -l 0'
      echo 'graph_vlabel status code'
      echo 'www_chengdu_cn.label www.chengdu.cn'
      echo 'graph_category system'        #這是圖像的歸屬地,分類啦
      exit 0
fi
www_chengdu_cn=`curl -o /dev/null -s -w "%{http_code}" 
echo "www_chengdu_cn.value ${www_chengdu_cn}"

這樣,簡單的數據採集就造成啦,寫完後要作軟連接以下

ln -sf /usr/share/munin/plugins/www_chengdu_cn.sh www_chengdu_cn
chmod 755 /usr/share/munin/plugins/www_chengdu_cn.sh

不過在寫腳本的過程當中你能夠進行排查錯誤,好比上面的咱們寫的獲得網站的狀態碼能夠經過telnet進行測試

telnet 127.0.0.1 4949        #munin默認的端口是4949
[root@localhost plugins]# telnet 127.0.0.1 4949
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
# munin node at localhost.localdomain
fetch www_chengdu_cn
www_chengdu_cn.value 200
.

就是這樣,說明已經能夠採集到數據,盡情等待網頁上面的顯示吧,不過等待時間略長,5分鐘。

網上說的是能夠在定時任務中修改時間限制就可讓時間縮短,可是我這邊沒有生效,仍是5分鐘,知道在哪修改的同窗能夠聯繫我,萬分感謝。

[root@localhost plugins]# more /etc/cron.d/munin 
#
# cron-jobs for munin
#
MAILTO=root
*/1 * * * *     munin test -x /usr/bin/munin-cron && /usr/bin/munin-cron

好了,等待顯示出來

wKiom1TLOwfBTni6AAFvujDsWAM227.jpg

中途修改了host定向到其餘的網站以或得不一樣的狀態碼。說明成功。ps由於是從load腳本修改過來的,因此會有個load啦。

好了,拋磚引玉到此爲止。

個人郵件報警時好時壞,等我把告警弄完全了再來發文。

wKioL1TLPT_x1kbwAAFU8Q5bp6E265.jpg

這就是簡單的報警,我要的不是這麼簡陋的啦,因此要認真研究。

還有,若是不明白的網上有官網啦,固然,能夠問我^^,我會的幫你解答啦。

相關文章
相關標籤/搜索