fsdfwe 发表于 2016-5-27 09:15:50

Nagios 监控

一、Nagios服务器端安装1、环境准备1.1基础环境# cat /etc/redhat-releaseCentOS release 6.7 (Final)# uname -r2.6.32-573.el6.x86_64# uname -mx86_641.2准备3台服务器管理IP         角色             备注10.0.0.61nagios          Nagios服务器端(管理服务器)10.0.0.8    web01          被监控的客户端服务器10.0.0.7    web02          被监控的客户端服务器1.3设置yum源安装ping www.baidu.com(确保可以上网)cd /etc/yum.repos.d//bin/mv CentOS-Base.repo CentOS-Base.repo.oldboy.oriwget -O /etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-6.repo
# ping www.baidu.comPING www.baidu.com (119.75.218.70) 56(84) bytes of data.64 bytes from 119.75.218.70: icmp_seq=1 ttl=128 time=19.0ms64 bytes from 119.75.218.70: icmp_seq=2 ttl=128 time=4.46ms64 bytes from 119.75.218.70: icmp_seq=3 ttl=128 time=3.66ms^C--- www.baidu.com ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time2291msrtt min/avg/max/mdev = 3.666/9.070/19.078/7.084 ms# cd /etc/yum.repos.d# lsCentOS-Base.repo       CentOS-Media.repoepel-testing.repoCentOS-Debuginfo.repoCentOS-Vault.repoCentOS-fasttrack.repoepel.repo# /bin/mv CentOS-Base.repoCentOS-Base.repo.oldboy.ori# wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo# cd ~
1.4解决Perl软件编译问题cd ~echo 'export LC_ALL=C'>>/etc/profiletail -1 /etc/profilesource /etc/profileecho $LC_ALLcd ~
# echo'export LC_ALL=C'>>/etc/profile# tail -1/etc/profileexport LC_ALL=C# source/etc/profile# echo$LC_ALL      C# cd ~1.5.关闭防火墙及selinux在测试环境下为了方便,最好关掉防火墙及selinex,如果是生产环境中,因为有外部IP,所以在调试完毕后需要开启防火墙。/etc/init.d/iptables stop/etc/init.d/iptables statuschkconfig iptables offchkconfig --list iptables   sed -i 's#SELINUX=enforcing#SELINUX=disabled#g'/etc/selinux/configgetenforce关闭防火墙#/etc/init.d/iptables stop#/etc/init.d/iptables statusiptables: Firewall isnot running.# chkconfigiptables off# chkconfig--list iptables   iptables      0:off1:off   2:off   3:off4:off   5:off   6:off关闭SElinux# sed -i's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config#getenforce    查看Disabled# setenforce0    临时生效setenforce: SELinux isdisabled#getenforce Disabled1.6解决系统时间同步问题 利用NTP时间同步或者配合定时任务来执行 #time sync by oldboy at2010-2-1*/5 * * * */usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
1.7安装Nagios服务端所需安装包Nagios服务器端需要有web界面展示监控效果,界面的展示主要使用PHP程序,因此,需要LAMP环境。注意:yum安装LAMP环境是配合Nagios服务端展示界面的最佳环境。(不要安装LNMP环境)yum install gcc glibc glibc-common -y    编译软件升级yum install gd gd-devel -y          用于后面PNP出图的包yum install mysql-server -y   ##非必须的,如果有监控数据库,那么需要先安装mysql,否则mysql的相关插件不会被安装yum install httpd php php-gd -y    ##Apache,PHP环境rpm -qa mysql httpd php(3个包)提示:通过yum工具安装上述所有软件包,且这些环境一般不需要在Nagios客户端安装。上面软件包安装好了之后的版本为:Apache2.2.15、PHP5.3.3、mysql5.1.73# rpm -qa mysql httpd phphttpd-2.2.15-47.el6.centos.4.x86_64php-5.3.3-46.el6_7.1.x86_64mysql-5.1.73-5.el6_7.1.x86_64
1.8、创建Nagios服务器端需要的用户及组/usr/sbin/useradd nagios    ###这个地方最好创建家目录,否则,启动Nagios会提醒没家目录/usr/sbin/useradd apache -M -s /sbin/nologin/usr/sbin/groupadd nagcmd                  /usr/sbin/usermod -a -G nagcmd nagios/usr/sbin/usermod -a -G nagcmd apacheid -n -G nagios      id -n -G apache
#/usr/sbin/useradd nagios#/usr/sbin/useradd apache -M -s /sbin/nologinuseradd: user 'apache'already exists#/usr/sbin/groupadd nagcmd #/usr/sbin/usermod -a -G nagcmd nagios#/usr/sbin/usermod -a -G nagcmd apache# id -n -Gnagiosnagios nagcmd# id -n -Gapacheapache nagcmd#
1.9上传软件包到指定目录或通过URL下载mkdir -p /home/oldboy/tools/nagioscd /home/oldboy/tools/nagiosrz

