设为首页 收藏本站
查看: 798|回复: 0

Nagios+pnp

[复制链接]

尚未签到

发表于 2019-1-14 11:00:31 | 显示全部楼层 |阅读模式
一、Nagios服务器安装过程

  1)配置服务器端IP地址
  [root@localhost~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:0c:29:fe:39:A1
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.6.199
GATEWAY=192.168.6.1
TYPE=Ethernet


  A,安装前准备
  安装LAMP架构
  [root@localhost~]# mount /dev/cdrom /media/
  

  [root@localhost~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch – Debug
baseurl=file:///media/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release


  [root@localhost~]#yum install gcc glibc glibc-common gd gd-devel php-gd
  [root@localhost~]# yum -y install php* mysql* http*
  [root@localhost~]# service httpd start
  [root@localhost~]# service mysqld start
  [root@localhost~]# chkconfig httpd on
  [root@localhost~]# chkconfig mysqld on
  

  [root@localhost~]# vim /var/www/html/index.php
  
  访问http://192.168.6.199/

  2)安装Nagios
  1)创建nagios程序用户、组
[root@localhost ~]# useradd -s /sbin/nologinnagios
[root@localhost ~]# mkdir/usr/local/nagios
[root@localhost ~]# chown -R nagios:nagios /usr/local/nagios/
[root@localhost ~]# chmod -R 755 /usr/local/nagios/
  

  2)保证系统中sendmail服务器要开启
[root@localhost ~]# yum install sendmail
[root@localhost ~]# service sendmail status
sendmail (pid 3090) 正在运行...
  

  B、编译安装Nagios
[root@localhost ~]# cd /aaa/
[root@localhost aaa]# tar zxf nagios-3.2.0.tar.gz
[root@localhost aaa]# cd nagios-3.2.0
[root@localhost nagios-3.2.0]# ./configure--prefix=/usr/local/nagios/
[root@localhost nagios-3.2.0]# make all ; make install ; make install-init ;make install-commandmode ; make install-config ;make install-webconf
[root@localhost nagios-3.2.0]# chkconfig --add nagios
[root@localhost nagios-3.2.0]# chkconfig nagios on
[root@localhost nagios-3.2.0]# chkconfig --list nagios
nagios       0:关闭   1:关闭   2:启用   3:启用   4:启用   5:启用   6:关闭
  

  C、安装Nagios插件
  你可以从http://www.nagios.org官方网站上下载最新的nagios插件
  [root@localhostaaa]# tar zxf nagios-plugins-1.4.14.tar.gz
  [root@localhostaaa]# cd nagios-plugins-1.4.14
  [root@localhostnagios-plugins-1.4.14]# ./configure --prefix=/usr/local/nagios/ ; make ;make install
  

  D、安装Nagios的汉化包
  [root@localhostaaa]# tar jxf nagios-cn-3.2.0.tar.bz2
  [root@localhostaaa]# cd nagios-cn-3.2.0
  [root@localhostnagios-cn-3.2.0]#./configure ; make all ; makeinstall
  

  E、修改apache配置文件
  [root@localhost~]# vi /etc/httpd/conf/httpd.conf
231 User
232 Group apache
391 DirectoryIndex index.phpindex.html index.html.var
992 #setting for nagios
993 ScriptAlias/nagios/cgi-bin "/usr/local/nagios/sbin"
994
995 AuthType Basic
996 Options ExecCGI
997 AllowOverride None
998 Order allow,deny
999 Allow from all
1000 AuthName "nagiosaccess"
1001 AuthUserFile/usr/local/nagios/etc/htpasswd
1002 Require valid-user
1003
1004 Alias /nagios"/usr/local/nagios/share"
1005
1006 AuthType Basic
1007 Options ExecCGI
1008 AllowOverride None
1009 Order allow,deny
1010 Allow from all
1011 AuthName "nagiosaccess"
1012 AuthUserFile/usr/local/nagios/etc/htpasswd
1013 Require valid-user
1014
  

  创建apache目录的验证文件“/usr/local/nagios/etc/htpasswd”
  [root@localhost~]# htpasswd -c /usr/local/nagios/etc/htpasswd benet
New password:
Re-type new password:
Adding password for user benet
  

  重启apache服务器并进行验证nagios登陆情况
  [root@localhost~]# service httpd restart
