您的位置:首页 > 理论基础 > 计算机网络

Mrtg系统状态监控[CPU 内存 网卡流量 系统进程 硬盘空间 TCP连接数]

2014-01-07 14:01 691 查看
[标签]: Linux

[说明]:试验mrtg的扩展性能。虽然现在有rrdtools、Nagios等等多种监控工具,Camor还是觉得mrtg最简单直观:)

# camor原创并首发于

http://camor.cublog.cn

# 转载和引用请先留言并注明出处!

# [By camornow$gmail.com]

----------------------------

1) 安装所需rpm包

----------------------------

net-snmp-perl-5.1.2-11.EL4.6.x86_64.rpm

net-snmp-libs-5.1.2-11.EL4.6.x86_64.rpm

net-snmp-utils-5.1.2-11.EL4.6.x86_64.rpm

net-snmp-devel-5.1.2-11.EL4.6.x86_64.rpm

!!需要预先安装以下rpm包

beecrypt-devel-3.1.0-6.x86_64.rpm

elfutils-devel-0.97-5.x86_64.rpm(在第5张安装光盘上)

net-snmp-5.1.2-11.EL4.6.x86_64.rpm

net-snmp-utils-5.1.2-11.EL4.6.x86_64.rpm

安装mrtg-2.10.15-1.x86_64.rpm

----------------------------

2) 修改/etc/snmp/snmpd.conf

----------------------------

找到这行:

# Make at least snmpwalk -v 1 localhost -c public system fast again

# name incl/excl subtree mask(optional)

view systemview included .1.3.6.1.2.1.1

view systemview included .1.3.6.1.2.1.25.1.1

在view几行的下面,加上这段文字:

# For Mrtg Add start ####################################

view all included .1.3.6

# For Mrtg Add end ####################################

找到这行:

####

# Finally, grant the group read-only access to the systemview view.

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

access notConfigGroup "" any noauth exact mib2 none none

把 access notConfigGroup 里的mib2(也可能是systemview) 更改为all

如果需要监控硬盘容量使用状况,还需要进行以下操作:

用 df -a 看到你要监控的硬盘分卷方式以及容量大小(-am:以M为单位; -ak:以K为单位 -ag:以G为单位)

比如:

#df -am

Filesystem 容量 已用 可用 已用% 挂载点

/dev/sda2 9845 5695 3650 61% /

/dev/sda6 45168 24761 18113 58% /Datas

然后修改/etc/snmp/snmpd.conf,在刚才修改的view行最下面加入:

disk / 9845

disk /Datas 45168

然后重启snmp服务

# service snmpd restart

----------------------------

3) 修改mrtg配置文件 mrtg.cfg

----------------------------

使用Redhat AS4u2 自带的 安装 mrtg-2.10.15-1.x86_64.rpm

安装以后的配置文件是/etc/mrtg/mrtg.cfg

我们预设要监控的服务器以下参数:

连接公网网卡的流量;

主机连续运行时间;

系统负载;

CPU负载;

内存使用量;

系统进程数;

硬盘空间;

打开的TCP连接数。

我的mrtg.cfg配置如下:

# Camor's Minimal mrtg.cfg

#--------------------

EnableIPv6: no

WorkDir: /var/www/mrtg

Language: gb2312

HtmlDir: /var/www/mrtg

ImageDir: /var/www/mrtg

LogDir: /var/log/mrtg

ThreshDir: /var/lib/mrtg

LoadMIBs:/usr/share/snmp/mibs/UCD-SNMP-MIB.txt,/usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt

#================================================================================

#监控eth1网卡(连接公网的)

#================================================================================

Target[eth1_lan]: /192.168.1.68:public@localhost:

Options[eth1_lan]: growright

Directory[eth1_lan]: eth1

MaxBytes[eth1_lan]: 100000000

Kmg[eth1_lan]: ,k,M,G,T,P

YLegend[eth1_lan]: Bytes per Second

ShortLegend[eth1_lan]: B/s

Legend1[eth1_lan]: 每秒流入量 (单位 Bytes)

Legend2[eth1_lan]: 每秒流出量 (单位 Bytes)