# mkdir -p /home/oldboy/tools/nagios# cd /home/oldboy/tools/nagios/# rzrz waiting to receive.???a? zmodem ′???£ °′ Ctrl+C ???£??′??oldboy_training_nagios_soft.zip...100%    7387 KB 7387 KB/s 00:00:01       0 ′?
?# lltotal 7388-rw-r--r-- 1 root root 7564715 May 22 16:05oldboy_training_nagios_soft.zip# unzip oldboy_training_nagios_soft.zip Archive: oldboy_training_nagios_soft.zipinflating:check_memory.pl      inflating:check_mysql            inflating:Class-Accessor-0.31.tar.gz extracting:Config-Tiny-2.12.tar.gz inflating:libart_lgpl-2.3.17.tar.gz inflating:Math-Calc-Units-1.07.tar.gz inflating:Nagios-Plugin-0.34.tar.gz inflating:nrpe-2.12.tar.gz       inflating:Params-Validate-0.91.tar.gz inflating:pnp-0.4.14.tar.gz      inflating:Regexp-Common-2010010201.tar.gz inflating:rrdtool-1.2.14.tar.gzinflating:check_iostat         inflating:nagios-3.5.1.tar.gz    inflating:nagios-plugins-1.4.16.tar.gz inflating:rrdtool-1.2.30.tar.gz# tree.|-- Class-Accessor-0.31.tar.gz|-- Config-Tiny-2.12.tar.gz|-- Math-Calc-Units-1.07.tar.gz|-- Nagios-Plugin-0.34.tar.gz|-- Params-Validate-0.91.tar.gz|-- Regexp-Common-2010010201.tar.gz|-- check_iostat|-- check_memory.pl|-- check_mysql|-- libart_lgpl-2.3.17.tar.gz|-- nagios-3.5.1.tar.gz|-- nagios-plugins-1.4.16.tar.gz|-- nrpe-2.12.tar.gz|-- oldboy_training_nagios_soft.zip|-- pnp-0.4.14.tar.gz|-- rrdtool-1.2.14.tar.gz`-- rrdtool-1.2.30.tar.gz
0 directories, 17 files
启动LAMP环境的HTTP服务
# /etc/init.d/httpd startStartinghttpd: httpd: Could not reliably determine the server's fully qualified domainname, using 172.16.1.61 for ServerName   ##可忽略或表示httpd.conf中缺少ServerName配置,可在/etc/httpd/conf/httpd.conf中加入ServerName127.0.0.1:80                                                          # /etc/init.d/httpd restartStopping httpd:                                           Starting httpd: httpd: Could not reliably determine theserver's fully qualified domain name, using 172.16.1.61 for ServerName                                                          # lsof -i :80COMMANDPID   USERFD   TYPE DEVICE SIZE/OFF NODENAMEhttpd   5527   root   4uIPv646082   0t0TCP *:http (LISTEN)httpd   5529apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5530apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5531apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5532apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5533apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5534apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5535apache    4uIPv6 46082      0t0TCP *:http (LISTEN)httpd   5536apache    4uIPv6 46082      0t0TCP *:http (LISTEN)

