Centos 6.7 安张nagios和cacti 并添加监控主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 6.7 安张nagios和cacti 并添加监控主机相关的知识,希望对你有一定的参考价值。


wget http://mcshell.org/nrpe-2.8.tar.gz

wget http://mcshell.org/nagios-plugins-1.4.13.tar.gz

一、环境Centos 6.7

ip:192.168.3.150 nagios 和cacti  监控主机

     192.168.3.150/152   被检控主机

二、安装准备

mount 

 yum  –y install httpd php php-mysql mysql mysql-server php  net-snmp-utils  rrdtool snmp  cairo-devel libxml2-devel pango pango-devel 



service mysqld start       # 启动mysql服务

chkconfig mysqld on      #使其开机自动启动


启动完mysql后,如果出现以下画面,并能通过mysql进入,说明成功安装。

只要在/etc/httpd/conf/httpd.conf的配置文件中找到

LoadModule  status_module  modules/mod_status.so

有这一项表示已经支持状态检测模块,所以无需额外添加,直接启动web服务即可.

service httpd start                   #启动http服务

chkconfig httpd on                 #开机自动启动httpd 服务

启动OK后,编辑

vim /var/www/html/index.php                 在其中添加以下内容#

<?php
phpinfo();
?>



# 保存退出

用web浏览器访问,如果出现以下画面,则表示http支持动态php.并能与php成功连接.


 

接着测试与mysql的连接,先给mysql设置个管理员密码

mysqladmin -uroot password ‘123456‘                            #密码设置为123456

编辑刚才的web页面



vim /var/www/html/index.php  

把里面的内容改为


<?php $link=mysql_connect("localhost","root","123456");

 if(!$link) echo "FAILD!";

 else echo "OK!";

?>  


刷新刚才的web浏览器页面,如果出现OK!字样,则表示成功连接.

下载wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.5.5.tar.gz

tar -zxvf rrdtool-1.5.5.tar.gz -C /usr/loacl/

./configure --prefix=/usr/local/rrdtool/ && maek && make install
 

make 的时候会报错安装以下即可解决

yum install -y perl-devel perl-CPAN



登陆mysql 创建 cacti库设置权限


指定了一个网段的授权,是将来做监控时数据库和监控工具不在同一台主机上,网段可根据自己需要进行授权


mysql -u  root -p

create database cactidb;

GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY ‘123456‘;

GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY ‘123456‘;

GRANT all privileges ON cactidb.* TO [email protected] IDENTIFIED BY ‘123456‘;

flush privileges; 
  

net-snmp的主配置文件/etc/snmp/snmpd.conf中,默认的community为public,建议将public修改为您需的密码项,默认密码public

#sec.name  source          community

com2sec notConfigUser  default       public

接着,启动snmp进程

service snmpd restart   #如果修改过snmpd.conf 则需要重启服务

下载包

http://www.cacti.net/downloads/cacti-0.8.7a.tar.gz

cacti-0.8.7a.tar.gz

解压该压缩包

tar zxvf cacti-0.8.7a.tar.gz -C /usr/local/

##因为cacti的配置是在web页面下进行的,所以直接把cacti-0.8.7a 移至/var/www/html/cacti

mv /usr/local/cacti-0.8.7a /var/www/html/cacti

将cacti.sql数据库文件导入,会提示输入密码输入前面设置的root 的密码即可



mysql -u root -p cactidb < cacti.sql

编辑cacti的主配置文件,为其指定对应的数据库参数:  


vim /var/www/html/cacti/include/config.php



将下列各参数的值修改为您前面所设定的:

$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactier";
$database_password = "123456";
$database_port = "3306";
$database_ssl = false;
修改完成后保存退出。


添加cactier用户 并给其设置密码

 useradd cactier
 passwd cactier



cd   /var/www/html/cacti/

#指定rra/ log/的属组属主为cactier用户



chown -R cactier rra/ log/     

vim /etc/crontab

##编辑crontab文件 在空白行添加以下内容

