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/

2F
好东西 谢谢分享
1F
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"
B1
@ 默北 Good