Munin 2.0 Ubuntu 12.04 nginx sendEmail
Munin 监控非常轻巧,不过被监控节点多了就吃不消了,小规模的用这个蛮适合。
1. 添加apt源
1
2
3
|
sudo
add
-
apt
-
repository
ppa
:
tuxpoldo
/
munin
sudo
apt
-
get
update
sudo
apt
-
get
dist
-
upgrade
|
可能要导入key,方法如下
1
|
sudo
apt
-
key
adv
--
keyserver
keyserver
.
ubuntu
.
com
--
recv
-
keys
KEY_ID
|
2. 创建依赖关系和安装
1
2
|
sudo
apt
-
get
build
-
dep
munin
sudo
apt
-
get
install
munin
munin
-
node
|
munin主节点需要安装munin和munin-node,被监控节点只需要安装munin-node。
3. 配置munin.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#
# 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. 插件生效
1
|
sudo
munin
-
node
-
configure
--
shell
--
families
=
contrib
,
auto
|
sh
-
x
|
或者,自己创建软连接即可。
6. 配置nginx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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,并启动下面的进程。
1
|
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界面
就可以通过http://monitor.ttlsa.com/munin/ 界面查看监控图形了。
收 藏
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!