位置: 编程技术 - 正文
推荐整理分享在CentOS下使用Munin来监控服务器运行的方法(centos ulimit),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:centos chrony,centos ohmyzsh,centos ohmyzsh,centos more,centos ohmyzsh,centos nmcli,centos oom,centos multipath,内容如对您有帮助,希望把文章链接给更多的朋友!
Munin的介绍和原理
Munin 是一个服务器监控工具,基于perl写的,能通过网络,定期收集所有节点服务器的信息,将服务器的数据信息保存为 RRD 文件格式,并通过 RRDTool (也是perl写的) 绘制成图形和曲线,在web页面显示出来。可以监控计算机,服务,网络,SANS ,应用等。Munin(代表记忆,是奥丁神的一只乌鸦的名字)工作方式:
Munin分为master和node
master只需安装在一台服务器上即可,它每5分钟去各个node采集信息,并使用RRD格式记录数据,绘制成图表node安装在各个被监控的服务器上,node上可以配置许多plugin,每个plugin有不同的职责,负责获取服务器各种不同的信息。
Munin服务端,在节点超过台左右的时候,资源占用会非常大,所以,如果服务器较多的话还是用Nagios之类的比较好(这个倒是没试过件监控那么多服务器)。如何在CentOs ,RHEL ,Fedora上安装 munin
我最近刚从centos6.4 升级到centos 6.5版本。在CentOS,RHEL,Scientific Linux 6.5/6.4/6.3/6.X ,其中x代表小版本更新。只要属于 6.x的都可以使用epel源进行在线安装。
前提一:我这安装munin的前提是已经安装了 lnmp环境。所以,你可以先安装军哥lnmp,然后再按照我的教程安装mumin。
前提二:因为我手头只有一台vps,所以既是作为监控服务器(master),又作为被监控的客户端(node节点)。当然,我也会在教程里插入监控多个服务器节点的方法。
前提三:确认你的nginx加载了http_stub_status_module模块。 复制代码代码如下:#/usr/local/nginx/sbin/nginx -v //查看nginx版本
复制代码代码如下:#/usr/local/nginx/sbin/nginx -V // 这里-V是大写。查看nginx的编译参数,看看里面有哪些模块。如果输出的结果中有 --with-http_stub_status_module 文字,则说明含http_stub_status_module模块。满足前提三了。如果没有http_stub_status_module,则重新编 译安装下nginx即可。(军哥的lnmp是已经默认安装了),也可以组合grep命令来查看。
为CentOs,RHEL,Fedora安装执行下面的命令:
RHEL/CentOS 6.x 的位系统 复制代码代码如下:# rpm -ivh RHEL/CentOS 5.x 的位系统 复制代码代码如下:# rpm -ivh 》因为epel源中的epel-release-6-8.noarch.rpm只保留最新的版本。所以,很可能你看到这篇文章的时候,epel- release-6-8.noarch.rpm 已经不存在了。这时候,你就要自己的系统版本及系统是否位来自己去 下找到最新的epel-release-x-x.noarch.rpm 。只要你的系统是6.x的就可以安装 epel-release-6-x.noarch.rpm 。同理,对于 centos5.x也可以安装 的epel-release-5-x.noarch.rpm 。
对于Fedora用户来说,就不需要手动安装epel源了,因为 munin 已经包括在fedora的软件库中,可以直接yum安装。
安装muminmunin的安装分为三个部分分别是:
master 服务器 node 被监控节点 plugins 插件(nginx的插件貌似munin的安装包中就有,不需要再下载了,反正我是没下载,直接安装好munin就可以得到监控图像了。)
而我这唯一一台vps既是作为监控服务器(master),又作为被监控的客户端(node节点)。执行下面的命令:在服务器端(master)安装:
复制代码代码如下:# yum --enablerepo=epel -y install munin munin-node 注:如果只是作为服务端,可以不安装munin-node
安装完成后,默认会创建以下文件:
/etc/munin/munin.conf : Munin master(服务器端) 配置文件. /etc/cron.d/munin : Munin 设置crontab计划任务文件. /etc/httpd/conf.d/munin.conf : Munin Apache 配置文件. /var/log/munin : Munin log日志目录. /var/www/munin : Munin 网站目录. /etc/munin/munin-node.conf : Munin Node节点配置文件(指定监控哪些节点). /etc/munin/plugins.conf : Munin plugins插件配置文件. /etc/rc.d/init.d/munin-node : Munin启动脚本 /etc/munin/plugin-conf.d/munin-node
服务端master不会添加任何service,但是会自动添加一个cron任务,每5分钟采集一次node的信息,如果没有添加可以手动加入:
复制代码代码如下:# crontab -e */5 * * * * /usr/bin/munin-cron
注意:这个默认安装就已经设置了定时任务。可以在配置好后,通过munin的绘图统计曲线来判断是否在不间断的采集信息。
在客户端(node)安装:
复制代码代码如下:# yum --enablerepo=epel -y install munin-node
注意:如果要监控N台服务器,那么这N台服务器都只要装munin-node
配置munin和nginx我给munin设置个vhost,直接用个指定的二级域名访问munin的监控页面,比如我的munin网站: test.dabu.info 访问 munin网站新建个nginx的虚拟主机(Virtual Host ) ,将它的vhost配置文件中server{}段改成
复制代码代码如下: server { listen ; access_log logs/server-access_log;</p><p> #设置访问munin的二级域名,当然也可以使用vps外网ip访问 #但是我vps上设置了禁止ip访问网站 server_name test.dabu.info;</p><p> server_name_in_redirect off; root /var/www/html;</p><p> # 设置密码来限制对munin网站的访问 location /munin {</p><p> auth_basic "Administrator Login"; auth_basic_user_file /var/www/.htpasswd; }</p><p> #下面是给vhost开启了http_stub_status_module模块 #这段location其实放哪个server{}都可以,有的直接放到munin的虚拟机server{}一起 中</p><p> location /nginx_status {</p><p> stub_status on; access_log off; #只准本机访问/nginx_status中的request统计信息 #如果没有下面两行,那么,别人就可以使用 # 看到nginx的request的信息了 #.0..是你的vps外网ip allow .0..; deny all;</p><p> }</p><p> }
注 意:如果你将 location /nginx_status{}段与munin虚拟主机配置文件分开,放入单独的server{}段中时,那么就要先新建一个虚拟主机来开启了 http_stub_status_module模块,将其server{} 改成下面的样子:
复制代码代码如下: server { listen .0.0.1; server_name localhost;</p><p> location /nginx_status {</p><p> stub_status on; access_log off; allow .0.0.1; deny all; }</p><p> }
同时将munin虚拟机的server段改成:
复制代码代码如下:server { listen ; access_log logs/server-access_log;</p><p> server_name test.dabu.info;</p><p> server_name_in_redirect off; root /var/www/html;</p><p> location /munin { auth_basic "Administrator Login"; auth_basic_user_file /var/www/.htpasswd; }</p><p> }
此时,就只能本机访问 来得到nginx的request信息。
修改好后保存。接着重启nginx
复制代码代码如下: #service nginx restart
Apache:
复制代码代码如下:# vi /etc/httpd/conf.d/munin.conf
在文件末尾添加下面的内容:
复制代码代码如下:<Directory /var/www/html/munin/> Order Deny,Allow Deny from all Allow from .0.0.1 ..1.0/ </Directory>
同样要重启apache:
复制代码代码如下:#service httpd restart
现在,你可以使用 访问 munin的网页了。但是因为使用账号密码限制访问,所以,我们还要去设置访问密码。设置访问网站的账户和密码:
yum安装munin默认的munin网站文件目录是在/var/www/html/munin中。为munin目录创建一个用户密码,执行命令:
复制代码代码如下:#htpasswd -c /var/www/.htpasswd dabu //新建一个叫dabu的用户
然后就会显示下面的,让你设置密码,输入两次密码(密码不会显示的):
复制代码代码如下:New password: Re-type new password: Adding password for user dabu
添加密码完成后,接着去设置munin的配置文件。 ,密码:dabu1
为munin设置环境参数:编辑 /etc/munin/plugin-conf.d/munin-node 文件,这个配置文件的作用:1.告诉munin去哪里获得参数如监控nginx的时候,则需要将下面的内容添加到 /etc/munin/plugin-conf.d/munin-node 文件的后面。以此让munin从http_stub_status_module模块获取request等信息
a. location /nginx_status{}段在munin虚拟机的server{}中时,则增加下面的内容 复制代码代码如下: [nginx*] env.url b. location /nginx_status{}段单独放在一个server{}中时,则增加下面的内容 复制代码代码如下: [nginx*] env.url
或者直接执行下面的命令: #if [[ $(cat /etc/munin/plugin-conf.d/munin-node | grep "nginx") = "" ]]; then echo -e "n[nginx*]nenv.url >> /etc/munin/plugin-conf.d/munin-node; fi 注:将 替换为你设定的访问request的网址
2.munin登陆软件的账号密码参数如监控mysql等,就是需要告诉munin登陆mysql的账号密码,甚至mysql路径等
将munin的两个插件:nginx_request 和 nginx_status 软链到 /etc/munin中。当然官方给了快速配置插件的脚本,运行命令:
复制代码代码如下:#munin-node-configure --shell --families=contrib,auto | sh -x
如果软连接没创建成功,自己手动执行下面两个命令:
复制代码代码如下:#ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/ -v #ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/ -v
远程监控多台服务器客户端(node):假设我要采集..1. 、..1. 、..1.三台服务器的运行状况,则;
复制代码代码如下:#vi /etc/munin/munin.conf
#增加需采集的node:
复制代码代码如下: [luxiang2f;mysqlsrv] address ..1. use_node_name yes</p><p> [luxiang3f;websrv] address ..1. use_node_name yes</p><p> [nanyuan2f;websrv] address ..1.1 use_node_name yes</p><p> # 分号前是分组组名,分号后是节点名 # use_node_name yes表示使用上面定义的组名和节点名,否则会执行一次DNS查询,反查节点的DNS名称 # address表示节点的ip地址 # 在1.4.5版本,分组或产生错误,部分图表生成不了,懒得琢磨了,直接改为[websrvxxx]就可以成功了 #貌似,现在改成了 “. ” 来分隔组,而不是分号了。具体我也懒得试了。 见官方文档: a. 当一台vps既作为服务端,又作为客户端。则改操作还是要在服务端操作,执行下面的命令: 复制代码代码如下:#vi /etc/munin/munin-node.conf 可以看到默认有了 allow ^.0.0.1$ 这一行。说明当vps即作为服务端,又作为客户端。允许本机自己采集自己。所以,如果仅仅是自己监控自己,则不需要修改该配置文件了。
b. 当这台vps仅作为服务端,那么,就需要在客户端执行下面的命令: 复制代码代码如下:#vi /etc/munin/munin-node.conf 在最下面的一行添加服务端ip,允许服务端来采集; 复制代码代码如下:allow ^..1.$ 记住都要以这个形式来写,更多写法介绍, /etc/munin/munin-node.conf 中都有介绍
然后再服务端和客户端都重启服务:
复制代码代码如下: #service munin-node restart 或 复制代码代码如下:#/etc/init.d/munin-node restart
加入服务并开机自启动:
复制代码代码如下:#chkconfig --levels munin-node onn
测试munin配置是否好了的方法:
复制代码代码如下: [root@ksharpdabu ~]# munin-run nginx_request
显示:request.value 3
注意: a. 3表示我nginx瞬时收到的请求数。所以,你那可能不是3,是其他的数字。这个数字还可能时刻在变,毕竟不同时刻访问你 网站的人肯定不同。 b. 如果你得到的结果是 request.value U 。那么表示munin并没有采集到nginx的信息。你的munin的配置有问题。 c. 还有可能报其他错误,自己根据报错信息去google吧。
测试成功后,就可以直接访问
在CentOS系统中使用yum命令升级插件的方法 服务器的安全升级却是必须的,所以,下面介绍一个yum插件:yum-plugin-security来进行安全性升级。1.一般系统默认安装了yum-plugin-security,如果没有,则输
详解yum命令之?showduplicates的使用方法 yum有很多参数和插件可以用,这里我介绍下yum--showduplicates命令的使用方法,这个参数对于我们来说十分有用。尤其是当你遇到版本不匹配兼容、软件依赖
在CentOS系统中使用yum安装指定版本软件的方法 yum默认都是安装最新版的软件,这样可能会出一些问题,或者我们希望yum安装指定(特定)版本(旧版本)软件包.所以,就顺带分享yum安装指定(特定)版本(旧
标签: centos ulimit
本文链接地址:https://www.jiuchutong.com/biancheng/363304.html 转载请保留说明!上一篇:CentOS下查看硬件信息的命令整理(centos查看硬件设备)
下一篇:在CentOS系统中使用yum命令升级插件的方法(centos zsh)
友情链接: 武汉网站建设