您的位置:首页 > 移动开发 > IOS开发

cacti与nagios整合安装

2014-09-16 13:50 489 查看
1.LAMP环境
准备的LAMP(linux+apache+mysql+php)
LAMP的环境需要的软件
yum -y install gcc gcc-c++ glibc glibc-devel glibc-common autoconf automake libjpeg libjpeg-devel
libpng libpng-devel freetype freetype-devel libxml2 libxml-devel gd gd-devel
zlib zlib-develglib2 glib2-devel bzip2 bzip2-devel
ncurses ncurses-devel curl curl-devel openssl open-devel libart_lgpl-devel
一.rpm安装
yum install mysql mysql-devel http php
二.源码编译安装
先编译
1.安装mysql
tar zvxf mysql-5…tar.gz
cd mysql-5....
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-low-memory --with-mysqld-user=mysql --enable-thread-safe-client
make && make install
echo "/usr/local/mysql/lib/mysql" >>/etc/ld.so.conf
ldconfig –v
# useradd mysql ##建立mysql用户同时新建mysql组
# cd /usr/local/mysql/bin
# ./mysql_install_db
# cd /usr/local/
# chown -R root.mysql mysql/
# chown -R mysql mysql/var
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
#/usr/local/mysql/bin/mysqladmin -u root password stcomd
#cp /usr/local/mysql/share/mysql/my-medium.cnf /usr/local/mysql/my.conf
2.安装apache
Tar zvxf apache-2……tar.gz
./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-ssl --with-zlib --enable-mods-shared=all --enable-track-vars --with-mysql=/usr/local/mysql
make &&make install
3. 安装PHP
Tar zvxf php-5…tar.gz
./configure --prefix=/usr/local/php --with-config-file-path=/etc/ --with-apxs2=/usr/local/apache/bin/apxs --enable-fastcgi --enable-safe-mode --enable-mbstring --enable-sockets --enable-pcntl --with-zlib --with-bz2 --with-freetype-dir --with-gd --with-libxml-dir --with-png-dir --with-jpeg-dir --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql/ --with-curl --with-curlwrappers
make&&make install
cp php.ini-dist /etc/php.ini
vi /usr/local/apache/conf/httpd.conf
在 LoadModule php5_module modules/libphp5.so 下添加
AddType application/x-httpd-php .php php5 .phtml
AddType application/x-httpd-php-source .phps
在 DirectoryIndex index.html index.html.var 后添加 index.php index.php5 index.phtml index.htm
vi /usr/local/apache/conf/extra/httpd-languages.conf
添加 AddDefaultCharset utf-8
--with-pdo-mysql=/usr/local/mysql 这个参数必须加上,否则cacti的npc插件将无法现实nagios的信息。
在/usr/local/apache/htdocs/下放一个php探针
vi /usr/local/apache/htdocs/test.php
<?php
Phpinfo();
?>
2.cacti安装
1.安装snmp
# tar -zxvf net-snmp-5.2.2.tar.gz
# ./configure --prefix=/usr/local/snmp
# make &&ke install
# cp EXAMPLE.conf /usr/local/snmp/snmpd.conf
#vi /usr/local/snmp/bin/snmpd.conf
修改IP和团体
2. 安装rrdtool
# tar -zxvf rrdtool-1.2.30.tar.gz
# ./configure --prefix=/usr/local/rrdtool
# make&&make install
3. 安装cacti
tar -zxvf cacti-0.8.7e-cn-utf8.tar.gz
mv cacti-0.8.7e-cn-utf8 /usr/local/apache/htdocs/cacti
/usr/local/mysql/bin/mysql -u root -p
create database cacti;
#grant all privileges on cacti.* to cacti@localhost identified by 'stcomd';
# flush privileges;
#exit
#cd /usr/local/apache/htdocs/cacti
#/usr/local/mysql/bin/mysql -u root -p cacti
vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti"; #数据库名
$database_hostname = "localhost";
$database_username = "cacti"; #数据库登录名
$database_password = "stcomd"; #登录名相应的密码
$database_port = "3306";
cd /usr/local/apache/htdocs/cacti
useradd cacti
crontab -u cacti –e
*/5 * * * * /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
chown -R cacti rra/ log/
chmod -R 777 rra/ log/
配置cacti:HTTP://cactiserver/cacti
4. 安装spinehttp://www.cacti.net/downloads/spine/cacti-spine-0.8.7e.tar.gz
tar xzvf cacti-spine-0.8.7e.tar.gz
cd cacti-spine-0.8.7e编译需要libtool
./configure --prefix=/usr/local/spine
make && make install
cp spine spine.conf /usr/local/spine/etc/spine.conf
vi /usr/local/spine/etc/spine.conf
修改数据库名、数据库用户名和密码等信息.
指定spine的物理路径
Console -> Configuration -> Settings -> Paths -> Alternate Poller Path -> Spine Poller File Path
路径为/usr/local/spine/bin/spine
5. 安装Plugins
安装plugins有两种方法,一种是patch的方法安装
#patch -p1 -N < cacti-plugin-0.8.7e-PA-v2.5-cn-utf8.diff
另外一种是直接解压已经打好的报
# tar -zxvf cacti-plugin-arch.tar.gz
# cd cacti-plugin-arch
#/usr/local/mysql/bin/mysql –u root –p cacti
#cd files-0.8.7d/
#cp –rf * /usr/local/apache/htdocs/cacti 最好先备份之前的cacti
vi /usr/local/apache/htdocs/cacti/include/global.php
修改数据库名、数据库用户名和密码等信息.
修改$config['url_path'] = '/cacti/';
3.nagios安装
1.安装nagios
1)nagios需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。
#/usr/sbin/useradd -m nagios 添加一个名为nagios的用户用以专门跑nagios
#/usr/sbin/groupadd nagios 添加nagios用户组,用以通过web页面提交外部控制命令
#/usr/sbin/usermod -a -G nagios daemon 将运行apache用户daemon加入nagios组
2)安装nagios
#tar xzf nagios-cn-3.2tar.gz
#cd nagios-cn-3.2
#./configure --with-command-group=nagios --with-httpd-conf=/usr/local/apache/conf/extra/
#make all
#make install
#make install-init
#make install-config
#make install-commandmode
这时nagios基本已经安装完成,默认安装后的配置文件用于启动nagios是没有问题的。
#vi usr/local/nagios/etc/objects/contacts.cfg
修改nagiosadmin这行其中的邮件地址为你的email地址,以将报警邮件发到你的邮箱
#make install-webconf 安装nagios的web接口
#/usr/local/apache/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
设置登陆web界面时HTTP验证的账号密码
vi /usr/local/apache/conf/httpd.conf
添加一下两行
# nagios default settings
Include conf/extra/nagios.conf
#/usr/local/apache/bin/apachectl -k restart
#service nagiosrestart 启动nagios
2 安装nagios-plugins
nagios-plugins是nagios官方提供的一套插件程序,nagios监控主机的功能其实都是通过执行插件程序来实现的。
#tar xzf nagios-plugins-1.4.13.tar.gz
#cd nagios-plugins-1.4.13
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install
安装插件,安装后所有插件命令将被安装到/usr/local/nagios/libexec 目录下
4.nagios与cacti整合
整合cacti和nagios是利用了cacti的一个插件nagios for cacti,它的原理是将nagios的数据通过ndo2db导入到mysql数据库(cacti的库中),然后cacti读取数据库信息将nagios的结果展示出来。
1.安装ndoutils
首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。
#yum -y install mysql-devel 安装mysql开发包以编译ndoutils
如果是自行编译的mysql就需要做软连接过去,不然编译的时候会提示找不到mysql.h文件,或者是修改ndo的源码。
ln -s /usr/local/mysql/include/* /usr/include/
ln -s /usr/local/mysql/lib/* /usr/lib/
echo '/usr/lib' >> /etc/ld.so.conf
#tar zxvf ndoutils-1.4b7.tar.gz
#cd ndoutils
#./configure --enable-mysql --disable-pgsql
#make
修改nagios主配置文件
#vi /usr/local/nagios/etc/nagios.cfg
添加以下内容
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg

#cd src
#cp ndomod-3x.o nod2db-3x log2ndo file2sock /usr/local/nagios/bin
#cp config/ndomod.cfg /usr/local/nagios/etc
#cp config/ndo2db.cfg /usr/local/nagios/etc
修改配置文件ndocmd.cfg和ndo2db.cfg,配置文件内容为:
#cat /usr/local/nagios/etc/ndomod.cfg |grep -v '^#'|sed /^$/d
instance_name=default
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2
#cat /usr/local/nagios/etc/ndo2db.cfg |grep -v '^#'|sed /^$/d
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
db_servertype=mysql
db_host=127.0.0.1
db_port=3306
db_name=cacti
db_prefix=npc_
db_user=cacti
db_pass=cacti2008
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
debug_level=1
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000
#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg 启动ndo2db
注意查看nagios.log 和messages的日志,数据库cacti下插入如下内容
添加如下,否则数据没有数据
/usr/local/mysql/bin/mysql –u -p
ALTER TABLE `npc_hostchecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_hoststatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicechecks` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_servicestatus` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_statehistory` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_eventhandlers` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_systemcommands` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
ALTER TABLE `npc_notifications` ADD COLUMN `long_output` varchar(8192) NOT NULL default '' AFTER `output`;
5.安装snmp协议
cacti和nagios都可以使用snmp协议采集数据
一.windows安装snmp协议
1.windows xp或2003安装snmp服务
开始-控制面板-添加删除程序-添加/删除windows组件-选管理和监视工具-选简单网络管理协议(snmp)
2.配置团体和允许采集的ip
桌面我的电脑-右键-管理-服务和应用程序-服务-SNMP service-右键-属性-陷阱-在团体名称中填写如“scomd”-添加到列表
3.配置团体字的权限
桌面我的电脑-右键-管理-服务和应用程序-服务-SNMP service-右键-属性-安全
选中“发送身份验证陷阱”,接受团体名称点击添加-输入团体名称如“myserver”,
选中“接受来自这些主机的snmp数据包”,意思是只接受localhost的snmp数据包,也可以点击添加,添加其他主机。
如果允许接受任何主机的snmp数据包,那么选中“接受来自任何主机的snmp数据包”。
配置完后,在网管软件中用“scomd”团体字名称就可以获取服务器的数据了。
4.安装SNMP Informant-STD 1.6
除了windows自带安装的snmp之外,还需要安装SNMP Informant-STD 1.6软件下载地址或者附件中也有:http://www.wtcs.org/informant/download.htm只要安装好就可以了,不需要任何设置,(当然之前你自带的snmp需要设置一下,一个是设置public,一个是监控你snmp的服务器IP地址,也就是cacti的机器IP地址,设置好后记得重起一下snmp服务,这点很重要,然后检查一下服务器是不是开放了udp 161端口,还有防火墙是不是开放了这端口.根据自己的情况去设置,这块设置跟步骤3是一样的,设置了3,4就不要再设置了。)。
5.cacti的设置
1.首先把监控windows的脚本导入到cacti
附件中Cacti_SNMP_INFORMANT_STD_W32_Metrics.zip的包,里面包含的文件就是脚本文件,其中snmp_informant_.xml开头的文件是需要放到cacti服务端的snmp_queries目录下,如果你的debian 的话,目录地址是/usr/share/cacti/resource/snmp_queries/。cacti_data_query开头的文件全都通过cacti页面导入。



2.在Devices中新建立个服务器,填写名称和ip地址,还有snmp信息,最下面的地方add如下东西:



3.然后点最上面的Create Graphs for this Host ,选择Graphs Types,添加需要监控的项目。



这样基本上就可以了,然后设置windows服务器

二.linux安装snmp协议
1. rpm安装
yum install snmp
2.编译安装net-snmp
# tar –zxvf net-snmp-5.2.2.tar.gz
# ./configure --prefix=/usr/local/snmp
# make &&ke install
# cp EXAMPLE.conf /usr/local/snmp/snmpd.conf
#vi /usr/local/snmp/snmpd.conf
修改IP和团体

1更改com2sec notConfigUser default public改为com2sec notConfigUser 127.0.0.1 public2、更改access notConfigGroup "" any noauth exact systemview none none 改为access notConfigGroup "" any noauth exact all none none #view all included .1 80将前面的 # 注释 去掉。 保存退出
三.网络设备启用snmp协议
1.登录cisco路由器或者交换机
1)进入特权模式:
cisco > enable
2)进入全局模式:
cisco # config t
3)配置snmp
cisco (config)# snmp-server community scomd RO
说明:ciscoswitch 为团体字名称 ,RO为只读权限(如果要读写,则改成rw)
4)保存配置
cisco # wr
在cacti和nagios上通过scomd团体字名称可以访问这台设备的端口等信息。
2.h3c 网络设备snmp配置
1)进入系统模式
system-view
System View: return to User View with Ctrl+Z.
[H3C]
2)配置snmp
[H3C] snmp-agent community read scomd (配置团体字名称为myswitch)
[H3C] snmp-agent sys-info version all (支持snmp的三个版本:V1、V2、V3)
在cacti和nagios上通过scomd团体字名称可以访问这台设备的端口等信息。
最后就是测试snmp是否可以使用
/usr/local/snmp/bin/snmpwalk -v 2c -c MSNMP ip if

6.推荐的cacti模板
一、Cacti脚本及模板
Cacti脚本及模板论坛:http://forums.cacti.net/forum-12.html
一个完整的cacti脚本及模板列表:http://forums.cacti.net/about15067.html
1.Advance Ping 脚本及模板
下载地址:http://forums.cacti.net/about10049.html
注:要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字。
1).功能:此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。
2).下载ss_fping.php脚本并放到/usr/local/apache/htdocs/cacti/scripts/目录下,下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导入。
3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加AdvancedPingv1.3模板。并点击最上面的Create Graphs for this Host链接。
在Graph Templates的选择框中选择PING - Advanced Ping v1.3,然后点击Create按钮,出现以下WEB页。
第一项意思是一次向要监控的端口发送多少个探测包(默认20个),第二项是使用的协议,可以是ICMP、TCP、UDP,第三项是要监控的端口号(只有第二项为TCP或是UDP时使用),填写完成后点击create按钮。
在Console控制台选项卡下的左侧菜单中选择Date Sources,选择以上新建的数据源可以修改以上填写的信息。
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。
在graphs选项卡下浏览创建的Advanced Ping监控图。
TCP3360端口(MySQL)
TCP80端口(HTTP)
Pkt Loss:丢包数量/20 * 100%(每次ping 20个包)
Avg Loss:平均丢包情况
Latency:延时情况
Avg Latency:平均延时情况
2.MySQL stats模板
论坛讨论:http://forums.cacti.net/about11010.html
下载地址:http://www.faemalia.net/mysqlUtils/
功能:用来监控MySQL状态,其中包括索引使用情况、查询、排序、锁定情况等。
1).将mysql_stats.php 和dumpMemcachedStats.php脚本放到cacti脚本目录下(/usr/local/apache/htdocs/cacti/scripts/),导入模板时注意选择cacti_host_template_temysql_host-step300-heartbeat600.xml和cacti_host_template_memcached_host-step300-heartbeat600.xml模板(默认cacti 5分钟取一次数据)。
2).配置MySQL服务器,让cacti所在机器能够访问MySQL服务器的状态信息,必须拥有"process"权限。如果要监控InnoDB状态,还必须有"SUPER"权限。
GRANT PROCESS ON *.* TO cacti@'cactimachine' IDENTIFIED by 'cacti';
GRANT SUPER ON *.* TO cacti@'cactimachine' IDENTIFIED BY 'cacti';
3).创建Graph。在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated GraphTemplates中添加想要监控MySQL状态的Graph Templates(如teMySQL – IndexUsage模板,此套模板是以teMySQL开头的一系列模板)。并点击最上面的Create Graphs for thisHost链接,在Graph Templates的选择框中选择teMySQL – IndexUsage,然后点击Create按钮,出现以下WEB页。
在上面填写有权限访问MySQL数据库的用户名及密码,然后点击create按钮。
选中刚添加的Graph Templates,点击create按钮来创建Graph。
在控制台选项卡下左侧菜单中选择Graph Trees可以组织一个树状视图。
在graphs选项卡下浏览创建的MySQL监控图。

7.安装linux服务器插件(客户端)-nrpe
一、linux安装
1.nagios-plugins
useradd nagios
tar zvxf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14.tar.gz
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
chown –R nagios:nagios /usr/local/nagios
2.nrpe
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz tar -zxvf nagios-nrpe_2.12.tar.gz
cd nrpe
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
配置nrpe信息
vi /usr/local/nagios/etc/nrpe.cfg
查找并修改
allowed_hosts=192.168.8.53,127.0.0.1, 注意修改为服务器的IP
查找并修改为:
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 10% -c 5%
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 550
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
启动nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
vi /etc/rc.d/rc.local 添加下面内容
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
验证nrpe
netstat -an | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
#服务端测试(在192.168.20.9上测试下)
/usr/local/nagios/libexec/check_nrpe -H l92.168.20.21
修改服务端配置
vi /usr/local/nagios/etc/objects/commands.cfg
最下面添加
#check nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
========================================================

8、监控windows服务器插件(客户端)
nagios的windows客户端
下载地址: http://sourceforge.net/projects/nscplus NSClient++-0.3.7-Win32.msi
NSClient++-0.3.7-x64.msi
安装和普通软件安装方式一样
1.双击安装---》next---》同意
---》next ---》next---》next---》设置允许IP
设置密码(这里设置的密码一般可以不设置)
Modules to load 前三个模块选上就行
---》next---》install---》finish
2.启动服务
3.netstat /an 查看是否有tcp协议的12589端口
4.监控端主机的设定:
● libexec 下须要 check_nt 执行程序。
● 设定 commands.cfg
增加:
# 'check_nt' windows client command definition for remote service
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
● 设定主要监控项目 service.cfg
# 监控 windows 主机的开机运作时间
define service{
use remote-service ; Name of service template to use
hostgroup_name windows-servers
service_description System Uptime
check_command check_nt!UPTIME
}
# 监控 windows 主机的 CPU 负载
define service{
use remote-service ; Name of service template to use
hostgroup_name windows-servers
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
监控 windows 主机的内存使用状况
define service{
use remote-service ; Name of service template to use
hostgroup_name windows-servers
service_description Memory usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
监控 windows 主机的 C:\ 的空间使用量
define service{
use remote-service ; Name of service template to use
hostgroup_name windows-servers
service_description c:\ - total
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
另外还有:
监控 windows 主机的 MSSQLSERVER 服务的运作状况,如服务终止了,则会发 CRITICAL
check_command check_nt!SERVICESTATE!-d SHOWALL -l MSSQLSERVER
监控 windows 主机的 Explorer.exe 执行程序的运作状况,如程序终止了,则会发 CRITICAL
check_command check_nt!PROCSTATE!-d SHOWALL -
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  monitor