2、安装Nagios服务器端unzip -q oldboy_training_nagios_soft.ziptar xf nagios-3.5.1.tar.gzcd nagios./configure --with-command-group=nagcmdmake allmake installmake install-initmake install-configmake install-commandmode

# cd /home/oldboy/tools/nagios/# pwd/home/oldboy/tools/nagios #tar xf nagios-3.5.1.tar.gz #ls Class-Accessor-0.31.tar.gz       libart_lgpl-2.3.17.tar.gzConfig-Tiny-2.12.tar.gz          nagiosMath-Calc-Units-1.07.tar.gz      nagios-3.5.1.tar.gzNagios-Plugin-0.34.tar.gz      nagios-plugins-1.4.16.tar.gzParams-Validate-0.91.tar.gz      nrpe-2.12.tar.gzRegexp-Common-2010010201.tar.gzoldboy_training_nagios_soft.zipcheck_iostat                     pnp-0.4.14.tar.gzcheck_memory.pl                  rrdtool-1.2.14.tar.gzcheck_mysql                      rrdtool-1.2.30.tar.gz# cd nagios#./configure --with-command-group=nagcmd出现下面的说明编译成功Review the options abovefor accuracy.If they look okay,type 'make all' tocompile the main program and CGIs.
# make all出现这表示正常*************************************************************Enjoy.# make install出现这表示成功了make: Leaving directory`/home/oldboy/tools/nagios/nagios'
# make install-init   ##安装初始化脚本到/etc/rc.d/init.d/usr/bin/install -c -m755 -d -o root -g root /etc/rc.d/init.d/usr/bin/install -c -m755 -o root -g root daemon-init /etc/rc.d/init.d/nagios
*** Init scriptinstalled ***

# make install-config   ##生成Nagios模块配置文件到/usr/local/nagios/etc出现下面表示安装成功了Remember, these are *SAMPLE* config files.You'll need to readthe documentation for more information on how to actuallydefineservices, hosts, etc. to fit your particular needs.
# make install-commandmode   #安装配置目录许可外部命令文件/usr/bin/install -c -m 775 -o nagios -g nagcmd -d/usr/local/nagios/var/rwchmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***2.1、安装Nagios Web配置文件及创建登录用户make install-webconfhtpasswd -bc /usr/local/nagios/etc/htpasswd.users oldboy123456cat /usr/local/nagios/etc/htpasswd.users/etc/init.d/httpd start
创建nagios web监控界面后,登录时会需要用户和名,密码(用户:oldboy密码:123456)# makeinstall-webconf   ##生成/etc/httpd/conf.d/nagios.conf配置文件/usr/bin/install -c -m644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
*** Nagios/Apache conffile installed ***
# htpasswd -bc/usr/local/nagios/etc/htpasswd.users oldboy 123456Adding password for useroldboy重新加载Apache# /etc/init.d/httpd reloadReloading httpd:#
2.2、添加监控报警信息接受的Email地址cp /usr/local/nagios/etc/objects/contacts.cfg{,.ori}sed -i 's#nagios@localhost#542589761@qq.com#g'/usr/local/nagios/etc/objects/contacts.cfg使用第三方邮件服务商提供的邮箱,把下列一行添加达到/etc/mail.rc里# tail -1 /etc/mail.rc set from=13265571477@163.com smtp=smtp.163.comsmtp-auth-user=13265571477 smtp-auth-password=DA62073621 smtp-auth=login操作前先备份# cp/usr/local/nagios/etc/objects/contacts.cfg{,.ori}# sed-i 's#nagios@localhost#542589761@qq.com#g'/usr/local/nagios/etc/objects/contacts.cfg      # sed-n '35p'/usr/local/nagios/etc/objects/contacts.cfg            email                        542589761@qq.com      ;<<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******使用第三方邮件服务商提供的邮箱,把下列一行添加达到/etc/mail.rc里# tail -1 /etc/mail.rc setfrom=13265571477@163.com smtp=smtp.163.com smtp-auth-user=13265571477smtp-auth-password=DA62073621 smtp-auth=login
2.3、配置Apache服务并加入系统开机自启动/etc/init.d/httpd start/etc/init.d/httpd restartchkconfig httpd onnetstat -lntup|grep httpdlsof -i :80在浏览器登录10.0.0.61/nagios输入用户名和密码oldboy123456显示nagios core就正常了
#/etc/init.d/httpd startStarting httpd:#/etc/init.d/httpd restartStopping httpd:                                           Starting httpd:                                          [ OK]#chkconfig httpd on#netstat -lntup|grep httpdtcp      0   0 :::80                      :::*                        LISTEN      10922/httpd      在浏览器输入10.0.0.61/nagios输入用户名和密码oldboy123456显示nagios core就正常了