停止 httpd:                        [确定]
启动 httpd:                       [确定]


  至此nagios服务器安装结束
  

  二、Nagios服务器配置过程
  Nagios的配置过程:主机,主机组,服务,服务组,联系人,联系人组,监控时间,监控命令等,配置文件及配置项之间相互关联,彼此引用。
  (Nagios配置的核心思想)
  最重要的4点:
  第一:要定义监控哪些主机、主机组(hosts.cfg),服务,服务组(services.cfg)
  第二:要定义这个监控项需要通过什么命令实现(commands.cfg)
  第三:要定义监控的时间段(timeperiods.cfg)
  最后:要定义主机或服务出现问题时要通知的联系人或联系人组(contacts.cfg)
  所有的模板都在objects目录下,包括主机、服务、命令、时间、联系人、模板模块
  1)定义hosts.cfg文件(监控哪些主机、主机组(hosts.cfg))
  [root@localhost~]# cd /usr/local/nagios/etc/objects/
  [root@localhostobjects]# ls ../
cgi.cfg    hosts.cfg   nagios.cfg  services.cfg
commands.cfg htpasswd    objects    templates.cfg
contacts.cfg localhost.cfg resource.cfg timeperiods.cfg
  [root@localhostobjects]# vi hosts.cfg  此文件默认没有,自动创建
define host{
use   linux-server
host_name    web
alias  benet-web
address 192.168.6.199
}
define host{
use   linux-server
host_name    mysql
alias  benet-mysql
address 192.168.6.200
}
define hostgroup{
hostgroup_name sa-servers
alias  sa servers
members web,mysql
}
  

  2)定义services.cfg(监控哪些服务,服务组(services.cfg))
  [root@localhostobjects]# vi services.cfg  此文件默认没有,自动创建
################- benet web -##########################
define service{
use  local-service
host_name    web
service_description PING
check_command   check_ping!100.0,20%!500.0,60%
}
define service{
use  local-service
host_name    web
service_description SSH
check_command   check_ssh
}
define service{
use  local-service
host_name    web
service_description SSHD
check_command   check_tcp!22
}
define service{
use  local-service
host_name    web
service_description http
check_command   check_http
}
#####################- MYSQL -##########################
define service{
use  local-service
host_name    mysql
service_description PING
check_command   check_ping!100.0,20%!500.0,60%
}
define service{
use  local-service
host_name    mysql
service_description SSH
check_command   check_ssh
}
define service{
use  local-service
host_name    mysql
service_description ftp
check_command   check_ftp
}
define service{
use  local-service
host_name    mysql
service_description mysqlport
check_command   check_tcp!3306
}
  注意:hosts.cfg和services.cfg两个文件默认在/usr/local/nagios/etc并不存在,需要手动创建。
Check_ping!100.0,20%!500.0,60%
命令!告警延时,丢包率!严重告警延时,丢包率。
Check_ssh!22!10
命令!端口!连接超时时间
  

  3)定义contacts.cfg(定义主机或服务出现问题时要通知的联系人或联系人组)
  [root@localhostobjects]# vi contacts.cfg
35     email              root@localhost ;
  

  4)定义cgi.cfg
  [root@localhostetc]# cd /usr/local/nagios/etc/
  [root@localhostetc]# vi cgi.cfg
107 default_user_name=benet
119 authorized_for_system_information=nagiosadmin,benet
131 authorized_for_configuration_information=nagiosadmin,benet
144 authorized_for_system_commands=benet
157 authorized_for_all_services=nagiosadmin,benet
158 authorized_for_all_hosts=nagiosadmin,benet
171 authorized_for_all_service_commands=nagiosadmin,benet
172 authorized_for_all_host_commands=nagiosadmin,benet
  

  5)定义nagios.cfg
  [root@localhost~]# vim /usr/local/nagios/etc/nagios.cfg
  19log_file=/usr/local/nagios/var/nagios.log
30 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
31cfg_file=/usr/local/nagios/etc/objects/services.cfg
32cfg_file=/usr/local/nagios/etc/objects/commands.cfg
33cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
34 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
35cfg_file=/usr/local/nagios/etc/objects/templates.cfg


三、Nagios的运行和维护
1)验证nagios主配置文件的语法正确性
  [root@localhostetc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors:  0


Things look okay - No serious problems were detected during thepre-flight check


2)启动与停止nagios
  [root@localhostetc]# service nagios start
Starting nagios:This account is currently not available.
done.
  [root@localhostetc]# service nagios status
nagios (pid 5106) is running...
  [root@localhostetc]# service nagios stop
Stopping nagios: .done.
  [root@localhostetc]# service nagios restart
Running configuration check...done.
Stopping nagios: No lock file found in/usr/local/nagios//var/nagios.lock
Starting nagios:This account is currently not available.
done.

  

  四、Nagios性能分析图表的实现
  1)安装PNP支持包rrdtool工具

  [root@localhostaaa]# tar zxf rrdtool-1.4.5.tar.gz
  [root@localhostaaa]# cd rrdtool-1.4.5
  [root@localhostrrdtool-1.4.5]#./configure--prefix=/usr/local/rrdtool ; make ; make install
