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

[经验分享] 基于ubuntu的mrtg配置,实现监控多台服务器系统资源

[复制链接]

尚未签到

发表于 2018-4-30 15:42:50 | 显示全部楼层 |阅读模式
  文章是参考他人博客整合、改动得出!!
  实验结果为监控两台虚拟机的cpu、内存、流量、nginx,简称server端,client端。(为了省事,只用两个,实际操作完成后,会发现数量上的增加很简单)
  安装包 server端 mrtg snmp sysstat curl nginx
  client端 snmp sysstat curl
  server端配置
  编辑server端/etc/snmp/snmpd.conf (可以直接将原配置替换,记得备份原文件)
  com2sec notConfigUser  localhost       public
  group   notConfigGroup v1           notConfigUser
  group   notConfigGroup v2c           notConfigUser
  view    systemview    included   .1.3.6.1.2.1.1
  view    systemview    included   .1.3.6.1.2.1.25.1.1
  access  notConfigGroup ""      any       noauth    exact all none none
  view all    included  .1      80
  syslocation Unknown (edit /etc/snmp/snmpd.conf)
  syscontact Root
  shell脚本存放目录/home/mrtg (路径可选,和后边保持一致)
  mrtg.ram
  #!/bin/bash
  # run this script to check the mem usage.
  swapmem=`/usr/bin/free |grep Swap |awk '{print $3}'`
  usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
  UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
  echo $usedmem
  echo $swapmem
  echo $UPtime
  hostname
  mtrg.cpu
  #!/bin/bash
  cpuusr=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $3}'`
  cpusys=`/usr/bin/sar -u 1 3 | grep Average | awk '{print $5}'`
  UPtime=`/usr/bin/uptime | awk '{print $3""$4""$5}'`
  echo $cpuusr
  echo $cpusys
  echo $UPtime
  hostname
  nginx_status
  curl http://localhost/nginx_status | grep Active | awk '{print $3 }'  > /home/mrtg/ngx.active
  curl http://localhost/nginx_status | grep Waiting | awk '{print $6 }' > /home/mrtg/ngx.waiting
  mrtg.ngx
  #!/usr/bin/perl -W
  `/home/mrtg/nginx_status`;
  $hostname=`hostname`;
  $hostname=~s/\s+$//;
  $nginx_active_conn=`tail /home/mrtg/ngx.active`;
  $nginx_waiting_conn=`tail /home/mrtg/ngx.waiting`;
  $nginx_active_conn=~s/\n$//;
  $nginx_waiting_conn=~s/\n$//;
  $nginx_active_conn=~s/^\s+|\s+$//;
  $nginx_waiting_conn=~s/^\s+|\s+$//;
  $gettime=`uptime|awk '{print \$1" "\$3" "\$4}'`;
  $gettime=~s/\,|\n$//g;
  print("$nginx_active_conn\n");
  print("$nginx_waiting_conn\n");
  print("$gettime\n");
  print("$hostname\n");
  在nginx中添加模块 (nginx配置目录中,/sites-enabled/default,包含在server中,否则会报错)
  location ~ ^/nginx_status {
  stub_status on;
  access_log off;
  }
  重启nginx
  生成配置文件
  cfgmaker public@localhost --output /root/mrtg.cfg
  修改配置
  WorkDir: /home/mrtg/mrtg (工作目录)
  并向其添加内容
  Target[cpu]: `/home/mrtg/mrtg.cpu`
  MaxBytes[cpu]: 100
  Options[cpu]: gauge, nopercent, growright
  YLegend[cpu]: CPU loading (%)
  ShortLegend[cpu]: %
  LegendO[cpu]:   CPU us;
  LegendI[cpu]:   CPU sy;
  Title[cpu]: CPU Loading
  PageTop[cpu]: <H1>CPU Loading</H1>
  Target[ram]: `/home/mrtg/mrtg.ram`
  #Unscaled[ram]: dwym
  MaxBytes[ram]:  1642472   #这里的数值为服务器内存的最大值,可通过free命令查看。
  Title[ram]:Memory
  ShortLegend[ram]: &
  kmg[ram]:kB,MB
  kilo[ram]:1024
  YLegend[ram]:   Memory Usage :
  Legend1[ram]:   Swap Memory :
  Legend2[ram]:   Used Memory :
  LegendI[ram]:   Swap Memory :
  LegendO[ram]:   Used Memory :
  Options[ram]: growright,gauge,nopercent
  PageTop[ram]:<H1>Memory</H1>
  Target[nginx_conn]: `/home/mrtg/mrtg.ngx`
  Options[nginx_conn]: gauge,nopercent,growright
  Directory[nginx_conn]: nginx_conn
  MaxBytes[nginx_conn]: 8000
  YLegend[nginx_conn]: nginx_conn
  ShortLegend[nginx_conn]:
  LegendI[nginx_conn]: Active connections:
  LegendO[nginx_conn]: Waiting:
  Title[nginx_conn]: Nginx
  PageTop[nginx_conn]:<h1>nginx</h1>
  接着配置client端
  编辑/etc/snmp/snmpd.conf
  将agentAddress udp:127.0.0.1:161注释掉
  将#agentAddress udp:161,udp6:[::1]:161去掉注释
  这样便可以实现snmp的远程监听。
  但修改后服务器还是无法监测到CPU、内存、流量的数据,所以需要再做如下修改:
  找到下面的内容
  view   systemonly  included   .1.3.6.1.2.1.1
  view   systemonly  included   .1.3.6.1.2.1.25.1
  在下面加上一行
  view   systemonly  included   .1   80
  这样就允许监听所有设备。
  完成所有修改后,重启snmp
  service snmpd restart
  本地测试SNMP是否监测各类指标的方法:运行如下命令
  snmpwalk -v 2c -c public localhost
  如果有很多内容输出,代表成功。
  然后在server端生成client的配置文件
  建立client的目录 /home/mrtg1   (在server端执行)
  将/home/mrtg内的文件拷至/home/mrtg1
  cfgmaker public@192.168.51.236 --output /root/mrtg1.cfg (192.168.51.236为client端ip)
  同样将上边的添加内容加入配置文件,但会报错,提示有同样的名字,修改下即可,例如:
  Target[cpu]: `/home/mrtg/mrtg.cpu`    → Target[cpu1]: `/home/mrtg1/mrtg.cpu`
  建立client端的目录 /home/mrtg1
  将/home/mrtg内的文件拷至/home/mrtg1
  将配置文件合并
  cat  mrtg.cfg mtrg1.cfg > /etc/mrtg.cfg    (在mrtg.cfg  mrtg1.cfg所在目录执行)
  分别在mrtg mrtg1中建立子文件夹mrtg
  生成mrtg首页
  indexmaker /etc/mrtg.cfg > /home/mrtg/mrtg/index.html
  绘制图表
  env LANG=C mrtg /etc/mrtg.cfg
  配置cron计划执行任务,每分钟采集一次 /etc/crontab
  */1 * * * * env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
  重启cron服务
  在nginx中添加模块
  location ~ ^/mrtg {
  root /home/mrtg;
  }
  重启nginx
  访问http://serverIP/mrtg

运维网声明 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-454159-1-1.html 上篇帖子: Redis基础教程第1节 Ubuntu Linux 上安装Redis 下篇帖子: ubuntu系统下QT5.5编写程序时不能输入中文
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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