2.4、安装Nagios插件软件包安装基础依赖包yum install perl-devel openssl-devel -y安装Nagiospluginx插件包cd ..ls nagios-plugins-1.4.16.tar.gztar xf nagios-plugins-1.4.16.tar.gzcd nagios-plugins-1.4.16./configure --with-nagios-user=nagios --with-nagios-group=nagios--enable-perl-modules --with-mysqlmakemake install
2.5、安装nrpe软件cd /home/oldboy/tools/nagiosls nrpe-2.12.tar.gztar xf nrpe-2.12.tar.gzcd nrpe-2.12./configuremake allmake install-pluginmake install-daemonmake install-daemon-configls /usr/local/nagios/libexec/check_nrpels /usr/local/nagios/libexec/|wc -l


到此为止Nagios服务器端的软件安装部分就配置完成了2.6、配置并启动Nagios服务添加Nagios服务到开机自启动echo "/etc/init.d/nagiosstart">>/etc/rc.localtail -1 /etc/rc.local/etc/init.d/nagios checkconfig
启动Nagios服务/etc/init.d/nagios start检查Nagios服务器端进程及端口ps -ef |grep nagios|grep -v grepnetstat -lntup|grep nagios(无内容就是正确的)检查语法:#/etc/init.d/nagios checkconfig Running configurationcheck... OK.
2.7最后在浏览器输入http://10.0.0.61/nagios/,出现下面结果表明正确

