MRTG通常认为是一个性能监控工具,有着很长的使用历史,很多网管都使用它来对系统进行监控。实际上,它真正的作用是一个画图工具。它可以接受一些数值参数,并根据这些值构建一个二维图形以供监控使用。最常见的就是获取设备的snmp信息,例如网络流量,然后生成图形。还可以从脚本得到CPU、Disk I/O、内存的数据,而呈现直观的图形。

虽然其功能有限,而且已经逐步被rrdtool代替。但因为大部分发行版都自带MRTG软件包,使用也非常简单,所以,在小范围的网络环境中,还是有其用武之地的。

为方便说明,我先以一个最简单的例子:从snmp获取网络流量,使用MRTG显示为例来说明。及后再补充从其他方式获取数据的方式。

一、系统平台

以红旗DC Server 5.0为例:

# rpm -qa|grep mrtg

mrtg-2.10.15-1

此外,为从设备得到网络数据,最简单的方式就是从snmp获取信息。还有,mrtg会生成png文件,并需要放到web上显示,所以,最少需要有如下的支持包:

引用

net-snmp gd-1.8.4-4 gd-devel-1.8.4-4 perl-5.6.0-17 perl-CGI mod_perl-1.24_01-3 libpng-1.0.12-2 libpng-devel-1.0.12-2  httpd(apache)

包括但不限于以上版本和文件。

二、打开SNMP权限

是否打开SNMP服务,并不是MRTG使用的条件。从SNMP获取设备信息是比较方便而标准的办法。

Linux下通常就是使用net-snmp(原称ucd-snmp),默认情况,其提供一个public的community供使用,但并没有打开允许接入的权限。

snmp的agent配置文件在:/etc/snmp/snmpd.conf

1、允许mib2库读取信息

修改:

引用

#       group          context sec.model sec.level prefix read   write  notif

access  notConfigGroup ""      any       noauth    exact  systemview none none

为:

引用

#       group          context sec.model sec.level prefix read   write  notif

access  notConfigGroup ""      any       noauth    exact  mib2 none none

2、使snmp信息通过mib2库显示

修改:

引用

#view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

为:

引用

view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

3、修改标识

把:

引用

syslocation Unknown (edit /etc/snmp/snmpd.conf)

syscontact Root (configure /etc/snmp/snmp.local.conf)

修改为可标识该主机的信息:

引用

syslocation PrintServer

syscontact Root

MRTG可以读到该信息的。

4、启动snmpd服务

# service snmpd start

校验:

引用

# netstat -ln|grep 199

tcp        0      0 0.0.0.0:199                 0.0.0.0:*                   LISTEN

三、配置MRTG

MRTG分如下两部分:

引用

a)工作目录,存放图形数据,供httpd显示

b)配置文件

1、创建工作目录

# mkdir /var/www/html/mrtg

存在于/var/www/mrtg目录可以不用理会。

2、生成配置文件

在/etc/mrtg目录有一个mrtg.cfg文件,但太简单,我们需要重新生成一个。

# cfgmaker --output=/etc/mrtg/mailmrtg.cfg public@192.168.228.153

其中,public是snmp的community,192.168.228.153是其对应的主机IP地址。

3、设定全局参数

上述命令会通过snmp搜索主机上所有的网络,并自动生成对应的参数。可根据实际情况排除不必要的网络接口,例如:sit0、lo等,然后修改剩余的标识。

# vi mailmrtg.cfg

设定工作目录:

引用

WorkDir: /var/www/html/mrtg

4、设定网络标识

以其中一个网卡为例:

引用

Target[192.168.228.153_2]: 2:public@192.168.228.153:

SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0"

MaxBytes[192.168.228.153_2]: 12500000

Title[192.168.228.153_2]: Traffic Analysis for 2 -- printserver

PageTop[192.168.228.153_2]:

Traffic Analysis for 2 -- printserver

