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

nagios 监控tcp

[复制链接]
发表于 2019-1-13 14:57:56 | 显示全部楼层 |阅读模式
  1、centos6.2 操作系统 监控本机tcp连接数 物理内存 cpu使用率 web并发数
  查看本机tcp连接状态
  netstat -n |awk '/^tcp/ {++s[$NF]} END {for (a in s) print a,s[a]}'
  LISTEN:侦听来自远方的TCP端口的连接请求
  SYN-SENT:再发送连接请求后等待匹配的连接请求
  SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
  ESTABLISHED:代表一个打开的连接
  FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
  FIN-WAIT-2:从远程TCP等待连接中断请求
  CLOSE-WAIT:等待从本地用户发来的连接中断请求
  CLOSING:等待远程TCP对连接中断的确认
  LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
  TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
  CLOSED:没有任何连接状态
  在nagios的插件库里面写下脚本
  写脚本ip_cons
  #!/bin/bash
  #tcp connet
  if [ $# != 2 ];then
  echo "Usage:$0 -w num1 -c num2"
  exit
  fi
  ip_conns=`netstat -n |grep ESTABLISHED|wc -l`
  if [ $ip_conns -lt $1 ];then
  echo "OK -connet counts is $ip_conns"
  exit 0
  fi
  if [ $ip_conns -ge $1 -a  $ip_conns -lt $2 ];then
  echo "Warning -connet counts is $ip_conns"
  exit 1
  fi
  if [ $ip_conns -ge $2 ];then
  echo "Critical -connet counts is $ip_conns"
  exit 2
  fi
  修改配置文件commands.cfg
  commands.cfg添加命令
  define command{
  command_name ip_cons
  command_line /usr/local/nagios/libexec/ip_cons 2 5 (2 是警告值 5是临界值可自定义这里只是做实验)
  }
  之后修改本机的配置文件localhost.cfg
  define service{
  use                             generic-service
  host_name                       localhost
  service_description             ip_cons
  check_command                   ip_cons
  notifications_enabled           1
  }
  或者是写一个services.cfg文件里里面
  define service{
  host_name  localhost
  service_description ip_cons
  check_command ip_cons
  max_check_attempts 5
  normal_check_interval 3
  retry_check_interval 2
  check_period 24x7
  notification_interval 10
  notification_period 24x7
  notification_options w,u,c,r
  contact_groups admins
  }
  写入services.cfg文件之后需要在nagios.cfg里面添加
  cfg_file=/etc/nagios/objects/services.cfg
  之后查看配置文件是否出错 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  没有出错的话  就重新启动nagios服务 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
  2、centos6.2 操作系统 监控其他主机tcp连接数 物理内存 cpu使用率 web并发数
  写监控脚本
  #!/bin/bash
  if [ $# != 2 ];then
  echo "Usage:$0 -w num1 -c num2"
  exit
  fi
  ip_conns=`netstat -n |grep ESTABLISHED|wc -l`
  if [ $ip_conns -lt $1 ];then
  echo "OK -connet counts is $ip_conns"
  exit 0
  fi
  if [ $ip_conns -ge $1 -a  $ip_conns -lt $2 ];then
  echo "Warning -connet counts is $ip_conns"
  exit 1
  fi
  if [ $ip_conns -ge $2 ];then
  echo "Critical -connet counts is $ip_conns"
  exit 2
  fi
  在nrpe.cfg 里面填写监控命令
  command[ip_cons]=/usr/local/nagios/libexec/ip_cons 5 9
  之后在监控机器上的配置文件里面配置
  define service{
  use                             generic-service
  host_name                       192.168.122.3
  service_description             ip_cons
  check_command                   check_nrpe!ip_cons
  notifications_enabled           1
  }
  或者是写入services.cfg文件
  define service{
  host_name  192.168.122.3
  service_description ip_cons
  check_command check_nrpe!ip_cons
  max_check_attempts 5
  normal_check_interval 3
  retry_check_interval 2
  check_period 24x7
  notification_interval 10
  notification_period 24x7
  notification_options w,u,c,r
  contact_groups admins
  }
  之后重新启动nagios服务即可
  内存监控的做法基本上和以上做法相同,想来要做这个监控的都是运维的同行,应该可以理解下面就只留下内存的监控脚本
  #!/bin/bash
  #memory
  if [ $# != 2 ];then
  echo "Usage:$0 -w num1 -c num2"
  exit
  fi
  total_mem=`free -m |grep Mem|awk '{print $2}'`
  free_mem=`free -m |grep Mem|awk '{print $4}'`
  used_mem=`free -m |grep Mem|awk '{print $3}'`
  if [ $free_mem -gt $1 ];then
  echo "OK - total memory  $total_mem MB used  $used_mem MB free $free_mem MB "
  exit 0
  fi
  if [ $free_mem -ge $2 -a $free_mem -le $1 ];then
  echo "Warning - total memory  $total_mem MB used $used_mem MB free $free_mem MB"
  exit 1
  fi
  if [ $free_mem -lt $2 ];then
  echo "Critical - total memory  $total_mem MB  used $used_mem MB free $free_mem MB"
  exit 2
  fi
  cpu使用率的监控跟上面tcp监控方法类似 留下监控脚本一份
  #!/bin/bash
  if [ $# != 2 ];then
  echo "Usage:$0 -w num1 -c num2"
  exit
  fi
  used_cpu=`vmstat |sed -n 3p|awk -F " " '{print $13}'`
  if [ $used_cpu -lt $1 ];then
  echo "OK -used_cpu is $used_cpu %"
  exit 0
  fi
  if [ $used_cpu -ge $1 -a  $used_cpu -lt $2 ];then
  echo "Warning - used_cpu is $used_cpu %"
  exit 1
  fi
  if [ $used_cpu -ge $2 ];then
  echo "Critical - used_cpu is $used_cpu %"
  exit 2
  fi
  此shell脚本中这条命令used_cpu=`vmstat |sed -n 3p|awk -F " " '{print $13}'`是监控系统使用的cpu输出默认是整数 要是想监控剩余cpu的话将以上shell脚本的此条命令修改成used_cpu=`vmstat |sed -n 3p|awk -F " " '{print $15}'`
  web并发数 如果是apache做的站点的话 倒是可以直接监控httpd的进程数就可以获得并发数 nginx的话就不行了 可以使用一下脚本
  web并发数
  #!/bin/bash
  #if [ $# != 2 ];then
  #echo "Usage:$0 -w num1 -c num2"
  #exit
  #fi
  #w=2
  #c=5
  ip_conns=`netstat -n |grep '^tcp'|grep ESTABLISHED|grep 80|wc -l`
  if [ $ip_conns -lt $1 ];then
  echo "OK -connet counts is $ip_conns"
  exit 0
  fi
  if [ $ip_conns -ge $1 -a  $ip_conns -lt $2 ];then
  echo "Warning -connet counts is $ip_conns"
  exit 1
  fi
  if [ $ip_conns -ge $2 ];then
  echo "Critical -connet counts is $ip_conns"
  exit 2
  fi
  监控mysql主从状态
  #!/bin/bash
  io=`/usr/local/mysql/bin/mysql -u root -pXXXX -e "show slave status\G" |grep Slave_IO_Running|awk '{print $2}'`
  sql=`/usr/local/mysql/bin/mysql -u root -pXXXX -e "show slave status\G" |grep Slave_SQL_Running|awk '{print $2}'`
  if [[ $io = Yes && $sql = Yes ]]; then
  echo "OK - mysql-replication is running"
  exit 0
  fi
  if [[ $io = No || $sql = No ]];then
  echo "Critical - mysql-replication is not working, I/O or SQL is not working properly "
  exit 2
  fi


运维网声明 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-662835-1-1.html 上篇帖子: nagios笔记【搭建】 下篇帖子: Nagios安装与部署监控实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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