*/5 * * * * cactier php /var/www/html/cacti/poller.php  > /dev/null &



#每5分钟以cactier去抓取数据绘图,这个时间5分钟应该是最小间隔了,可以根据自己想建议修改为更小值,建议就每5分钟执行一次。

关闭selinux

vim /etc/sysconfig/selinux

SELINUX=##后面的去掉即可

可以用web浏览器访问cacti进行配置管理了。

虚拟机ip为192.168.3.150                          ## IP根据自己实际情况可做相应修改

从浏览器直接访问以下地址 即可看到cacti配置画面



http://192.168.3.150/cacti/install/ 

看清路径没有报错则默认点击下一步 可以点击Finish 完成,中间的路径可能与图片不同。

Finish后就会出现登陆画面 用户名和秘密都是admin

用户名admin 密码admin 即可登陆

进入后点击graphs 会显示流量图


如果不出现图片执行以下命令让其手动绘图即可.  

su -  cactier

php  /var/www/html/cacti/poller.php > /dev/null 2>&1

exit



数据部分启动较慢,请耐心等待,如显示如上图片数据,则成功安装配置

二、安装nagios 服务 和nagios 所依赖的包

yum -y install apache gcc glibc gd

nagios  需要一些基础支持套件才能运行,如apache,gcc,glibc,gd库等。
useradd -m nagios        #添加一个名为nagios的用户来运行nagios          
groupadd nagios                              #添加nagios用户组,用以通过web页面提交外部控制命令

usermod -a -G nagios daemon             #将运行apache用户daemon加入nagios组

解压安装nagios

tar -zxvf nagios-3.2.3.tar.gz -C /usr/local/

注意下面--with-httpd-conf 的路径,取决与你apache的
cd  /usr/local/nagios-3.2.3



./configure --with-command-group=nagios --with-httpd-conf=/etc/httpd/conf/

##如果没有报错,就进行一下步骤

make all && make install && make install-init    && make install-config && make install-commandmode            

#安装完成没有报错开始以下配置

vim  /usr/local/nagios/etc/objects/contacts.cfg

make install-webconf

##修改nagiosadmin这行其中的邮件地址为你的email地址,以将报警邮件发到你的邮箱

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

##设置登陆web界面时HTTP验证的账号密码

下面修改httpd.conf ,yum装的apache ,配置文件的路径为如下所示:

vim /etc/httpd/conf/httpd.conf

在空白地方添加一下两行
# nagios  default settings
Include conf/nagios.conf

以上过程配置结束以后需要重新启动httpd:


# service httpd restart

可以正常启动,下面就可以开始编译、安装nagios-plugins

tar -zxvf nagios-3.2.3.tar.gz -C /usr/local/

cd nagios-plugins-1.4.15

 ./configure --with-nagios-user=nagios --with-nagios-group=nagios && make && maek install

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:

chkconfig --add nagios

 chkconfig nagios on

(2)检查其主配置文件的语法是否正确:



 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:

service nagios start

#当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin

chcon -R -t httpd_sys_content_t /usr/local/nagios/share









(5)通过web界面查看nagios:


http://192.168.3.150/nagios

登录时需要指定前面设定的web认证帐号和密码 nagiosadmin / 123.com

3.2.2版本的nagios有个bug .安装完在/usr/local/nagios/sbin目录下没有原来的statusmap.cgi执行脚本

点击左边的current status 中的Map会显示找不到页面,解决方法只能从老版本中拷贝一个statusmap.cgi到/usr/local/nagios/sbin目录下了,并赋予执行权限。

mv statusmap.cgi  histogram.cgi   /usr/local/nagios/sbin/

如果此时Nagios进程已启动,则需要停止并重新启动nagios:

# killall -SIGHUP nagios

# rm -f /usr/local/nagios/var/nagios.lock

# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg


可进入nagios的web管理页面查看log

service httpd restart

说明:

i)此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;

ii)建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:# tail -30 /usr/local/nagios/var/nagios.log

 如果此时Nagios进程已启动,则需要停止并重新启动nagios:

 killall -SIGHUP nagios