System: printserver in Unknown (edit /etc/snmp/snmpd.conf)
Maintainer: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
Description: bond0  
ifType: ethernetCsmacd (6)
ifName:
Max Speed: 12.5 MBytes/s
Ip: 192.168.228.153 (printserver)

其中:

引用

[192.168.228.153_2]:是一个关键标识,属于该标识的都属于同一组;

2:public@192.168.228.153:是从那里获取snmp信息,前面的2用于区分多个网卡设备,与snmp端相同;

SetEnv:是从snmp获取网络信息的参数;

MaxBytes:标识图中最大的纵向数据值;

Title:图的标题

PageTop:详细内容

修改为:

引用

Target[192.168.228.153_2]: 2:public@192.168.228.153:

SetEnv[192.168.228.153_2]: MRTG_INT_IP="192.168.228.153" MRTG_INT_DESCR="bond0"

MaxBytes[192.168.228.153_2]: 12500000

Title[192.168.228.153_2]: Traffic Analysis for bond0 -- printserver

PageTop[192.168.228.153_2]:

Traffic Analysis for bond0 -- printserver

System: PrintServer in RedFlag DC Server 5.0
Maintainer: Root <root@localhost>
Description: bond0  
ifType: ethernetCsmacd (6)
ifName:
Max Speed: 12.5 MBytes/s
Ip: 192.168.228.153 (printserver)

其余的网卡可注释,或删除,或参考配置。

5、生成index.html

# indexmaker --output=/var/www/html/mrtg/index.html --title=PrintServer /etc/mrtg/mailmrtg.cfg

6、由数据生成图表

# mrtg /etc/mrtg/mailmrtg.cfg

※注:由于开始没有旧的日志数据,所以前两次会报警告:

引用

Rateup WARNING: /usr/bin//rateup could not read the primary log file for 192.168.228.153_2

Rateup WARNING: /usr/bin//rateup The backup log file for 192.168.228.153_2 was invalid as well

当再运行两次后即会正常。若出现Error信息,请重新查看前面的配置是否有误!

7、修改默认httpd的mrtg配置

修改/etc/httpd/conf.d/mrtg.conf为:

引用

Alias /mrtg /var/www/html/mrtg

Order deny,allow

#Deny from all

#Allow from 127.0.0.1

#Allow from ::1

# Allow from .example.com

Allow from all

重启httpd服务:

# service httpd restart

※注:仅用于说明演示,并没有考虑太多的权限问题,请自行解决。

8、查看输出页面

引用

http://ip/mrtg/

9、加入计划任务

若一切正常,则把mrtg命令加入计划任务即可。

在/etc/cron.d/mrtg加入:

引用

*/5 * * * * root /usr/bin/mrtg /etc/mrtg/mailmrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

表示每5分钟执行一次。

四、参考资料

偵測 Linux 上面的流量

SNMP Man Pages

MRTG 配置完整手册

MRTG 配置完整手册(CU讨论)

安装配置MRTG-2.15.1