LegendI[eth1_lan]: 流入:

LegendO[eth1_lan]: 流出:

Title[eth1_lan]: eth1网络流量[流入+流出]

PageTop[eth1_lan]: eth1网络流量[流入+流出]

系统 :System02

描述 :LAN网络接口eth1的网络流量(Bytes/s)

位置 : 办公服务器68

最大值:100 MBytes/s

管理员:user@123.com

说明 :eth1 ip=192.168.1.68

#================================================================================

#监控主机连续运行时间[运行天数]

#================================================================================

Target[upday]: `/etc/mrtg/bin/mrtg-updays.pl`

Options[upday]: gauge,nopercent,growright

Directory[upday]: upday

MaxBytes[upday]: 1000

YLegend[upday]: Up Days

ShortLegend[upday]: 天

Legend1[upday]: 主机连续运行时间(天)

Legend2[upday]:

LegendI[upday]: 运行时间:

LegendO[upday]:

Title[upday]: 主机连续运行时间[运行天数]

PageTop[upday]: 主机连续运行时间[运行天数]

系统:system02

描述:主机连续运行的时间(天)

位置:办公服务器68

最大值:1000天

管理员:user@123.com

#================================================================================

#监控系统负载[1分钟+15分钟]

#================================================================================

Target[systemload]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.3:public@localhost:

Options[systemload]: gauge,nopercent,growright

Directory[systemload]: load

MaxBytes[systemload]: 3000

YLegend[systemload]: System Load

ShortLegend[systemload]:

Legend1[systemload]: 最近1分钟系统负载(x100)

Legend2[systemload]: 最近15分钟系统负载(x100)

LegendI[systemload]: 1分钟负载:

LegendO[systemload]: 15分钟负载:

Title[systemload]: 系统负载(x100)[1分钟+15分钟]

PageTop[systemload]: 系统负载(x100)[1分钟+15分钟]

系统:system02

描述:系统负载(x100)[1分钟+15分钟]

位置:办公服务器68

最大值:30(x100)

管理员:user@123.com

#================================================================================

#监控CPU负载[用户+闲置]

#================================================================================

Target[cpuload]: .1.3.6.1.4.1.2021.11.50.0&1.3.6.1.4.1.2021.11.53.0:public@localhost:

Options[cpuload]: nopercent,growright

Directory[cpuload]: cpu

MaxBytes[cpuload]: 100

Unscaled[cpuload]: dwym

YLegend[cpuload]: CPU Utilization

ShortLegend[cpuload]: %;

Legend1[cpuload]: CPU用户负载(%)

Legend2[cpuload]: CPU闲置(%)

LegendI[cpuload]: 用户:

LegendO[cpuload]: 闲置:

Title[cpuload]: CPU负载[用户+闲置]

PageTop[cpuload]: CPU负载[用户+闲置]

系统:system02

描述:CPU负载[用户+闲置]

位置:办公服务器68

最大值:100

管理员:user@123.com

#================================================================================

#监控内存使用量[Mem+Swap]

#================================================================================

Target[memory]: .1.3.6.1.2.1.25.2.3.1.6.2&.1.3.6.1.2.1.25.2.3.1.6.3:public@localhost:

Options[memory]: gauge,growright

Directory[memory]: mem

MaxBytes1[memory]: 4045336

MaxBytes2[memory]: 2097152

Kmg[memory]: k,M,G,T,P

Kilo[memory]: 1024

Unscaled[memory]: dwym

YLegend[memory]: Bytes

ShortLegend[memory]: B

Legend1[memory]: 已用Mem (Bytes)

Legend2[memory]: 已用Swap(Bytes)

LegendI[memory]: 已用Mem :

LegendO[memory]: 已用Swap:

Title[memory]: 内存使用量[Mem+Swap]

PageTop[memory]: 内存使用量[Mem+Swap]

系统:system02

描述:Memory和Swap的使用量(Bytes)

位置:办公服务器68

最大值:Mem=4096M,Swap=2048M

管理员:user@123.com

#================================================================================

#监控系统进程数[进程数]

#================================================================================