rm -f /usr/local/nagios/var/nagios.lock



/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

总结:
1.cacti不显示曲线图 原因在安装rrdtool 时候是否安装正确在安装cacti的时候页面上的路径是否有报警。

2.网页不访问看是否关闭selinux 和iptables防火墙


======================  naginx 添加被监控主机===        ====

[[email protected] libexec]# cd /home/softwares/
[[email protected] softwares]# wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz
[[email protected] softwares]# tar -xvf nagios-snmp-plugins.1.1.1.tgz -C /usr/local/
[[email protected] softwares]# cd /usr/local/nagios_plugins/
配 置check_snmp_int.pl这些插件的使用时需要配置cpan,CPAN是Comprehensive Perl Archive Network的缩写.。它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。这里主要是使用Perl- Net-SNMP模块。有两种方式安装
perl -MCPAN -e shell
cpan> install Net::SNMP
执行nagios-snmp-plugins安装脚本,执行之后会将插件命令安装到/usr/local/nagios/libexec下
[[email protected] nagios_plugins]# ./install.sh
[[email protected] nagios_plugins]# cd /usr/local/nagios/libexec/
[[email protected] libexec]# ls
check_apt           check_ifstatus     check_nt                 check_snmp_cpfw.pl           check_swap
check_breeze        check_imap         check_ntp                check_snmp_css_main.pl       check_tcp
check_by_ssh        check_ircd         check_ntp_peer           check_snmp_css.pl            check_time
check_clamd         check_jabber       check_ntp_time           check_snmp_env.pl            check_udp
check_cluster       check_ldap         check_nwstat             check_snmp_int.pl            check_ups
check_dhcp          check_ldaps        check_oracle             check_snmp_linkproof_nhr.pl  check_uptime
check_disk          check_load         check_overcr             check_snmp_load.pl           check_users
check_disk_smb      check_log          check_ping               check_snmp_mem.pl            check_wave
check_dummy         check_mailq        check_pop                check_snmp_nsbox.pl          negate

检测nagios的配置是否正确,在后面配置nagios过程中我们为了检测配置的是否正确需要不断执行该命令来检查配置文件。
[[email protected] libexec]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 3.2.1
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 03-09-2010
License: GPL
开启nagios服务
[[email protected] libexec]# /etc/init.d/nagios start
Starting nagios:This account is currently not available.
 done.
把nagios加入开机自启动
[[email protected] libexec]# vim /etc/rc.d/rc.local
/etc/init.d/nagios start
至此nagios安装完毕
######################监控windows主机###################################
首先在windows主机上安装NSClient++插件(64/32位)在安装的过程中指定监控端的ip地址,安装完后启动NSClient++插件的服务
在监控端配置:
1.进入nagios的主配置文件中把监控windows.server服务打开
[[email protected] etc]# vim /usr/local/nagios/etc/nagios.cfg
# Definitions for monitoring a Windows machine
把#cfg_file=/usr/local/nagios/etc/objects/windows.cfg的注释去掉,开启监控windows服务功能
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

2.进入nagios的命令配置文件中查看是否有监控windows的插件命令check_nt,如果没有还得手动添加
[email protected] etc]# vim /usr/local/nagios/etc/objects/commands.cfg
进入配置文件中进行收索,得知有check_nt命令
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
        }

3.进入windows.cfg文件中
[[email protected] etc]# vim /usr/local/nagios/etc/objects/windows.cfg

define host{
        use             windows-server  ; Inherit default values from a template
        host_name       winserver       ; The name we‘re giving to this host
        alias           My Windows Server       ; A longer name associated with the host
        address         192.168.3.28   ; #把ip地址改为被监控主机的ip地址
        }

4.都改完后重启nagios服务
[[email protected] etc]# service nagios restar
Running configuration check...done.
Stopping nagios: .done.
Starting nagios:This account is currently not available.
 done.
5.进入web页面进行查看,看windows主机是否成功加入。发现已成功加入




在被监控主机安装,nrpe naginx 插件