mrtg监控短信报警 linux,[原]使用MRTG画图进行监控相关推荐

  1. mrtg监控短信报警 linux,使用 snmp+mrtg 监控 Linux 系统

    使用snmp+mrtg监控Linux 系统 CPU.流量.磁盘空间.内存 1. 安装snmp yum install net-snmp* -y 2. 修改/etc/snmpd.conf(可直接清空内容 ...

  2. mrtg监控短信报警 linux,mrtg监控网络流量简单配置

    这里只是简单介绍在centos下使用mrtg监控网络流量 参考鸟哥的linux私房菜,我的linux入门啊 http://linux.vbird.org/linux_security/old/04mr ...

  3. mrtg监控短信报警 linux,Linux系统上安装MRTG来监控网络流量

    Multi Router Traffic Grapher------MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档 ...

  4. mrtg监控短信报警 linux,mrtg监控100M以上流量不准的解决办法

    mrtg监控100M以上流量不准的解决办法/usr/local/mrtg-2/bin/cfgmaker --global 'WorkDir: /var/www/html/mrtg/test' --gl ...

  5. linux 查看非法用户登录,用短信报警来监控linux系统的非法登录用户

    用短信报警来监控linux系统的非法登录用户 为了保证linux系统的安全,我们可以写一段脚本来监控linux系统的用户登录情况,当登录IP地址不是我们指定的IP地址时则发出一条报警短信.这里我们间接 ...

  6. 使用linux shell+sendmail+139邮箱实现定时短信报警

    最近想做个linux的系统监控,比如当磁盘空间到达一定时,进行短信报警,但又 暂时不想买设备,又不是SP,之前用过飞信API,但发现飞信老改API,麻烦,后来发现 139邮箱只要注册了,就可以实现只要 ...

  7. nagios整合ganglia实现hadoop、Hbase监控及手机短信报警

    预计该博文篇幅较长,这里不再废话,对ganglia不太了解的去问谷老师,直接看环境: hadoop1.updb.com    192.168.0.101 hadoop2.updb.com    192 ...

  8. nagios监控服务短信报警开发及部署细节

    网站监控的及时报警方式主要就是短信报警了:1)邮箱转短信报警. 2)微信,MSN,QQ转手机信息提醒. 3)短信网关报警(本文推荐) 4)短信猫报警. 5)飞信报警. 6)手机邮件客户端直接收邮件提示 ...

  9. stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警

    系统实现了智能安防报警系统设计,人体感应报警,烟雾报警,GSM短信报警,同时支持远程视频监控功能,安卓端app端远程查看视频流.实物展示视频 ​​​​​​基于stm32单片机ESP32智能安防系统远程 ...

  10. zwacs短信报警智能工业云监控系统

    zwacs短信报警智能工业云监控系统 --zwacs众为自动化 产品概述 随着物联网进化加速,工业设备智能监测的要求越来越高.如何更智能.更低成本实现远程监控是我们解决的首要问题.如:农业大棚监控.医 ...

最新文章

  1. Android 网络连接--Wifi/3G
  2. 小巫新闻客户端底部菜单切换实现
  3. JBuilder中光标错位的解决办法
  4. jQuery.ready in CRM Fiori Opportunity Application
  5. 自考c语言程序阅读题,自考C语言程序设计模拟试题二答案.DOC
  6. 访问模型参数,初始化模型参数,共享模型参数方法
  7. React之事件绑定
  8. 同一个页面同时get post_get与post的区别
  9. python return返回值_Python return语句 函数返回值
  10. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置
  11. BZOJ2276: [Poi2011]Temperature
  12. JDK 11 下载安装,配置idea
  13. 电子与电工技术实验——集成运算放大器的应用
  14. 央行房贷新政带火北京学区房:相比前两月涨10%
  15. UML预约挂号系统建模(团队作业)
  16. java 记录微信转发次数_微信分享追踪分析系统 ,可以精细统计朋友圈访客来访次数及时间和转发...
  17. 模电——电路中电源地、模拟地、信号地的区别与联系
  18. 如何将手机里的文件打印出来?
  19. JS中常见的 “Uncaught TypeError: XXXX is not a function” 错误解析
  20. nfc充值java_实测北京公交一卡通NFC手机充值

热门文章

  1. VBS 拷贝 注册表键值
  2. 在Windows Embedded CE下进行Native C++开发,一次错误使用多线程的经验教训
  3. 计算机的实现的理论基础
  4. Hadoop工具让数据仓库迁移更轻松
  5. oracle审计功能启动关闭
  6. 偶然获得2011高校信息化创新征文大赛鼓励奖
  7. 安装微软虚拟机的操作说明
  8. for_else,break——python小练
  9. java 继承list_Java集合—List—继承关系
  10. 转:js中arguments详解