有关出错问题看书(p570)1、出现Forbidden403一般是由服务器端权限引起的,解决办法执行:yum install php -y
二、Nagios客户端安装2.1Nagios客户端无需安装LAMP环境,2.安装前准备2.1、基础环境# cat /etc/redhat-releaseCentOS release 6.7 (Final)# uname -r2.6.32-573.el6.x86_64# uname -mx86_642.2、准备2台服务器管理IP         角色             备注10.0.0.8    web01          被监控的客户端服务器10.0.0.7    web02          被监控的客户端服务器2.3.解决Perl软件编译问题echo 'export LC_ALL=C'>>/etc/profiletail -1 /etc/profilesource /etc/profileecho $LC_ALL
2.4.关闭防火墙及selinuxgetenforce #(显示Disabled下面就不用执行了)/etc/init.d/iptables stop/etc/init.d/iptables statuschkconfig --list iptables   sed -i 's#SELINUX=enforcing#SELINUX=disabled#g'/etc/selinux/config修改配置文件则永久生效,但是必须重启系统getenforce2.5、解决系统时间同步问题crontab -l也可以做NTP时间同步
3、正式安装1、安装基础系统软件yum install gcc glibc glibc-common -yyum install mysql-server -yrpm -qa mysql2、上传软件包到指定目录或通过URL下载mkdir -p /home/oldboy/tools/nagioscd /home/oldboy/tools/nagiosrz
unzip -q oldboy_training_nagios_soft.zip3、添加Nagios用户useradd nagios-M -s /sbin/nologinid nagios
4、安装nagios-plugins插件yum install perl-devel perl-CPAN openssl-devel -ytar xf nagios-plugins-1.4.16.tar.gzcd nagios-plugins-1.4.16./configure --with-nagios-user=nagios --with-nagios-group=nagios--enable-perl-modules --with-mysqlmakemake installcd ..ls /usr/local/nagios/libexec/|wc -l5、安装nagios客户端nrpe软件cd ..ls /usr/local/nagios/libexec/check_nrpetar xf nrpe-2.12.tar.gzcd nrpe-2.12 ./configure make allmake install-pluginmake install-daemonmake install-daemon-configls /usr/local/nagios/libexec/check_nrpels /usr/local/nagios/libexec/|wc -l
6、安装其他相关的插件cd ..#----------Dear,我是分隔符---------------------tar zxf Params-Validate-0.91.tar.gzcd Params-Validate-0.91perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------tar zxf Class-Accessor-0.31.tar.gzcd Class-Accessor-0.31perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------tar zxf Config-Tiny-2.12.tar.gzcd Config-Tiny-2.12perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------tar zxf Math-Calc-Units-1.07.tar.gzcd Math-Calc-Units-1.07perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------tar zxf Regexp-Common-2010010201.tar.gzcd Regexp-Common-2010010201perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------tar zxf Nagios-Plugin-0.34.tar.gzcd Nagios-Plugin-0.34perl Makefile.PLmakemake installcd ..#----------Dear,我是分隔符---------------------yum install sysstat -y
如果报错就是前面的perl环境变量没提前设置好
7、配置监控内存、磁盘I/O脚本插件yum install dos2unix -y/bin/cp /home/oldboy/tools/nagios/check_memory.pl/usr/local/nagios/libexec//bin/cp /home/oldboy/tools/nagios/check_iostat/usr/local/nagios/libexec/chmod 755 /usr/local/nagios/libexec/check_memory.plchmod 755 /usr/local/nagios/libexec/check_iostatdos2unix /usr/local/nagios/libexec/check_memory.pldos2unix /usr/local/nagios/libexec/check_iostat
8、配置Nagios客户端nrpe服务cd /usr/local/nagios/etc/sed -n '79p' nrpe.cfgsed -i's#allowed_hosts=127.0.0.1#allowed_hosts=127.0.0.1,172.16.1.61#g' nrpe.cfg sed -n '79p' nrpe.cfg


