天天看点

linux下mrtg,cacti,nagios,ganglia的搭建和win/linux主机等的监控

在51cto做的监控沙龙的ppt,给大家整理成word文档了,这样可以方便大家阅读,也可以方便大家复制里面的命令,希望大家多给给评论,不要看看就走了!!!!

沙龙的讲座内容:

监控软件mrtg

监控软件cacti

监控软件nagios

监控软件ganglia

第一款监控软件Mrtg

mrtg这款软件是在互联网应用的比较早的监控软件,像在05,06年的时候,它是非常吃香的。它的原理比较简单:通过snmp与被管设备通信,把数据取回来,然后生成图片,直接显示出来,不需要把数据写到数据库里面,非常简洁,如果单纯想监控主机/路由器/交换机等设备的接口流量的话,mrtg是首选的监控软件。下面是监控图

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_13127681910LhR.jpg"></a>

搭建步骤:

一.前提条件:

系统必须已经安装以下软件,这些软件都是光盘里自带的:

gd;libpng;perl;gpeg;apache;snmp(也可以安装源码包)。

二.安装mrtg。大家用源码包或者rpm包都可以,在这里我选择用rpm包了,在rhel4以后的版本里面已经把mrtg集成进去了,直接用光盘的rpm包安装就可以了。

具体操作:搭建一个本地yum库

编辑yum配置文件: vi /etc/yum.repos.d/rhel-debuginfo.repo内容如下:

[rhel-debuginfo]

name=Red Hat Enterprise Linux $releasever - $basearch - Debugbaseurl=file:///mnt/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

挂在光盘到/mnt: mount /dev/hdc /mnt

执行yum update 来 升级yum库。

yum -y install 软件名称

三.用mrtg来监控路由器/交换机/服务器的接口流量。

1. cfgmaker --global “WorkDir:/var/www/html” --global “Options[]:growright,bits” --show-op-down --ifref=name --output mrtg.cfg password1@路由器ip password2@服务器ip ….

解释一下:

cfgmaker命令是用来生成mrtg的配置文件的

--global是两个全局配置参数来指定mrtg的工作目录和流量的增长单位

--show-op-down是显示所有接口流量,默认只显示有流量的接口

--ifref=name表示生成的流量图片上方的标题是接口的名称

--output=mrtg.cfg表示mrtg的配置文件的名称

password1@路由器ip,注意@前面是snmp的团体名称,是来做身份验证的,相当于密码,该团体名称要在被管设备上面提起设置好,这个需要大家注意一下。

2. env LANG=C /usr/bin/mrtg mrtg.cfg

这条命令大家应该清楚什么意思吧:把环境变量LANG设置为C(中文chinese),用mrtg命令来处理刚才生成的mrtg的配置文件。注意该命令需要执行3次。

3. indexmaker --output=/var/ww/html/index.html --title=网页标题 /var/www/html/mrtg.cfg

indexmaker是用来生成网页文件的,后面需要指定一下mrtg的配置文件。

4 启动一下apache,然后通过http://搭建mrtg的ip就可以访问到监控内容了

写一个计划任务让它每五分钟执行一次来达到实时监控的目的.

crontab -e

*/5 * * * * env LANG=C /usr/bin/mrtg /var/www/html/mrtg.cfg

注意:A. 如果监控网络设备,一定要提前在设备上开启snmp,否则是监控不到的。

比如:华为或者h3c的设备启用snmp的命令是: snmp-agent community read 共同体名

思科的设备启用snmp的命令是: snmp community 共同体名 ro/rw

B .如果监控windows客户端,windows要安装“简单网络管理协议”(在添加删除程序里面),然后在服务里面就可以找到snmp:如图

给它添加一个团体名称就可以了。

<a></a>

监控linux主机

从RHEL5光盘中安装net-snmp软件包

* 先安装依赖包 lm_sensors-2.10.0-3.1.i386.rpm

* 再安装 net-snmp-5.3.1-14.el5.i386.rpm

调整snmpd.conf配置文件

<b>vi /etc/snmp/snmpd.conf</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768194Ftte.jpg"></a>

第二款监控软件cacti

先看一下cacti的原理图:

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768195K4aH.png"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768196E524.jpg"></a>

下面看一下cacti的搭建过程:

配置被监测端

* 要能够支持以SNMP协议提供监测数据

* 对于Linux主机可以安装net-snmp软件包

配置监测服务端

* 安装并配置以Cacti套件为主的各种工具

* 包括AMP平台、SNMP数据采集工具、RRDTool工具

使用Cacti监测系统

* 添加被监测主机或设备

* 设置被监测的具体项目

* 生成及查看监测图像

