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

[经验分享] 三种监控平台配置及其整合(cacti nagios ganglia) 二

[复制链接]

尚未签到

发表于 2019-1-11 10:30:31 | 显示全部楼层 |阅读模式
  nagios:

cacti默认是以邮件发送警告信息的,虽然可以安装插件以实现其他方式进行告警,但不是他的强项,nagios有着强大的报警机制,下面是部署方法:






  • # yum install httpd gcc make gd-devel perl-ExtUtils-Embed #安装编译所需要的软件包  
  • # useradd nagios #运行nagios服务的用户  
  • # usermod -G nagios apache #将apache用户加入到nagios组中,因为nagios程序通过apache发布与修改,而httpd程序的执行用户是apache,所以需要让apache有权限修改查看nagios文件  
  • # tar jxf nagios-cn-3.2.3.tar.bz2  
  • # cd nagios-cn-3.2.3  
  • # ./configure --enable-embedded-perl   
  • # make all  
  • # make install  
  • # make install-init  
  • # make install-commandmode  
  • # make install-config  
  • # make install-webconf  

安装nagios插件:






  • # yum install mysql-devel openssl-devel -y #安装编译所需的安装包  
  • # tar zxf nagios-plugins-1.4.15.tar.gz   
  • # cd nagios-plugins-1.4.15  
  • # ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-libtap --enable-perl-modules  
  • # make  
  • # make install  


配置nagios




  • # vi /usr/local/nagios/etc/nagios.cfg #nagios 配置  
  • cfg_file=/usr/local/nagios/etc/objects/hosts.cfg  
  • #新建 hosts.cfg 文件,存放主机与主机组定义  
  • cfg_file=/usr/local/nagios/etc/objects/services.cfg #新建 services.cfg 文件,存放服务与服务组定义  
  • #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg  #注释 localhost.cfg 文件  

注意,这里软件装好的时候默认时读取licalhost.cfg这个文件中的被监控的主机与服务的设置,我们把它注释掉,新加入两个文件,分别管理被监控的主机、主机组与被监控的服务与服务组



编辑被监控主机与主机组的文件:






  • # cd /usr/local/nagios/etc/objects  
  • # vim /usr/local/nagios/etc/objects/hosts.cfg  
  •   
  • define host{  
  •         use                     linux-server  
  •         host_name               监控主机  
  •         alias                   nagios 服务器  
  •         address                 127.0.0.1  
  •         icon_image              web.gif  
  •         statusmap_image         web.gd2  
  •         2d_coords               100,300  
  •         3d_coords               100,300,100  
  •         }  
  •   
  • define hostgroup{               ;主机组不是必须的  
  •         hostgroup_name  linux-servers   
  •         alias           Linux Servers           
  •         members         *      
  •         }  

编辑被监控服务的时候因为内容很多,所以可以拷贝原来的localhost.cfg文件进行一些修改来使用:




  • # cp localhost.cfg services.cfg  

对services.cfg进行修改,在vi编辑器中的命令模式下用d1G去掉servicegroup以上的hosts部分,并用:%s/田朝阳家用机/监控主机/g命令将文件中用于被监控的主机全部改为刚刚在hosts文件中设置的主机,并在servicegroup部分做如下修改,其他不变:










  • define servicegroup{  
  •         servicegroup_name 系统负荷检查  
  •         alias 负荷检查  
  •         members 监控主机,进程总数,监控主机,登录用户数,监控主机,根分区,监控主机,>交换空间利用率  
  •         }  
  •   
  • define servicegroup{  
  •         servicegroup_name 全部联通性检查  
  •         alias 联通性检查  
  •         members 监控主机,PING  
  •         }  

使用命令






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

修改nagios管理员的登录密码,注意必须是nagiosadmin,否则可以登录但是无法查看状态



使用命令




  • /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  

校验配置文件语法的正确性,没有错误的话




  • service nagios start   
  • service httpd start   

用nagios监控 mysql 主机



在mysql服务器端创建一个监控检测账户,只给select权限,不需要密码:




  • mysql> create database nagdb;  
  • mysql> grant select on nagdb.* to nagdb@'192.168.0.86' ;  
  • mysql> flush privileges;  

在 nagios 主机上检测是否可以连接 mysql 主机上的 mysql 服务


  • /usr/local/nagios/libexec/check_mysql -H 192.168.0.36 -u nagdb -d nagdb
  • Uptime: 73 Threads: 1 Questions: 7 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8
  • Queries per second avg: 0.95



在 nagios 主机上添加对 mysql 服务监控的定义
  vi /usr/local/nagios/etc/objects/hosts.cfg 添加如下行




  • define host{  
  •         use                     linux-server      
  •         host_name               mysql主机  
  •         alias                   mysql 服务器   
  •         address                 192.168.0.32  
  •         icon_image              server.gif  
  •         statusmap_image         server.gd2  
  •         2d_coords               500,200  
  •         3d_coords               500,200,200  
  •         }  

  vi /usr/local/nagios/etc/objects/services.cfg 添加如下行




  • define service{
  •         use                             local-service         ; Name of service template to use
  •         host_name                       mysql主机
  •         service_description             mysql服务
  •         check_command                   check_mysql
  •         service_groups                  mysql服务组
  •         notifications_enabled           0
  •         }

  • define servicegroup{
  •         servicegroup_name mysql服务组
  •         alias mysql服务器
  •         }