9、然后在命令模式下执行shift+g命令道结尾。并进行如下操作vim nrpe.cfg第一步,注释掉199-203行#command=/usr/local/nagios/libexec/check_users-w 5 -c 10#command=/usr/local/nagios/libexec/check_load-w 15,10,5 -c 30,25,20#command=/usr/local/nagios/libexec/check_disk-w 20% -c 10% -p /dev/hda1#command=/usr/local/nagios/libexec/check_procs-w 5 -c 10 -s Z#command=/usr/local/nagios/libexec/check_procs-w 150 -c 200第二步,在下面新添加要监控的内容:command=/usr/local/nagios/libexec/check_load-w 15,10,5 -c 30,25,20command=/usr/local/nagios/libexec/check_memory.pl-w 10% -c 3%command=/usr/local/nagios/libexec/check_disk-w 15% -c 7% -p /command=/usr/local/nagios/libexec/check_swap-w 20% -c 10%command=/usr/local/nagios/libexec/check_iostat-w 6 -c 1010、启动Nagiosclient nrpe守护进程/usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg -dnetstat -lntup|grep nrpeps -ef |grep nrpe |grep -v grep
重启技巧(这里不用重启)#pkill nrpe#/usr/local/nagios/bin/nrpe-c /usr/local/nagios/etc/nrpe.cfg -d
11、加入开机自启echo "#nagios nrpe process cmd by wangtian2016-5-22">>/etc/rc.localecho "/usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg -d">>/etc/rc.localtail -2 /etc/rc.local三、Nagios服务器端监控3.1修改主配置文件(新手不需要,需要的话自己加上去书上582页)
cp /usr/local/nagios/etc/nagios.cfg{,.ori}vim /usr/local/nagios/etc/nagios.cfg +34增加如下主机和服务的配置文件cfg_file=/usr/local/nagios/etc/objects/hosts.cfgcfg_file=/usr/local/nagios/etc/objects/services.cfgcfg_dir=/usr/local/nagios/etc/objects/services/然后注释下列# Definitions for monitoring the local (Linux) host#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
根据已有数据生成hosts.cfgcd /usr/local/nagios/etc/objects/head -51 localhost.cfg >hosts.cfgchown -R nagios.nagios/usr/local/nagios/etc/objects/hosts.cfgtouch services.cfgchown -R nagios.nagios /usr/local/nagios/etc/objects/services.cfgmkdir services    chown -R nagios.nagios/usr/local/nagios/etc/objects/servicesls -lrttotal 60
3配置Nagios服务器端监控项1、定义要监控的Nagios客户端主机cd /usr/local/nagios/etc/objects/cp hosts.cfg{,.ori1}egrep -v "#|^$" hosts.cfg.ori1 >hosts.cfgvim hosts.cfg检查
# cat hosts.cfgdefine host{      use                     linux-server       host_name               web01      alias                   web01       address                172.16.1.8      }define host{      use                     linux-server       host_name               web02      alias                   web02       address               172.16.1.7      }define host{      use                     linux-server       host_name               backup      alias                   backup       address                172.16.1.41      }define host{      use                     linux-server       host_name               nfs01      alias                   nfs01      address                172.16.1.31      }define host{      use                     linux-server       host_name               db01      alias                   db01       address               172.16.1.51      }define host{      use                     linux-server       host_name               lb01      alias                   lb01       address                172.16.1.5      }define host{      use                     linux-server       host_name               lb02      alias                   lb02       address                172.16.1.6      }define hostgroup{       hostgroup_namelinux-servers      alias         Linux Servers       members      web01,web02,backup,nfs01,db01,lb01,lb02          }
2、配置services.cfg,定义要监控的资源服务cp services.cfg{,.ori}vim services.cfgcat services.cfg                        define service {      use                         generic-service       host_name                  web01,web02,backup,nfs01,db01,lb01,lb02       service_description         DiskPartition       check_command            check_nrpe!check_disk      }define service {      use                         generic-service       host_name                  web01,web02,backup,nfs01,db01,lb01,lb02       service_description         SwapUseage       check_command            check_nrpe!check_swap      }define service {      use                         generic-service       host_name                  web01,web02,backup,nfs01,db01,lb01,lb02       service_description         MEMUseage       check_command            check_nrpe!check_mem      }define service {      use                         generic-service       host_name                  web01,web02,backup,nfs01,db01,lb01,lb02       service_description      Current Load       check_command            check_nrpe!check_load      }define service {      use                         generic-service       host_name                  web01,web02,backup,nfs01,db01,lb01,lb02       service_description         DiskIostat       check_command            check_nrpe!check_iostat!5!11      }define service {      use                         generic-service       host_name                   web01,web02,backup,nfs01,db01,lb01,lb02       service_description         PING       check_command            check_ping!100.0,20%!500.0,60%      }
3、调试hosts.cfg和service.cfg的所有配置cp commands.cfg{,.ori}vim commands.cfgtail -5 commands.cfg# 'check_nrpe' command definitiondefine command{       command_name    check_nrpe       command_line    $USER1$/check_nrpe-H $HOSTADDRESS$ -c $ARG1$      }
4、权限问题cd /usr/local/nagios/etc/            sed -i 's#nagiosadmin#oldboy#g' cgi.cfg            
5、检查语法/etc/init.d/nagioscheckconfig出现OK就可以启动了/etc/init.d/nagios start如果已经启动了,就执行/etc/init.d/nagios reload



在网页输入服务器端IP/nagios就可以看到结果啦(请耐心等待5-10分钟)

页: [1]
查看完整版本: Nagios 监控