一.被监控端(一台linux服务器)的操作:在mrtg中已做介绍,这里就省略了

二.服务器端的操作:

安装依赖软件

* AMP平台,从RHEL5光盘中安装下列软件包

yum -y install httpd mysql mysql-server mysql-connector-odbc

yum -y install php php-mysql php-common php-pdo

SNMP数据采集工具

* lm_sensors、net-snmp、net-snmp-utils

* yum -y install lm_sensors net-snmp net-snmp-utils

RRDTool引擎

* 下载软件包:rrdtool-1.2.27.tar.gz

* 配置:./configure --prefix=/usr/local

* 编译安装: make &amp;&amp; make install

小提示:期间可能会报错:intltool太老(也可能没安装)

解决方法:yum -y install intltool

<b>安装Cacti</b><b>程序套件</b>

cacti-0.8.7g.tar.gz -C /var/www/html/

进入/var/www/html/目录:

mv cacti-0.8.7 cacti

useradd cactiuser

<b>chown -R cactiuser.cactiuser cacti/rra/ cacti/log/</b>

<b>启动mysql</b><b>: service mysqld start</b>

<b>登陆 mysql -u root -p</b>

<b>mysql&amp;gt; create database cactidb default character set utf8;</b>

<b>mysql&amp;gt; grant all on cactidb.* to cactiuser@localhost identified by '1234';</b>

<b>mysql&amp;gt; quit</b>

<b>用sql</b><b>语句导入数据库内容.</b>

<b>[root@localhost html]# mysql -u cactiuser -p cactidb &lt; cacti/cacti.sql</b>

编辑cacti的配置文件/var/www/html/cacti/include/config.php

$database_type = "mysql"; 数据库类型

$database_default = "cactidb"; 数据库名称

$database_hostname = "localhost"; 数据库服务器位置

$database_username = "cactiuser"; 连接数据库的用户

$database_password = "1234"; 该用户的密码

$database_port = "3306"; 数据库端口

修改apache主配文件

DirectoryIndex 后面添加index.php

然后就可以启动apache了: service httpd start

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768197DUcp.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768200Chhj.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768202taUw.png"></a>

如何添加设备

添加设备:ConsoleàDevicesàAdd

需要填写的内容主要是:设备描述 设备ip或主机名 snmp版本 团体名

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_13127682032HUd.jpg"></a>

能够看到snmp information证明添加成功了。

生成图像

然后选择要为哪个设备生成图像,把右侧要生成图像的内容的勾号都勾选上。

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768207TLvY.jpg"></a>

把图像挂载到图像树下面去

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768207ykIA.jpg"></a>

如果想生成连续的图像需要写一个计划任务:

*/5 * * * * php /var/www/html/cacti/poller.php

温馨提示:执行这条命令会在/var/www/html/cacti/rra目录下生成很多以rrd结尾的数据文件,如果没有生成,则证明权限设置有问题

Cacti扩展

扩展三个插件monitor,settings,thold

插件的主要作用:

一是邮件报警

二是声音报警

具体操作

* 解压补丁文件 cacti-plugin-0.8.7g-PA-v2.8.tar.gz

* Cd /var/www/html/cacti

* patch -p1 -N &amp;lt; /soft/cacit/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff

* 注意:补丁文件必须与cacti安装文件版本匹配才可以

* 然后分别把thold-0.3.9.tar.gz;settings-0.5.tar.gz;monitor-0.7.tar.gz解压到 /var/www/html/cacti/plugins目录

这是monitor的内容,有声音报警

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768209CaWM.jpg"></a>

这是邮件报警,在console-&gt;settings-&amp;gt;mail/dns里面

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768210pYOE.jpg"></a>

Cacti-后续扩展,我会继续更新cacti监控里的东西,大家可以多关注我的博客:

<a href="http://gehailong.blog.51cto.com/">http://gehailong.blog.51cto.com</a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768211Wpto.png"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768214uj64.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_131276821557So.jpg"></a>

这些内容我后续会在博客里写出来

第三款监控软件nagios

Nagios功能非常强大,它可以监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成比如飞信,邮件等实现报警。nagios安装,是指基本平台,也就是nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。

nagios搭建

用户和组的建立:

* <b>建立 nagios </b><b>账号</b>

* <b>/usr/sbin/useradd nagios</b>

* <b>创建一个用户组名为 nagcmd </b><b>用于从 Web </b><b>接口执行外部命令。将 nagios</b><b>用户和 apache </b><b>用户都加到这个组中。</b>

* <b>/usr/sbin/groupadd nagcmd</b>

* <b>/usr/sbin/usermod -G nagcmd nagios</b>

* <b>/usr/sbin/usermod -G nagcmd apache/daemon</b>