安装rrdtool时候的报错:configure:error:Pleasefix thelibrary issues listed above and try again
解决办法:
yum -y install cairo-devel libxml2-devel pangopango-devel
如果上面执行后无果,请执行下面操作:
yum install cgiliblibart_lgpl-develpango-devel* cairo-devel* libxml2-devel
如果上面执行后无果,请执行下面操作:
yum -y install zlib libpng freetypelibart_lgpllibart_lgpl-devel libxml* pango*
通常编辑安装文件时,出现make无法安装,这其实是configure编译时出现了问题。
问题分析思路:先不要make,步骤分开进行,先configure编译,这样容易发现是哪一步出现的错误,并解决
  

  2)安装PNP
[root@localhost rrdtool-1.4.5]# cd /aaa/
[root@localhost aaa]# tar zxf pnp-0.4.13.tar.gz
[root@localhost aaa]# cd pnp-0.4.13
[root@localhost pnp-0.4.13]# ./configure --with-nagios-user=nagios--with-nagios-group=nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata; make all ; make install ; make install-config ; make install-init


3)配置PNP
  A,创建默认配置文件
[root@localhost pnp-0.4.13]# cd /usr/local/nagios/etc/pnp/
[root@localhost pnp]# cp process_perfdata.cfg-sampleprocess_perfdata.cfg
[root@localhost pnp]# cp npcd.cfg-sample npcd.cfg
[root@localhost pnp]# cp rra.cfg-sample rra.cfg
[root@localhost pnp]# chown -R nagios:nagios/usr/local/nagios/etc/pnp/
[root@localhost pnp]# chmod -R 755 /usr/local/nagios/etc/pnp/
必须设置这个权限,不然web界面执行控制命令会出错
chown -R nagios.nagios/usr/local/nagios/var/rw
chmod -R 777/usr/local/nagios/var/rw
  

  B,修改process_perfdata.cfg
  [root@localhostpnp]# vi /usr/local/nagios/etc/pnp/process_perfdata.cfg
44 LOG_LEVEL = 2


4)修改Nagios主配置文件
  A,增加小太阳图标
  [root@localhostpnp]# cd /usr/local/nagios/etc/objetcs
  [root@localhostetc]# vi templates.cfg
define host{
name  hosts-pnp
register    0
action_url   /nagios/pnp/index.php?host=$HOSTNAME$
process_perf_data    1
}
define service{
name  services-pnp
register    0
action_url   /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
process_perf_data    1
}
  

  B、修改nagios.cfg
  找到如下几行去掉注释
  [root@localhostobjects]# cd ..
  [root@localhostetc]# vi nagios.cfg
833 process_performance_data=1
845 host_perfdata_command=process-host-perfdata
846 service_perfdata_command=process-service-perfdata
  

  C、修改commands.cfg
  [root@localhost~]# vim /usr/local/nagios/etc/objects/commands.cfg
  227 # 'process-host-perfdata' commanddefinition
228 define command{
229     command_name  process-host-perfdata
230     command_line  /usr/local/nagios/libexec/process_perfdata.pl
231     }
232
233
234 #'process-service-perfdata' command definition
235 define command{
236     command_name  process-service-perfdata
237     command_line  /usr/local/nagios/libexec/process_perfdata.pl
238     }
  

  D、修改hosts.cfg文件和services.cfg文件
  [root@localhost~]# vi /usr/local/nagios/etc/objects/hosts.cfg
define host{
use   linux-server,hosts-pnp
host_name    web
alias  benet-web
address 192.168.6.199
}
define host{
use   linux-server,hosts-pnp
host_name    mysql
alias  benet-mysql
address 192.168.6.200
}
define hostgroup{
hostgroup_name sa-servers
alias  sa servers
members web,mysql
}
  [root@localhost~]# vi /usr/local/nagios/etc/objects/services.cfg
################- benet web -##########################
define service{
use  local-service,services-pnp
host_name    web
service_description   PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use  local-service,services-pnp
host_name    web
service_description   SSH
check_command  check_ssh
}
  注意项:别心急看小太阳数据,等会儿就有了。

  访问http://localhost/nagios/pnp

  点击小太阳,出现对主机或服务的监控页面

  五,利用插件扩展Nagios的监控功能
  下面我们通过在nagios服务端和客户端安装NRPE插件来搭建一个更加完善的Nagios监控系统。
  

  1)配置nagios客户端(即远端被监控主机192.168.6.200)
  A)安装Nagios插件
  登陆192.168.6.200客户端
  [root@localhost~]# cd /aaa/
  [root@localhostaaa]# useradd -s /sbin/nologin nagios
  [root@localhostaaa]# tar zxf nagios-plugins-1.4.14.tar.gz
  [root@localhostaaa]# cd nagios-plugins-1.4.14
  [root@localhostnagios-plugins-1.4.14]# ./configure ; make ;make install
  [root@localhostnagios-plugins-1.4.14]# chown nagios:nagios /usr/local/nagios/
  [root@localhostnagios-plugins-1.4.14]# chown -R nagios.nagios /usr/local/nagios/libexec/
  

  B)安装NRPE插件
  [root@localhostaaa]# cd /aaa/
  [root@localhostaaa]# tar zxf nrpe-2.12.tar.gz
  [root@localhostaaa]# cd nrpe-2.12
  [root@localhostnrpe-2.12]# ./configure ; make all ; make install-plugin ; make install-daemon; make install-daemon-config
  

  C)修改NRPE配置文件
  [root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/nrpe.cfg
79 allowed_hosts=192.168.1.1 #nagios服务器地址
44 server_address=192.168.233.204 #客户机本机地址
  192.168.6.199:指定nagios服务器地址
  

  D)启动NRPE
  [root@localhostnrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
  [root@localhostnrpe-2.12]# netstat -antl |grep 5666
tcp    0   0 0.0.0.0:5666        0.0.0.0:*          LISTEN
  E)测试NRPE
  [root@localhostnrpe-2.12]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