1.解压文件到/usr/local/
tar -zxvf nrpe-2.15.tar.gz -C /usr/local/

  cd /usr/local/nrpe-2.15/   

./configure

make all
 make install

make install-plugin —监控机需要安装check_nrpe这个插件,被监控机并不需要


被监控主机上安装:
# groupadd nagios
# useradd -g nagios -d /usr/local/nagios -s /sbin/nologin nagios

安装nagios-plugin:
# ./configure -with-nagios-user=nagios -with-nagios-group=nagios -with-ping-command="/bin/ping"
make
make install
#查看播件文件是否已安装在这个目录有好多的check文件
ls /usr/local/nagios/libexec

配置 NRPE:
# vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1
#Nagios监控机的地址或域名

修改/etc/hosts.allow增加监控机ip
# echo ‘nrpe:192.168.3.152‘ >> /etc/hosts.allow

启动 NRPE 守护进程:
[[email protected]ocalhost nagios-plugins-1.4.14]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

可以将此命令加入 /etc/rc.local ,以便开机自动启动。
# echo “/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d” >> /etc/rc.local

可以将此命令加入 /etc/rc.local ,以便开机自动启动。

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.local

添加台监控机控上操作
在监控机/usr/local/nagios/etc/objects/commands.cfg 添加nrpe的定义

# ‘check_nrpe ‘ command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

增加linuxserver.cfg
在/usr/local/nagios/etc/objects/ 目录下新建文件:linuxserver.cfg
linuxserver.cfg添加到nagios主机:
# echo "cfg_file=/usr/local/nagios/etc/objects/linuxserver.cfg>> /usr/local/nagios/etc/nagios.cfg
如果要再添加新机器方法炮制就可以了

define host{
use linux-server
host_name 192.168.3.152
alias 192.168.3.152
address 192.168.3.152
}
define service{
use generic-service
host_name 192.168.3.152
service_description load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name 192.168.3.152
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.3.152
service_description check_ftp
check_command check_ftp!21
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.3.152
service_description check_ssh
check_command check_ssh
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 192.168.3.152
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}

或者

define host{
    use     linux-server
    host_name   linhost
    alias       My Linux Server
    address     192.168.3.152

    check_command check-host-alive
        check_interval 5
        retry_interval 1
        max_check_attempts 5
        check_period 24x7
        process_perf_data 0
        retain_nonstatus_information 0
        contact_groups admins
        notification_interval 30
        notification_period 24x7
        notification_options d,u,r


    }
define service{
    use         generic-service
    host_name       linhost
    service_description CHECK USER
    check_command       check_nrpe!check_users
    }
define service{
    use         generic-service
    host_name       linhost
    service_description Load
    check_command       check_nrpe!check_load       
}   
define service{   
    use         generic-service   
    host_name       linhost
    service_description SDA1
    check_command       check_nrpe!check_sda1
    }
define service{
    use         generic-service
    host_name       linhost
    service_description Zombie
    check_command       check_nrpe!check_zombie_procs
    }
define service{
    use         generic-service
    host_name       linhost
    service_description Total procs
    check_command       check_nrpe!check_total_procs
    }

define service{
    use         generic-service
    host_name       linhost
    service_description HTTP
    check_command       check_nrpe!check_http
    }

define service{
    use         generic-service
    host_name       linhost
    service_description SSH
    check_command       check_nrpe!check_ssh

    check_period 24x7
        max_check_attempts 4
        normal_check_interval 3
        retry_check_interval 2
        contact_groups admins
        notification_interval 10
        notification_period 24x7
        notification_options w,u,c,r
    }

define service{以上是关于Centos 6.7 安张nagios和cacti 并添加监控主机的主要内容,如果未能解决你的问题,请参考以下文章

Nagios 监控

CentOS6.8下Nagios-4.2.0安装和配置

CentOS 7.3 安装 Nagios 4.3.4 和 Nagios Plugins 2.2.1

centos 搭建 nagios 监控系统.

centos 7 下nagios 安装和配置

Centos7上yum安装nagios