以前给博客配置过munin,后来搬家的时候扔掉了。这两天心血来潮又把munin搭了起来,为防以后遗忘配置步骤,干脆写篇文章放着吧。
环境是centos 6.5,nginx 1.6。
一、安装munin
首先安装epel软件源(fedora的话不需要),这里不再赘述。装好epel后,执行:
yum install munin
会把munin及munin-node安装上去。
默认的静态文件(html,js,css等)目录是/var/www/html
二、配置nginx
这里是创建一个virtual host,然后在其server段写入如下配置:
server { listen 80; access_log logs/server-access_log; server_name your.vhost.name; server_name_in_redirect off; root /var/www/html; location /munin { auth_basic "Login"; auth_basic_user_file /var/www/.htpasswd; } }
然后生成.htpasswd文件,用于页面访问认证(想让所有人都能看到munin输出的话可以忽略这步,并且将上面配置中的auth_xxx删掉):
htpasswd -c /var/www/.htpasswd admin
如果提示没有htpasswd这个命令,则需要安装httpd-tools这个包。
admin是用来登陆的用户名,可随意指定。
另外如果nginx的配置中没有启动http_stub_status_module模块,还需要server字段里加入下面这段,在nginx.conf里加或者vhost的conf里加都行:
location /nginx_status { stub_status on; access_log off; }
配置完成后,重启nginx。
三、配置munin
munin是服务器端,munin-node是客户端,因为是要监视本机,所以都需要配置。
先给munin用户创建个cron任务:
sudo -u munin crontab -e */5 * * * * /usr/bin/munin-cron
主要配置文件如下:
/etc/munin/plugin-conf.d/munin-node
/etc/munin/munin.conf
/etc/munin/munin-node.conf
如果懒得调了,保持默认也没啥问题。
比如munin-node里能设一下取nginx参数的路径:
[nginx*] env.url http://localhost/nginx_status
配置完后,重启下munin-node服务,然后将其设置为开机启动(可选)。
测试一下,如果按照上文配置了[nginx*]字段,则执行:
munin-run nginx_request
出现类似“request.value 3”这样的输出则表示一切正常,如果是“request.value U”,就是什么地方出问题了。
没问题的话,接下来就可以访问http://your.vhost.name/munin/,看看效果吧。
注意要确保至少运行了一次munin-cron命令,否则页面会报403错误。可以手动执行munin-cron:
sudo -u munin munin-cron
因为设的是每5分钟取一次值,所以得等一会才能看到状态曲线。
本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!