Munin 2.0 Ubuntu 12.04 nginx sendEmail

默北 监控310,017字数 6046阅读20分9秒阅读模式

Munin 监控非常轻巧,不过被监控节点多了就吃不消了,小规模的用这个蛮适合。

1. 添加apt源文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

sudo add-apt-repository ppa:tuxpoldo/munin
sudo apt-get update
sudo apt-get dist-upgrade

可能要导入key,方法如下文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID

2. 创建依赖关系和安装文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

sudo apt-get build-dep munin
sudo apt-get install munin munin-node

munin主节点需要安装munin和munin-node,被监控节点只需要安装munin-node。文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

3. 配置munin.conf文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

# Example configuration file for Munin, generated by 'make build'

# The next three variables specifies where the location of the RRD
# databases, the HTML output, logs and the lock/pid files.  They all
# must be writable by the user running munin-cron.  They are all
# defaulted to the values you see here.
#
#dbdir  /var/lib/munin
#htmldir /var/cache/munin/www
#logdir /var/log/munin
#rundir  /var/run/munin

# Where to look for the HTML templates
#
#tmpldir        /etc/munin/templates

# Where to look for the static www files
#
#staticdir /etc/munin/static

# temporary cgi files are here. note that it has to be writable by 
# the cgi user (usually nobody or httpd).
#
# cgitmpdir /var/lib/munin/cgi-tmp

# (Exactly one) directory to include all files from.
includedir /etc/munin/munin-conf.d

# You can choose the time reference for "DERIVE" like graphs, and show
# "per minute", "per hour" values instead of the default "per second"
#
#graph_period second

# Graphics files are generated either via cron or by a CGI process.
# See http://munin-monitoring.org/wiki/CgiHowto2 for more
# documentation.
# Since 2.0, munin-graph has been rewritten to use the cgi code. 
# It is single threaded *by design* now.
#
#graph_strategy cron

# munin-cgi-graph is invoked by the web server up to very many times at the
# same time.  This is not optimal since it results in high CPU and memory
# consumption to the degree that the system can thrash.  Again the default is
# 6.  Most likely the optimal number for max_cgi_graph_jobs is the same as
# max_graph_jobs.
#
#munin_cgi_graph_jobs 6

# If the automatic CGI url is wrong for your system override it here:
#
#cgiurl_graph /munin-cgi/munin-cgi-graph

# max_size_x and max_size_y are the max size of images in pixel.
# Default is 4000. Do not make it too large otherwise RRD might use all
# RAM to generate the images.
# 
#max_size_x 4000
#max_size_y 4000

# HTML files are normally generated by munin-html, no matter if the
# files are used or not. You can change this to on-demand generation
# by following the instructions in http://munin-monitoring.org/wiki/CgiHowto2
# 
# Notes: 
# - moving to CGI for HTML means you cannot have graph generated by cron.
# - cgi html has some bugs, mostly you still have to launch munin-html by hand
# 
#html_strategy cron

# munin-update runs in parallel.
#
# The default max number of processes is 16, and is probably ok for you.
#
# If set too high, it might hit some process/ram/filedesc limits.
# If set too low, munin-update might take more than 5 min.
#
# If you want munin-update to not be parallel set it to 0.
#
#max_processes 16

# RRD updates are per default, performed directly on the rrd files.
# To reduce IO and enable the use of the rrdcached, uncomment it and set it to
# the location of the socket that rrdcached uses.
#
#rrdcached_socket /var/run/rrdcached.sock

# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
#contact.someuser.command mail -s "Munin notification" somejuser@fnord.comm
#contact.anotheruser.command mail -s "Munin notification" anotheruser@blibb.comm

contact.ttlsa_monitor.command /usr/local/bin/sendEmail  -f support@ttlsa.com -s smtp.exmail.qq.com -xu support@ttlsa.com -xp ttlsa.com -o message-content-type=html  -o message-charset=utf8  -t monitor@ttlsa.com \
        -u "* ${if:cfields PROBLEM }${if:wfields PROBLEM }${if:fofields RECOVERY } - ${var:host}/${var:graph_title} is ${if:cfields CRITICAL}${if:wfields WARNING}${if:fofields OK} *" \
        -m "Group: ${var:group}<p> Host: ${var:host}<p> \ 
            Warngin: ${loop<,>:wfields - ${var:value} outside range [${var:wrange}] (${var:label})}<p> \
                Critical: ${loop<,>:cfields - ${var:value} outside range [${var:crange}] (${var:label})}<p> \
                OK: ${ loop<,>:fofields - ${var:value} = ${var:label} }" \
         -l /tmp/mail.log