vi /usr/local/nagios/etc/objects/commands.cfg 添加如下行






  • # 'check_mysql' command definition
  • define command{
  •         command_name    check_mysql
  •         command_line    $USER1$/check_mysql -H $HOSTADDRESS$ -u nagdb -p nagdb
  •         }




  • # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  • # /etc/init.d/nagios reload



Nagios 通过 NRPE 监控远程主机系统状况





刚刚时监控了一个远程主机提供的服务的状态,如果要监控远程主机的状态,如内存,磁盘占用等情况的话就需要用NRPE了,简单来说NRPE的工作原理是在远程主机端不安装nagios,只安装NRPE插件,插件中包含了check_mysql,check_disk等命令,在远程主机端执行这些命令以收集远程主机信息包从在远程主机的NRPE中,而nagios主机只需要执行check_nrpe命令连接远程主机的NRPE,并通过SSL加密通道传输主机数据,下面时实现方法:

远程主机设定






  • yum install openssl openssl-devel gcc
  • useradd nagios
  • tar xzf nagios-plugins-1.4.15.tar.gz
  • cd nagios-plugins-1.4.15
  • ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  • make
  • make install
  • yum install xinetd -y
  • tar zxf nrpe-2.12.tar.gz
  • cd nrpe-2.12
  • ./configure
  • make all
  • make install-plugin
  • make install-daemon
  • make install-daemon-config
  • make install-xinetd




  • vi /etc/xinetd.d/nrpe 修改如下行
  • only_from = 192.168.0.71 #nagios 主机 ip 地址
  • vi /etc/services 添加如下行
  • nrpe          5666/tcp     #nrpe 服务监听端口
  • vi /usr/local/nagios/etc/nrpe.cfg 修改如下行
  • command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p / #根分区监测
  • service xinetd restart
  • netstat -antlp |grep 5666 #看到如下输出说明 NRPE 正常启动,并确保防火墙允许此端口
  • tcp 0 0 :::5666  :::* LISTEN 26359/xinetd

监控主机设定




  • tar zxf nrpe-2.12.tar.gz
  • cd nrpe-2.12
  • ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  • make all
  • make install-plugin




  • /usr/local/nagios/libexec/check_nrpe -H 192.168.0.36
  • NRPE v2.12 #看到这个说明可以使用了

vi /usr/local/nagios/etc/objects/commands.cfg 添加如下行




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

$ARG1$表示第一个参数



vi /usr/local/nagios/etc/objects/services.cfg 添加如下行




  • define service{
  •         use     generic-service
  •         host_name       mysql主机
  •         service_description CPU Load
  •         check_command   check_nrpe!check_load
  •         }
  • define service{
  •         use     generic-service
  •         host_name       mysql主机
  •         service_description     Current Users
  •         check_command           check_nrpe!check_users
  •         }
  • define service{
  •         use     generic-service
  •         host_name       mysql主机
  •         service_description      / Free Space
  •         check_command           check_nrpe!check_disk
  •         }
  • define service{
  •         use     generic-service
  •         host_name       mysql主机
  •         service_description     Total Processes
  •         check_command   check_nrpe!check_total_procs
  •         }
  • define service{
  •         use     generic-service
  •         host_name       mysql主机
  •         service_description     Zombie Processes
  •         check_command   check_nrpe!check_zombie_procs
  •         }




  • /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  • service nagios reload



Nagios 整合飞信



nagios可以通过短信发出告警,在企业中有专门的短信平台,此处我们拿飞信做实验,但是在生产环境中不推荐。



http://www.it-adv.net/ 下载 fetion 主程序与支持库

>> 使用说明 > 举例  /dev/null

chown nagios.nagios /usr/local/nagios/libexec/fetion

chmod +x /usr/local/nagios/libexec/fetion

执行 fetion.sh 脚本看是否可以发送信息

注: 第一次调用飞信脚本时会要求你输入验证码,在飞信程序所在的 /usr/local/fetion 目录下会生成以你手机号命名的 png 图片文件,上面存放着验证码。

2) 增加 fetion 报警选项: templates.cfg

修改 /usr/local/nagios/etc/objects/templates.cfg

在 define contact{...} 部分,将以下两行:

service_notification_commands notify-service-by-email

host_notification_commands notify-host-by-email

改为:

service_notification_commands notify-service-by-email,service-notify-by-fetion

host_notification_commands notify-host-by-email,host-notify-by-fetion

3) 增加调用脚本: commands.cfg

修改 /usr/local/nagios/etc/objects/commands.cfg 在该文件的最后增加以下部分:

##### host-notify-by-fetion command definition

define command{

command_name host-notify-by-fetion

command_line $USER1$/fetion.sh $CONTACTPAGER$ "$NOTIFICATIONTYPE$ alert -Host

$HOSTNAME$ is $HOSTSTATE$"

}

##### service-notify-by-fetion command definition

define command{

command_name service-notify-by-fetion

command_line $USER1$/fetion.sh $CONTACTPAGER$ "$NOTIFICATIONTYPE$:

$HOSTalias$/$SERVICEDESC$ is $SERVICESTATE$"

4) 修改联系人选项: contact.cfg

修改 /usr/local/nagios/etc/objects/contact.cfg

在 define contact{...} 部分增加如下一行

pager 136xxxxxxxx ;

#接收飞信信息的手机号码

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

#校验后重新载入 nagios 配置

/etc/init.d/nagios reload














运维网声明 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-661945-1-1.html 上篇帖子: 三种监控平台配置及其整合(cacti nagios ganglia) 下篇帖子: Cacti的安装并整合nagios
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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