安装软件:nagios-3.3.1.tar.gz

主要操作:

* <b>./configure --with-command-group=nagcmd --prefix=/usr/local/nagios</b>

* <b>make all</b>

* <b>make install</b>

* <b>make install-init</b>

* <b>make install-config</b>

* <b>make install-commandmode</b>

bin

Nagios执行程序的目录

etc

Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 3与2区别 对象配置文件都在etc/objects目录下

sbin

Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录

Share

Nagios网页文件所在的目录

Var

Nagios日志文件、spid 等文件所在的目录

var/archives

Empty directory for the archived logs

var/rw

Empty directory for the external command file

Nagios主配文件nagios.conf简介

* <b>cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //</b><b>联系人/</b><b>组配置文件</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //</b><b>本机配置文件</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //</b><b>监视时段配置文件</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/commands.cfg //</b><b>监视脚本配置</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/templates.cfg //</b><b>监视服务,</b><b>报警配置</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/switch.cfg //</b><b>监视路由</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/windows.cfg //</b><b>监视微软</b>

安装插件:<b> nagios-plugins-1.4.15.tar.gz</b><b>来扩展nagios</b><b>的功能</b>

* <b>tar zxvf nagios-plugins-1.4.15.tar.gz</b>

* <b>cd nagios-plugins-1.4.15</b>

* <b>./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &amp;&amp;make &amp;&amp; make install</b>

* <b>chown nagios.nagios /usr/local/nagios</b>

* <b>chown -R nagios.nagios /usr/local/nagios/libexec</b>

<b>验证插件是否安装成功:</b>

* <b>ls /usr/local/nagios/libexec</b>

* <b>会显示安装的插件文件,</b><b>即所有的插件都安装在 libexec </b><b>这个目录下</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768217oTNm.jpg"></a>

监控软件nagios-配置web接口(我介绍的是最简单的方法,不要改apache的配置文件)

<b>直接在nagios </b><b>的解压目录下执行一下 make install-webconf</b>

<b>主要作用:在/etc/httpd/conf.d</b><b>目录下生成nagios.conf</b>

<b>这种配置方式是最简单,最方便的。</b>

* <b>创建一个 nagiosadmin </b><b>的用户用于 Nagios </b><b>的 WEB </b><b>接口登录。记下你所设置的登录口 </b><b>令,一会儿你会用到它。</b>

* <b>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</b>

<b>重启apache</b><b>让刚才生成的配置文件生效: service httpd restart</b>

* <b>把 Nagios </b><b>加入到服务列表中以使之在系统启动时自动启动</b>

* <b>chkconfig --add nagios</b>

* <b>chkconfig nagios on</b>

* <b>检查Nagios </b><b>的配置文件是否有语法错误</b>

* <b>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</b>

* <b>这条命令会经常用到要牢记</b>

* <b>如果没有报错,就可以启动 Nagios </b><b>服务</b>

* <b>service nagios start</b>

* <b>访问http://</b><b>服务器ip/nagios </b><b>输入用户名和口令就可以访问了</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768217gFgA.jpg"></a>

监控软件nagios-监控linux

服务器的配置:

1. 安装软件nrpe-2.12.tar.gz

服务器和被监控主机通过nrpe通信

tar xzvf nrpe-2.12.tar.gz

cd nrpe-2.12

<b>./configure &amp;&amp;make all &amp;&amp;make install-plugin &amp;&amp;make install-daemon &amp;&amp;make install-daemon-config</b>

* <b>2.</b><b>在/usr/local/nagios/etc/objects</b><b>下新建文件hosts.cfg</b><b>在里面写入如下内容:</b>

* <b>define host {</b>

* <b>name default_servers </b><b>定义模板,后面会用</b>

* <b>contact_groups admins </b><b>出问题联系哪个组</b>

* <b>max_check_attempts 5</b>

* <b>notification_interval 0</b>

* <b>notification_period 24x7</b>

* <b>notification_options d,u,r</b>

* <b>check_command check-host-alive</b>

* <b>}</b>

* <b>use default_servers </b><b>调用上面定义的模板</b>

* <b>host_name db_ip2_back</b>

* <b>alias db_ip2_back</b>

* <b>address 192.168.10.2</b>

* <b>3.</b><b>在/usr/local/nagios/etc/objects</b><b>目录下新建services.cfg</b><b>。内容如下</b>