contact.ttlsa_monitor.always_send warning critical
#
# For those with Nagios, the following might come in handy. In addition,
# the services must be defined in the Nagios server as well.
#contact.nagios.command /usr/bin/send_nsca nagios.host.comm -c /etc/nsca.conf

# Alert log
contact.log.command tee -a /var/log/munin/alert.log

# a simple host tree
[ttlsa;web1]
    address X.X.X.X
    use_node_name yes
    contacts ttlsa_monitor

4. 配置munin-node.conf文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

#
# Example config-file for munin-node
#

log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid

background 1
setsid 1

user root
group root

# This is the timeout for the whole transaction.
# Units are in sec. Default is 15 min
#
# global_timeout 900

# This is the timeout for each plugin.
# Units are in sec. Default is 1 min
#
# timeout 60

# Regexps for files to ignore
ignore_file [\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$

# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
#
#host_name localhost.localdomain
host_name web1

# A list of addresses that are allowed to connect.  This must be a
# regular expression, since Net::Server does not understand CIDR-style
# network notation unless the perl module Net::CIDR is installed.  You
# may repeat the allow line as many times as you'd like

allow ^127\.0\.0\.1$
allow ^::1$
allow ^X\.X\.X\.X$    #munin master ip address

# If you have installed the Net::CIDR perl module, you can use one or more
# cidr_allow and cidr_deny address/mask patterns.  A connecting client must
# match any cidr_allow, and not match any cidr_deny.  Note that a netmask
# *must* be provided, even if it's /32
#
# Example:
#
# cidr_allow 127.0.0.1/32
# cidr_allow 192.0.2.0/24
# cidr_deny  192.0.2.42/32

# Which address to bind to;
host N.N.N.N
# host 127.0.0.1

# And which port
port 4949

5. 插件生效文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

sudo munin-node-configure --shell --families=contrib,auto | sh -x

或者,自己创建软连接即可。文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

6. 配置nginx文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

server {
        listen 80;
        server_name monitor.ttlsa.com;
        access_log  /data/logs/access-monitor.log;
        error_log /data/logs/error-monitor.log;
        location ^~ /munin-cgi/munin-cgi-graph/ {
                fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_pass unix:/var/run/munin/fcgi-graph.sock;
                include fastcgi_params;
        }
        location /munin/static/ {
                alias /etc/munin/static/;
        }
        location /munin {
                alias /var/cache/munin/www/;
                auth_basic "mechat munin";
                auth_basic_user_file "/etc/munin/munin-htpasswd";    
        }
        location / {
                rewrite ^/$ munin/ redirect; break;
        }
}

需要安装spawn-fcgi,并启动下面的进程。文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

spawn-fcgi -s /var/run/munin/fcgi-graph.sock -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph

7.web界面文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

就可以通过http://monitor.ttlsa.com/munin/ 界面查看监控图形了。文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/ 文章源自运维生存时间-https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 19/05/2015 01:00:24
  • 转载请务必保留本文链接:https://www.ttlsa.com/monitor/install-munin-2-0-x-on-ubuntu-12-04-nginx-sendemail/
评论  3  访客  3
    • 美女内涵图
      美女内涵图 0

      好东西 谢谢分享

      • 默北
        默北

        contact.ttlsa_monitor.command /usr/local/bin/sendEmail -f support@ttlsa.com -s smtp.exmail.qq.com -xu support@ttlsa.com -xp ttlsa.com -o message-content-type=html -o message-charset=utf8 -t monitor@ttlsa.com
        -u "* ${if:cfields PROBLEM }${if:wfields PROBLEM }${if:fofields RECOVERY } – ${var:host}/${var:graph_title} is ${if:cfields CRITICAL}${if:wfields WARNING}${if:fofields OK} *"
        -m "Group: ${var:group}<p> Host: ${var:host}<p>
        Warngin: ${loop<,>:wfields – ${var:value} outside range [${var:wrange}] (${var:label})}<p>
        Critical: ${loop<,>:cfields – ${var:value} outside range [${var:crange}] (${var:label})}<p>
        OK: ${ loop<,>:fofields – ${var:value} = ${var:label} }"
        -l /tmp/mail.log
        不能分行写,会报错,sh: 1: Bad substitution

        su – munin –shell=/bin/bash -c "/usr/share/munin/munin-limits –contact mail –force "
        su – munin –shell=/bin/bash -c "/usr/share/munin/munin-limits –contact mail –force –debug"

      评论已关闭!