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

Nagios记录系统监控日志

[复制链接]

尚未签到

发表于 2019-1-17 07:06:58 | 显示全部楼层 |阅读模式
  用Nagios自动监测公司的内网开发环境及外网应用环境。Nagios报警功能很强大,但有时我们的系统组有这个需求,特别是系统繁忙时希望能留下日志,以供分析:到底是受到了***,还是开发人员设置不当,亦或是运维人员改动了系统配置等。机器少时可能问题不大,但公司的CDN服务器集群是一百多台,目前看形势还在增长,所以我想设计一个shell脚本来作Nagios的补充,在系统繁忙时分离出日志,供系统组同事们一起分析问题,得出问题的症结所在。  这里介绍下以vmstat为基础的系统监控脚本/root/monitor.sh
  此脚本设计思想与功能实现:
  ①此脚本设计为Nagios监控补遗,Nagios是即时监控服务器状态并即时报警,但美中不足的不能记录其状态及日志,所以设计此脚本;
  ②此脚本已在FreeBSD上成功调试运行,亦适用于RHEL/Centos系统;
  ③这里以常用生产服务器HPDL380G6(英特尔至强E5540@2.53GHz双四核)为依据,r的阀值为4;
  脚本内容如下
  


  • #!/bin/bash
  • while :
  • do
  • vmr=`vmstat | tail -1 | awk '{print $1}'`
  • if [ ${vmr} -gt 4 ]
  • then
  • date   >> /root/monitor.txt
  • vmstat >> /root/monitor.txt
  • netstat -anp >> /root/monitor.txt
  • ps -aux>> /root/monitor.txt
  • last   >> /root/monitor.txt
  • tail -10 /var/log/messages >> /root/monitor.txt
  • fi
  • sleep 60
  • done

  

  此脚本可放至后台运行 sh /root/monitor.sh & ,如遇CPU繁忙的情况,它会自动记载系统日志等以供分析。
  这里补充下vmstat的详细信息。这部分资料参考南非蜘蛛,如有问题可咨询本文作者抚琴煮酒:yuhongchun027@163.com。
  用vmstat监视内存使用情况
  vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
  vmstat的语法如下:
  vmstat [-V] [-n] [delay [count]]
  其中,-V表示打印出版本信息;-n表示在周期性循环输出时,输出的头部信息仅显示一次;delay是两次输出之间的延迟时间;count是指按照这个时间间隔统计的次数。对于vmstat输出各字段的含义,可运行man vmstat查看。
  vmstat命令有四个可选标志可供使用。如果机器有虚拟地址缓存-c标志就改变输出报告缓存刷新统计数据。报告包括自从系统启动后每种缓存刷新全部总量。六个缓存类型是用户,上下文,区域,段,页,部分页。
  -i标志 使输出变为报告中断的数量。如果给出设备名,如d1,d2等,监控将在设备级*执行,(*注,参阅第十二章有关打开设备级监控的信息。)并报告每个给定设备的统计信息。
  修改"普通"报告来显示交换而非页面调度活动的信息。这选项改变显示的两个字段:si(换入)和so(换出)替代了re和mf字段。
  值得注意是,interval 和count选项对-i或-s选项是非法的。
  vmstat 参数详解
  

procs: r-->在运行队列中等待的进程数  b-->在等待io的进程数  w-->可以进入运行队列但被替换的进程  memoy swap-->现时可用的交换内存(k表示)  free-->空闲的内存(k表示)  pages re--》回收的页面  mf--》非严重错误的页面  pi--》进入页面数(k表示)  po--》出页面数(k表示)  fr--》空余的页面数(k表示)  de--》提前读入的页面中的未命中数  sr--》通过时钟算法扫描的页面  disk 显示每秒的磁盘操作。 s表示scsi盘,0表示盘号  fault 显示每秒的中断数  in--》设备中断  sy--》系统中断  cy--》cpu交换  cpu 表示cpu的使用状态 cs--》用户进程使用的时间  sy--》系统进程使用的时间 >  

  如果 r经常大于 4 ,且id经常少于40,表示cpu的负荷很重。
  如果pi,po 长期不等于0,表示内存不足。
  如果disk 经常不等于0, 且在 b中的队列 大于3, 表示 io性能不好。
  由vmstat看服务器
  一般VMSTAT工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。如:
  

[oracle@brucelau oracle]$ vmstat 1 2     procs                      memory    swap       io  system         CPU r  b  w   swpd   free   buff  cache  si  so    bi    bo   in    cs  us  sy >  

  (注:目前系统几乎空闲,并且不同操作系统VMSTAT输出内容有所不同)
  目前说来,对于服务器监控有用处的度量主要有:
  

r(运行队列) pi(页导入) us(用户CPU) sy(系统CPU)>  

  通过VMSTAT识别CPU瓶颈
  r(运行队列)展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了。
  获得CPU个数的命令(LINUX环境):
  cat /proc/cpuinfo|grep processor|wc –l
  当r值超过了CPU个数,就会出现CPU瓶颈,解决办法大体几种:
  1. 最简单的就是增加CPU个数
  2. 通过调整任务执行时间,如大任务放到系统不繁忙的情况下进行执行,进尔平衡系统任务
  3. 调整已有任务的优先级
  通过VMSTAT识别CPU满负荷
  首先需要声明一点的是,vmstat中CPU的度量是百分比的。当us+sy的值接近100的时候,表示CPU正在接近满负荷工作。但要注意的是,CPU满负荷工作并不能说明什么,UNIX总是试图要CPU尽可能的繁忙,使得任务的吞吐量最大化。唯一能够确定CPU瓶颈的还是r(运行队列)的值。
  通过VMSTAT识别RAM瓶颈
  数据库服务器都只有有限的RAM,出现内存争用现象是Oracle的常见问题。
  首先察看RAM的数量,命令如下(LINUX环境):
  

[root@brucelau root]#free            total       used       free       shared     buffers     cached Mem:       1027348     873312     154036     185736     187496     293964 -/+ buffers/cache:       391852      635496 Swap:      2096440          0      2096440  

  当然可以使用top等其他命令来显示RAM。
  当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,这样会出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,但页导入操作就表明了服务器需要更多的内存了,页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。
  解决的办法有几种:
  1. 最简单的,加大RAM
  2. 改小SGA,使得对RAM需求减少
  3. 减少RAM的需求(如:减少PGA)
  转帖只为学习,请原作者勿见怪!http://os.运维网.com/art/201006/203215.htm



运维网声明 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-664158-1-1.html 上篇帖子: 配置nagios问题汇总 下篇帖子: Installation de Nagios 3.0.6 et Centreon 2.0.1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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