* <b>efine service {</b>

* <b>name dbservers </b><b>定义模板,后面要用</b>

* <b>max_check_attempts 3</b>

* <b>normal_check_interval 4</b>

* <b>retry_check_interval 2</b>

* <b>check_period 24x7</b>

* <b>notification_interval 15</b>

* <b>notification_options w,u,c,r</b>

* <b>contact_groups admins </b><b>组要在contacts.cfg</b><b>中提前定义好</b>

* <b>define service{</b>

* <b>use dbservers</b>

* <b>service_description Root Partition</b>

* <b>check_command check_local_disk!20%!10%!/</b>

客户端的配置:

* 新建用户nagios

* 安装nrpe软件。安装方式跟服务器安装方式相同

* 启动nrpe:

* <b>/usr/local/nagios/bin/nrpe -d /usr/local/nagios/etc/nrpe.cfg</b>

* <b>查看是否启动成功:</b>

* [root@localhost etc]# netstat -ntlp|grep nrpe

* tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 20086/nrpe

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768218xXAl.png"></a>

监控软件nagios-监控windows

服务器端的配置:

* 编辑/usr/local/nagios/etc/objects/hosts.cfg在后面添加如下内容

* define host{

* use default_servers

* host_name win_ip3_server

* alias win_ip3_server

* address 192.168.10.3

* }

* 编辑/usr/local/nagios/etc/objects/services.cfg在后面添加如下内容

* define service{

* use generic-service

* service_description Memory Usage

* check_command check_nt!MEMUSE!-w 80 -c 90

* service_description C:\ Drive Space

* check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

<b>Windows</b><b>客户端的配置:</b>

* <b>1.</b><b>双击安装NSClient++-0.3.6-Win32.msi</b>

* <b>2.</b><b>编辑NES.ini</b>

* <b>在 [modules] </b><b>选项里</b>

* <b>去掉所有的注释符号; </b><b>除了</b>

* <b>CheckWMI.dll</b><b>和RemoteConfiguration.dll</b>

* <b>在 [Settings] </b><b>选项里</b>

* <b>修改allowd_host=61.x.x.x(nagios</b><b>服务器的ip)</b>

* <b>如果这一步要修改passwd</b><b>,那么nagios</b><b>服务器里面commands.cfg</b><b>也要修改!</b>

* <b>步骤: </b><b>在commands.cfg </b><b>找到check_nt </b><b>定义命令 </b><b>中的 Command_line </b><b>在其中添加-s </b><b>你的密码</b>

* <b>在[NSClient] </b><b>里面,去掉port=12489</b><b>的注释!</b>

* <b>他靠端口12489</b><b>侦听,所以防火墙要打开这个端口!</b>

* <b>然后双击nstray.exe</b><b>启动nsclient</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768219SZ0n.png"></a>

实现飞信报警

安装飞信:

把飞信安装到/usr/local/nagios/sms目录。

* tar xzvf fetion20090406003-linux.tar.gz -C /usr/local/nagios/sms/

* cd /usr/local/nagios/sms/install

* mv * ../

* 运行飞信会报错: /usr/local/nagios/sms/fetion

* ./fetion: error while loading shared libraries: libACE-5.6.8.so: cannot open shared object file: No such file or director

* 解决方法:

* tar xzvf library_linux.tar.gz -C /usr/lib

<b>测试飞信:</b>

* <b>./fetion --mobile=</b><b>手机号 --pwd=</b><b>密码 --msg-utf8="test" --to=13671324197</b>

* <b>编辑commands.cfg</b><b>在后面添加如下内容</b>

* <b>define command{</b>

* <b>command_name notify-service-by-sms</b>

* <b>command_line /usr/local/nagios/sms/fetion --mobile=13716335947 --pwd=fantong_2010 --msg-type=1 --msg-utf8="$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$ on $TIME$ result is $SERVICEOUTPUT$" --to=$CONTACTPAGER$</b>

* <b>编辑 contacts.cfg</b><b>,添加如下内容</b>

* <b>define contact {</b>

* <b>contact_name nagiosadmin</b>

* <b>alias nagiosadmin</b>

* <b>service_notification_period 24x7</b>

* <b>host_notification_period 24x7</b>

* <b>service_notification_options w,u,c,r</b>

* <b>host_notification_options d,u,r</b>

* <b>service_notification_commands notify-service-by-email,notify-service-by-sms</b>

* <b>host_notification_commands notify-host-by-email,notify-host-by-sms</b>

* <b>email [email protected],[email protected]</b>

* <b>pager 13671324197</b>

* <b>define contactgroup{</b>

* <b>contactgroup_name admins</b>

* <b>alias Nagios Administrators</b>

* <b>members nagiosadmin</b>

后续扩展,后续我会吧一下nagios的高级应用加到博客里去

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768219qDtS.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768222mahK.jpg"></a>

Ganglia这个软件我在我博客已经有了,这里我就省略了。。。

本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/633825,如需转载请自行联系原作者