NRPE v2.12
  如果出现NRPE v2.12表明NRPE已经正常工作
  

  定义让nagios服务器监控我本机上的内容(当前用户数,CPU,内存,硬盘等信息)
  [root@localhostlibexec]# vi /usr/local/nagios/etc/nrpe.cfg
199 command[check_users_1]=/usr/local/nagios/libexec/check_users -w5 -c 10
200command[check_load_1]=/usr/local/nagios/libexec/check_load -w 15,10,5 -    c 30,25,20
201command[check_sda1_1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10    % -p /dev/sda1
202command[check_zombie_procs_1]=/usr/local/nagios/libexec/check_procs -w     5 -c 10 -s Z
203command[check_total_procs_1]=/usr/local/nagios/libexec/check_procs -w 1    50 -c 200
  重启NRPE
  [root@localhost~]# ps -elf |grep nrpe
5 S nagios  22379   1 0 75  0 - 1243 -   17:59 ?    00:00:00 /usr/local/nagios/bin/nrpe -c/usr/local/nagios/etc/nrpe.cfg -d
0 R root   22586 4247 0 78  0 - 1039 -   18:09 pts/0  00:00:00 grep nrpe
  [root@localhost~]# kill -9 22379
  [root@localhost~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
  

  2,配置nagios服务器端
  登陆nagios服务器端:192.168.6.199
  1)安装NRPE插件
  [root@localhostetc]# cd /aaa/
  [root@localhostaaa]# tar zxf nrpe-2.12.tar.gz
  [root@localhostaaa]# cd nrpe-2.12
  [root@localhostnrpe-2.12]# ./configure ; make ; make install-plugin
  

  2)测试插件能否取得与客户端192.168.6.200的联系
  [root@localhost nrpe-2.12]#/usr/local/nagios/libexec/check_nrpe -H 192.168.6.200
NRPE v2.12
  出现NRPE v2.12就证明成功联系上客户端
  

  3)定义一个check_nrpe监控命令
  [root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/objects/commands.cfg
define command{
    command_namecheck_nrpe
    command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c$ARG1$
}


4)添加远程主机监控项
  [root@localhostnrpe-2.12]# vi /usr/local/nagios/etc/objects/services.cfg
define service{
use   local-service
host_name    mysql
service_description   users
check_command check_nrpe!check_users_1
}
define service{
use   local-service
host_name    mysql
service_description   load
check_command check_nrpe!check_load_1
}
define service{
use   local-service
host_name    mysql
service_description   disk
check_command check_nrpe!check_sda1_1
}
define servicegroup{
    servicegroup_name    servergroup
    alias      server-group
    members    web,PING,web,SSH,web,SSHD,web,http,mysql,users,mysql,load,mysql,disk
}
  6)测试并重新启动nagios服务
  [root@localhost~]# service nagios restart


  测试中出现的错误
安装好nagios打开网页出现下面问题
The requested URL /nagios/cgi-bin/statusmap.cgiwas not found on this server
解决方案,确定安装下面的包。
1.安装
gd-devel
回到nagios安装时解压开的目录
#make devclean
# ./configure --with-gd-lib=/usr/lib --with-gd-inc=/usr/include
接下来
#./configure --with-command-group=nagios
#make all; make install; make install-init; make install-config;make install-commandmode; make install-webconf
重新回到你的nagios的sbin目录查看几个cgi脚本有没有生成。
因为没有配置yum源,所以自以为上面的lib库应该都安装了。然后直接重新编译安装。后来发现还是不行。没办法,配置yum源,发现第一个gd库就没装了。一个个查,一个个装。从头到位从新配置。最后搞定....看来还是要耐心点。错误
  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663115-1-1.html 上篇帖子: nagios搭建与配置 下篇帖子: 如何编写nagios插件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表