Target[process]: .1.3.6.1.2.1.25.1.6.0&.1.3.6.1.2.1.25.1.6.0:public@localhost:

Options[process]: gauge,nopercent,growright

Directory[process]: process

MaxBytes[process]: 1000

YLegend[process]: Processes

ShortLegend[process]: 个

Legend1[process]: 系统进程数(个)

Legend2[process]:

LegendI[process]: 进程数:

LegendO[process]:

Title[process]: 系统进程数[进程数]

PageTop[process]: 系统进程数[进程数]

系统:system02

描述:系统进程数(个)

位置:办公服务器68

最大值:1000个

管理员:user@123.com

#==================================================================================

#监控硬盘空间[系统盘+数据盘] !!参照前面的2) 这里需要与修改后snmpd.conf 的硬盘参数一致

#==================================================================================

Target[disk]: .1.3.6.1.4.1.2021.9.1.8.1&.1.3.6.1.4.1.2021.9.1.8.2:public@localhost:

Options[disk]: gauge,growright

Directory[disk]: disk

MaxBytes1[disk]: 10080520

MaxBytes2[disk]: 46251780

Kmg[disk]: k,M,G,T,P

Kilo[disk]: 1024

Unscaled[disk]: dwym

YLegend[disk]: Bytes

ShortLegend[disk]: B

Legend1[disk]: 系统盘已用空间

Legend2[disk]: 数据盘已用空间

LegendI[disk]: 系统已用:

LegendO[disk]: 数据已用:

Title[disk]: 硬盘空间[系统盘+数据盘]

PageTop[disk]: 硬盘空间[系统盘+数据盘]

系统:system02

描述:系统盘=/(/dev/sda2); 数据盘=/Datas(/dev/sda6)

位置:办公服务器68

最大值:系统盘=10.0GB; 数据盘=45.0GB

管理员:user@123.com

#================================================================================

#监控打开的TCP连接数[TCP连接数]

#================================================================================

Target[tcpopen]: .1.3.6.1.2.1.6.9.0&.1.3.6.1.2.1.6.9.0:public@localhost:

Options[tcpopen]: gauge,nopercent,growright

Directory[tcpopen]: tcpopen

MaxBytes[tcpopen]: 1000

YLegend[tcpopen]: Tcp Connections

ShortLegend[tcpopen]: 个

Legend1[tcpopen]: 打开的TCP连接数(个)

Legend2[tcpopen]:

LegendI[tcpopen]: TCP连接数:

LegendO[tcpopen]:

Title[tcpopen]: TCP连接数[TCP连接数]

PageTop[tcpopen]: TCP连接数[TCP连接数]

系统:system02

描述:打开的TCP连接数(个)

位置:办公服务器68

最大值:1000个

管理员:user@123.com

###################### All Set Over #########################

注意

在上面监控主机连续运行时间的配置中,有提到要使用/etc/mrtg/bin/mrtg-updays.pl这个文件。需要手动创建,内容如下:

#!/usr/bin/perl

$machine = `/bin/hostname`;

$uptime1 = `/usr/bin/uptime`;

$uptime2 = $uptime1;

$uptime1 =~ /up (.*?) day/;

$upday = int($1);

$uptime2 =~ /up (.*?) load/;

$uptime = $1;

print "$upday\n";

print "$upday\n";

print "$uptime\n";

print $machine."\n";

保存以后修改权限为可执行:

#chmod +x /etc/mrtg/bin/mrtg-updays.pl

注意

关于硬盘参数,一定要注意

snmp.conf与mrtg.cfg中的格式、参数一定要一致,并且完全跟df -a*的命令结果相符。否则会得到输入错误的提示信息。

----------------------------

4) 生成工作目录及相关文件

----------------------------

mrtg /etc/mrtg/mrtg.cfg

----------------------------

5) 生成监控的页面文件

----------------------------

indexmaker --output /var/www/mrtg/index.html --title="System state Monitor" /etc/mrtg/mrtg.cfg

# camor原创并首发于

http://camor.cublog.cn

# 转载和引用请先留言并注明出处!

# [By camornow$gmail.com]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