1 MRTG 只是显示某一网络接口的总量,还可以包括CPU,内存,IO,交换分区信息
1.1 需要安装的rpm包有(RHEL3.0/4.0安装CD带的):
Sysstat.rpm 系统状况监视安装包.(cpu.sh)
Procps.rpm 内存,Swap 使用情况工具等(cpu.sh,mem.sh,swap.sh)
Coreutils.rpm (df.pl,disk.sh)
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
zlib-1.1.3-24;zlib-devel-1.1.3-24
httpd(apache)
net-snmp;mrtg
1.2配置SNMP 让他可以配合MRTG工作
编辑/etc/snmp/snmpd.conf把下面的#号去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc #在89行
把下面的语句#在62行
access notConfigGroup "" any noauth exact systemview none none
改为: access notConfigGroup "" any noauth exact mib2 none none
改完重启一下snmp
Service snmpd restat
注意:snmp.conf 那段写的不好,沒有任何 access control ,及自知的 Comunity String。
1.3配置MRTG
(1) mkdir /var/www/html/mrtg
(2) mkdir /opt/mrtg
(3) 从下面的贴子复制以下几个script 到/opt/mrtg
Cpu.sh , mem.sh , swap.sh, diskperf.sh, disk.pl
(4) cp /var/www/mrtg/* /var/www/html/mrtg
(5) /usr/bin/cfgmaker –output=/var/www/html/mrtg/mrtg.cfg 用来配置一个mrtg配置文件.
(6) 编辑MRTG的配置文件 vi /var/www/html/mrtg/mrtg.cfg
注意:若针对 mrtg.cfg 中的 Options 用法有更多描述就更好了,這是一般人常忽略的
(1)把WorkDir: /var/www/html/mrtg 加入到配置文件的前面.
(2)把Options[_]: growright, bits 前面的#删掉.
(3)把要监测的几个ITEM加入到配置文件里面去.
1) CPU
################CPU######################
Target[cpu]: `/opt/mrtg/cpu.sh`
MaxBytes[cpu]: 12500000
Title[cpu]: CPU -- XMNLINUXTEST02
Options[cpu]: gauge,nopercent,growright
YLegend[cpu]: CPU loading (%)
ShortLegend[cpu]:%
LegendO[cpu]: & CPU USER;
LegendI[cpu]: & CPU SYSTEM;
PageTop[cpu]:
;CPU -- XMNLINUXTEST02
;
2)NIC 用配置文件自动配好的.
3)MEM 这个图最大设为2G,如果服务器有更大的内存,可以修改Maxbytes.
############### MEM 2G #################
Target[managemem]:`/opt/mrtg/mem.sh`
Unscaled[managemem]: dwym
MaxBytes[managemem]: 2048000
Title[managemem]:Memory
ShortLegend[managemem]: &
kmg[managemem]:kB,MB
kilo[managemem]:1024
YLegend[managemem]: Memory Usage
Legend1[managemem]: Total Memory
Legend2[managemem]: Used Memory
LegendI[managemem]: Total Memory
LegendO[managemem]: Used Memory
Options[managemem]: growright,gauge,nopercent
PageTop[managemem]:;Memory -------XMNLINUXTEST2
;
4)Swap 也是设为2G,根据实际情况改MaxBytes.
################### Swap 2G#######################
Target[swap]:`/opt/mrtg/swap.sh`
Unscaled[swap]: dwym
MaxBytes[swap]: 2048000
Title[swap]:Memory State of Server
ShortLegend[swap]: &
kmg[swap]:kB,MB
kilo[swap]:1024
YLegend[swap]: Swap Usage
Legend1[swap]: Total Swap
Legend2[swap]: Used Swap
LegendI[swap]: Total Swap
LegendO[swap]: Used Swap
Options[swap]: growright,gauge,nopercent
PageTop[swap]:;Swap-------XMNLINUXTEST02
;
5)设置磁盘使用量 最大为480G,可以根据实际情况修改MaxBytes
################## Disk Space 480G #########################
Target[disk]: `/opt/mrtg/df.pl`
Title[disk]: Disk Space ----XMNLINUXTEST02
Unscaled[disk]: dwym
MaxBytes[disk]: 465247550
kmg[disk]: KB,MB,GB
LegendI[disk]: Total Disk Space
LegendO[disk]: Used Disk Space
Legend1[disk]: Total Disk Space
Legend2[disk]: Used Disk Space
YLegend[disk]: Megabytes
ShortLegend[disk]: &
Options[disk]: growright,gauge,nopercent
PageTop[disk]: ;Disk Space --------XMNLINUXTEST02
;
6)磁盘I/O的检测,如果需要的检,更多的分区,修改并复制这个部分,并修改diskperf.sh
################## Disk I/O 800K/sec /DEV/SDA ##########
# If you want monitor more disk, please copy below create
# now monitor job, and copy & modify the diskperf.sh to setting #disk.
Target[diskIO]: `/opt/mrtg/diskperf.sh`
Title[diskIO]: Disk HDA I/O Utilization Report
#Unscaled[diskIO]: dwym
MaxBytes[diskIO]: 1600
PageTop[diskIO]: ;Disk I/O Utilization Report
;
kmg[diskIO]: KB,MB,GB
LegendI[diskIO]: Disk I/O KBread/sec
LegendO[diskIO]: Disk I/O KBwrite/sec
Legend1[diskIO]: Disk I/O KBread/sec
Legend2[diskIO]: Disk I/O KBwrite/sec
YLegend[diskIO]: Megabytes
ShortLegend[diskIO]: &
Options[diskIO]: growright,gauge,nopercent
1.4 编译配置文件
先在/etc/profile 加入两个参数
LC_ALL=C
LANGUAGE=on
# env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg
前面两次会出错,多运行几次就没有问题.
1.5 生成html文件.
/usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg
1.6 配置apache 的设置.
#vi /etc/httpd/conf.d/mrtg.cfg
把Alias /mrtg /var/www/mrtg 改为Alias /mrtg /var/www/html/mrtg
把Allow from localhost 改为Allow from all
#service httpd restart ,重启apache.
1.7 配置,自运行脚本,每五分钟自动运行一次.
在root 下启动 crontab –e 添加计划
*/5 * * * * env LANG=C /usr/bin/mrtg /var/www/html/mrtg/mrtg.cfg
1.8 确认service http&crontab的运进级别.
可以用下面两个命令查看这个服务的进行状况,
#chkconfig –list |grep httpd
#chkconfig –list |grep crontab或用设定运行级别
chkconfig --level 35 httpd on
chkconfig --level 35 crontab on
1.9 常见问题
(1)问:实际内存或硬盘跟的图里面的值相差太多,要吗线超出图表,要吗,在图表的下面. 如何更改图表的比例? 如内存实际上只有512M,但表里面内存显示最大为2G.
答:修改/var/www/html/mrtg/mrtg.cfg 找到相关的部分, 修改MaxBytes[managemem]: 2048000 中的2048000为512000
(2)问:我有几个硬盘,如果要监测其他的硬盘IO?
答:首先复制一份diskperf.sh 成diskperf2.sh ,再修改diskperf2.sh里面把hd=xxx改为你要监测的硬盘,再修改/var/www/html/mrtg/mrtg.cfg 复制sda的那一部门,并修改相关的部分.
如Target[diskIO]:`/opt/mrtg/diskperf.sh` 改成Target[diskIO]: `/opt/mrtg/diskperf2.sh`
这一部份的[diskIO]改为disk2IO
(3)问:修改了配置文件/var/www/html/mrtg/mrtg.cfg 后,网页没有生效
答:修改完配置文件应该要重新用下面命令生成新的网页.
/usr/bin/indexmaker –output=/var/www/html/mrtg/index.html –title=主机名 /var/www/html/mrtg/mrtg.cfg
(4)问:如何看我的MRTG图.
答:用http://你的IP/mrtg/ 就可以看到了.
附:1: mrtg.cfg 里面几个参数的意思.
Target:是要执行的脚本
Xsize:生成图表的横向宽度(最大600)
Ysize:生成图表的纵向高度(最大200)
Title:标题
kMG: Change the default multiplier prefixes
Ytics:纵向划分为几个块(格子)
MaxBytes:图表纵向数值的最大上限
PageTop:页面上面的提示
kilo:一般是写1024,如果需要的话,是1000在计算机里的单位
LegendI:从SHELL返回的数据中的第一个
LegendO:从SHELL返回的数据中的第二个
Options: growright,表示图表向右延展
附2:各个script
(1)
cat /opt/mrtg/cpu.sh
#!/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
(2)
Disk usage
cat /opt/mrtg/df.pl
#!/usr/bin/perl
# output(df -kl) looks like this:
# Filesystem 1k-blocks Used Available Use% Mounted on
# /dev/md0 95645100 30401312 64272080 33% /
# /dev/hde1 14119 1159 12231 9% /boot
#
# In which case, this script returns :
# 95659219
# 30402503
# when run.
foreach $filesystem (`df -kl | grep -v "Filesystem"`)
{
@df = split(/\s+/,$filesystem);
$total += $df[1];
$usage += $df[2];
}
print "$total\n";
print "$usage\n";
hostname
(3) DISK IO # cat /opt/mrtg/diskperf.sh
#!/bin/bash
# This script will monitor the KBread/sec &KBwriten/sec of Disk.
# Creater: CCC IT loren ext:2288 2005/8/3
# As sda ,sdb,sdc,sdd,hda.
# disk=sda
hd=sda
disk=/dev/$hd
KBread_sec=`iostat -x $disk|grep $hd |awk '{print $8}'`
KBwrite_sec=`iostat -x $disk|grep $hd |awk '{print $9}'`
echo "$KBread_sec"
echo "$KBwrite_sec"
hostname
(4)MEMORY
cat /opt/mrtg/mem.sh
#!/bin/bash
# This script to monitor the mem usage.
totalmem=`/usr/bin/free |grep Mem |awk '{print $2}'`
usedmem=`/usr/bin/free |grep Mem |awk '{print $3}'`
echo "$totalmem"
echo "$usedmem"
(5)SWAP
cat /opt/mrtg/swap.sh
#!/bin/bash
# This script to monitor the swap usage.
totalswap=`/usr/bin/free |grep Swap |awk '{print $2}'`
usedswap=`/usr/bin/free |grep Swap |awk '{print $3}'`
echo "$totalswap"
echo "$usedswap"
2 NTOP 详细但是很占系统资源
NTOP主要提供以下一些功能:
◆自动从网络中识别有用的信息;
◆将截获的数据包转换成易于识别的格式;
◆ 对网络环境中通信失败的情况进行分析;
◆ 探测网络环境中的通信瓶颈;
◆ 记录网络通信的时间和过程。
它可以通过分析网络流量来确定网络上存在的各种问题;也可以用来判断是否有黑客正在攻击网络系统;还可以很方便地显示出特定的网络协议、占用大量带宽的主机、各次通信的目标主机、数据包的发送时间、传递数据包的延时等详细信息。通过了解这些信息,网管员可以对故障做出及时的响应,对网络进行相应的优化调整,以保证网络运行的效率和安全。
2.1 安装NTOP
和MRTG相比,NTOP的安装配置更简单,可以不使用Apache服务器。将NTOP安装在网管工作站上,监测中、小Linux异构网络的网络性能非常方便。
首先到 /ntop/ntop-2.2.gz下载NTOP最新的源代码,再到ftp: //ftp.rediris.es/sites/ftp.redhat.com/ pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/libpcap-0.6.2-12.i386.rpm下载相关库函数模块libpcap
先安装libpcap软件包再安装NTOP:
#rpm -ivh libpcap-0.6.2-12.i386.rpm
在配置NTOP之前,还需先编译gd和zlib模块,编译完gd(gd-1.8.3/libpng-1.2.1)和zlib(zlib-1.1.4/ ),再回到NTOP目录下重新编译、安装:
#cd gd-1.8.3/libpng-1.2.1/
#cp scripts/makefile.linux Makefile
#make
#cd ../../zlib-1.1.4
#./configure
#make
#cd ..
#make
#cd ../ntop/
# ./configure
#make;make install
随后建立log目录:
#mkdir /var/log/ntop/
以上都完成后,就可以启动NTOP了:
#ntop -P /var/log/ntop/ -u nobody &
2.2 配置精确监控
NTOP支持简单网络管理协议(Simple Network Management Protocol,SNMP),并把PNG格式的图形以HTML的方式显示出来,便于网管员对所监控的网络设备(交换机、路由器等)进行管理。
打开浏览器,在地址栏输入(“IP”就是安装NTOP的那台网管工作站的IP地址),即可打开NTOP管理界面。第一次运行时会要求输入管理员的密码,预设密码是“admin”,第二次启动就不用再输入了。
2.2.1 查看网络整体流量
查看网络整体流量用鼠标点击“Stats”选项卡,然后单击“Traffic”选项。网络流量会以柱面图和明细表格的形式显示出来。
2.2.2 查看主机流量
如果想查看具体节点计算机的网络流量,用鼠标单击“IP Traffic”选项卡,然后单击“Host”选项即可。
2.2.3 监测主机使用的网络协议
在例图里可以看到一个主机名称“CAO”的计算机发送了大量数据,其IP地址是“192.168.0.5”,MAC地址是“52:54:AB:34:5B:09”。如果想了解该计算机传输了那些数据,双击该主机名即可分析出用户使用的各种网络传输协议的类型和分别占有带宽的比例。
2.2.4 查看端口使用情况
NTOP可以把端口使用情况与应用程序关联起来,这和使用“netstat -an”命令的效果类似,并且可以显示端口打开时间、端口流量等详细信息。比如,可以把本机开放的TCP/UDP端口同应用程序关联起来,单击“IP Traffic”→“L—L”→“TCP/UDP Servers/Ports Usage”。
小结
透过NTOP,所有进出网络的数据基本上都无所遁形。不管是用来监测网络,还是用来制作网络情况报告,NTOP都是非常优秀的工具。不过,由于NTOP网络“嗅探器”的本质,决定了它是一把“双刃剑”,如何保护这些信息只提供给授权人士,是个值得注意的问题。
3 BANDWIDTHD 精简,直观.很容易配置,在任何一台电脑可以通过web界面用浏览器查看经过网关的各个ip流量,而且是分协议,分颜色显示,已经有直观的图象曲线。
安装:
3.1 必需库
libpcap,libpng,gd包或者rpm包(gd,gd-devel,libpng,libpng-devel,libpcap);
3.2 下载
bandwidthd原始网址如下:
里面有下载地址的连接,目前最新的版本是 bandwidthd 1.2.1b下载bandwidthd-1.2.1b.tgz 放在/home/中(这个目录是我的习惯而已).也下载一个补丁吧,这个补丁可以增加检测端口的,所以在这里还是先补了再安装.在相关补丁(patchs)的连接里有这样一个补丁:
下载bandwidthd-cp3-1.2.1b.patch.gz 也放在/home/中这是为bandwidthd 1.2.1b所用的.解压为bandwidthd-cp3-1.2.1b.patch
3.2 安装
把bandwidthd-cp3-1.2.1b.patch放在bandwidthd-1.2.1b目录同一级。
#tar -xvzf bandwidthd-1.2.1b.tgz
#cd bandwidthd-1.2.1b
执行补丁: #patch -p1 < ../bandwidthd-cp3-1.2.1b.patch
make install
至此即已安装完成,它会将 bandwidthd 安装至/usr/local/bandwidthd下。
3.3设定配置bandwidthd.conf
bandwidthd 的设定也很简单,一个配置文件搞定,
一般修改一下网段和掩码,其他的用默认值即可,如果你熟悉英文,就看看其他选项.大概如下编辑:
/usr/local/bandwidthd/etc/bandwidthd.conf
####################################################
# Bandwidthd.conf
#
# Commented out options are here to provide
# documentation and represent defaults
# Subnets to collect statistics on
#subnet 10.0.0.0 255.0.0.0
#subnet 208.16.191.0 255.255.255.0
subnet 192.168.1.250 255.255.255.0 #以一网段为例
# Device to listen on
dev "eth0" #(这是你要检测的网卡,可以调整为对应的网络连接设备)
把其中 subnet 的设定,以一网段为例:
subnet 192.168.1.0 255.255.255.0
###################################################
# Options that don't usually get changed
# An interval is 2.5 minutes, this is how many
# intervals to skip before doing a graphing run
#skip_intervals 0 #默间隔认2.5 minutes 刷新
# Graph cutoff is how many k must be transfered by an
# ip before we bother to graph it
#graph_cutoff 1024 #默间1M 以上的流量才有图形
#Put interface in promiscuous mode to score to traffic
#that may not be routing through the host machine.
#promiscuous true #让网卡在混杂模式中记录
#Log data to cdf file htdocs/log.cdf 在bandwidthd中生成log2.cdf log.cdf格式数据记录
output_cdf true
#Read back the cdf file on startup 在启动bandwidth时重新读取cdf的数据
recover_cdf true
#Libpcap format filter string used to control what bandwidthd see's
#Please always include "ip" in the string to avoid strange problems
#以ip为过滤对象
filter "ip"
#Draw Graphs
graph true
#以下是我打了补丁bandwidthd-cp3-1.2.1b.patch才有的,
# List of controled protocols
# format: item "item_name" rgb_color protocol ports 这是记录的格式:端口名字,RGB颜色,端口号
# obs.: The yellow (0xffff00) color is predefined to the "TOTAL" item 黄色预设为TOTAL的颜色
item "TCP" 0x00ff00 tcp all
item "HTTP" 0x0000ff tcp 80 443
item "FTP" 0xc0c0ff tcp 20 21
item "P2P" 0xff00ff tcp 1044 1045 1214 4661 4661 4665 5190 5500 5501 5502 5503 6346 6347 6666 6667 7788 8888 8889 28864 288
65
item "UDP" 0x800000 udp all
item "ICMP" 0xff0000 icmp all
item "SMTP" 0xFF8C00 tcp 25
item "POP3" 0x00FFFF tcp 110
其中SMTP和POP3是我为了更详细的数据流而增加上去的.你也可以增加你想检测的端口,这就是为何我推荐打这个补丁再安装的原因。存盘之后,便可执行。
3.4 运行 ,要先转到安装目录才能执行
cd /usr/local/bandwidthd
./bandwidthd
在web 主目录下做个软连接,执行
ln -s /usr/local/bandwidthd/htdocs bandwidthd
接着您便可用
这样就可以在浏览器里面检测你需要的流量了
另外,更多配置方法:
1. 把设定档中的 dev 增加更多的dev,或设成 any 可以监控更多设备
2. 如果认为TOP20太少了,就在还没MAKE时候先改graph.cgraph.c中查找
for (Counter=0; Counter < 21 && Counter < NumIps; Counter++)把21改成101就变成TOP100然后查找TOP20改为字符串TOP100然后存盘,再make install 即可.
此方法我已经实践通过,特意写成文档,以分享并感谢提供bandwidthd的开发者,如果觉得有更好的配置和使用方法,请互相交流. 如果有误请赐教.我的yahoo ID kindgeorge#yahoo.com
Msn :
本bandwidthd进行网络流量检测和分析如果结合tc+iptables进行流量控制,是一个绝妙的组合. 这样你就可以随时检测和控制网内所有机器及端口的流量了.
关于tc+iptables可以参考
更多的bandwidthd可以参考:
4 GANGLIA
Ganglia监控软件主要是用来监控系统性能的软件,如:cpu 、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。支持浏览器方式访问,但不能监控节点硬件技术指标。
ganglia 是分布式的监控系统,有两个Daemon, 分别是:客户端Ganglia Monitoring Daemon (gmond)和服务端Ganglia Meta Daemon (gmetad),还有Ganglia PHP Web Frontend(基于web的动态访问方式)组成。是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大。RRDtool是系统存放和显示time-series (即网络带宽、温度、人数、服务器负载等) 。并且它提出有用的图表由处理数据强制执行有些数据密度。下载地址。
4.1 安装RRDTool
gmetad需要先安装RRDTool,默认的安装路径:/usr/local/rrdtool-1.0.49
#tar rrdtool.tar.gz
#cd rrdtool-1.0.49
#./configure
#make
#make install
更改rrdtool-1.0.49名称为rrdtool
#mv rrdtool-1.0.49 rrdtool
rrd.h in /usr/local/rrdtool/include/rrd.h
librrd.a in /usr/local/rrdtool/lib/librrd.a
4.2 gmetad的安装
gmetad不是默认安装的,安装时需要加参数 --with-gmetad 。即rrdtool库及其头文件必须存在,默认的路径是/usr/include/rrd.h和 /usr/lib/librrd.a,如果在安装rrdtool时安在了不同的路径下,这里需要指明它们的路径。
./configure CFLAGS="-I/rrd/header/path" CPPFLAGS="-I/rrd/header/path" \
LDFLAGS="-L/rrd/library/path" --with-gmetad
#tar –zxvf ganglia-3.0.1.tar.gz
#cd ganglia-3.0.1
#./configure CFLAGS="-I/rrd/header/usr/local/rrdtool/include/rrd.h"
CPPFLAGS="-I/rrd/header/usr/local/rrdtool/include/rrd.h "
LDFLAGS="-L/rrd/library/usr/local/rrdtool/lib/librrd.a " --with-gmetad
#make
#make install
a)为了保证在开始时启动,需要将gmetad.init文件拷贝到 /etc/rc.d/init.d/
# cd ganglia-3.0.1/gmetad
# cp gmetad.init /etc/rc.d/init.d/gmetad
将配置文件拷贝到/etc目录下
# cp gmetad.conf /etc/gmetad.conf
b)Add GMETAD to the list of programs at startup
# chkconfig --add gmetad
# chkconfig --list gmetad
GMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off
c)启动gmetad
#/etc/rc.d/init.d/gmetad start
Starting GANGLIA gmetad: [ OK ]
d.Your_prompt>telnet localhost 8651 | grep “hostname”
就可以得到监控的各个主机的状态。
gmetad.conf的配置
# data_source "another source" 1.3.4.7:8655 1.3.4.8
data_source "SERVER" 10 node1 node2
data_source 是最重要的参量,在GMOND的Cluser name配置必须与data_source的相同,这个参量被设置为群的名字,被监测以便能监测那群状态。如果有二个或更多监测对象,当有一对象不能被监测,将读取data_source 配置的下一个对象。
4.3 client端安装和配置
a)在linux客户机上安装ganglia
#tar –zxvf ganglia-3.0.1.tar.gz
#cd ganglia-3.0.1
#./configure
#make
#make install
#cd gmond
#gmond –t > /etc/gmond.conf
#cp gmond.init /etc/rc.d/init.d/gmond
# chkconfig --add gmond
#chkconfig --list gmond
gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#/etc/rc.d/init.d/gmond start
Starting GANGLIA gmond: [ OK ]
#telnet localhost 8649 就可以获取机群内运行gmond的主机的信息
b)在windows客户机上安装ganglia
安装ganglia-3.0.0-setup
c)配置gmond.conf
Linux: vi /etc/gmond.conf
Windows:开始菜单-程序-ganglia- Configure Ganglia Monitoring Service
globals {
setuid = no
user = nobody
cleanup_threshold = 300 /*secs */
}
修改为
setuid = yes
user = scett #本机用户名
cluster {
name = "unspecified" #Cluser name
}
修改监控组名称
name = “SERVER”
配置完成后重新启动gmond.
4. CACTI配置检测系统性能
4.1 安装
需要软件:httpd,php,mysql,cacti,rrdtool,net-snmp/ucd-snmp
4.2 安装httpd2.0.58
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/apache2 --enable-modules=so
# make;make install
编译选项比较简单,--prefix=你需要把apache安装的位置,--enable-modules=so意思是可以动态加载apache所需
要的.so 的模块,安装完成后,编辑apache的配置文件,使之能正常使用:
# vi /usr/local/apache2/conf/httpd.conf
找到下面这行:
#ServerName
改为:
ServerName yourIP:80
启动apache:
#/usr/local/apache2/bin/apachectl start
4.3 安装mysql-5.0.20
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/mysql
# make;make install
# cp support-files/my-medium.cnf /etc/my.cnf (这一步是将配置文件拷贝到/etc下面)
编译选项当中指定安装路径就可以了
配置mysql过程:
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local/mysql
#./bin/mysql_install_db --user=mysql
#chown -R root .
#chown -R mysql var
#chogrp -R mysql .
启动mysql
#./bin/mysqld_safe --user=mysql &
如果看到下面的信息,就说明启动成功了
# Starting mysqld daemon with databases from /usr/local/mysql/var
可以测试一下,看看能不能登陆mysql数据库
# /usr/local/mysql/bin/mysqladmin -uroot password '你的密码' (给初始登陆mysql的用户root设置密码,当 然不设置也能登陆,推荐设置密码)
# /usr/local/mysql/bin/mysql -uroot -p你的密码 (注意: -p后面不要带空格)
如果出现下面的欢迎字样,说明连接成功:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 9 to server version: 5.0.20a-log
mysql>
4.4 安装PHP-5.2.0
解压软件包,进入安装目录,我的编译过程如下:
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc
#make;make install
编译选项中--with-apxs2=/usr/local/apache2/bin/apxs 是说将PHP模块编译进apache,--with-mysql=/usr/local/mysql 是说指定mysql的路径(其实就是告诉PHP我们的mysql的一些头文件信息,如果你的
mysql和PHP不是同一台机器的话,指定mysql的头信息是编译必要的),--with-config-file-path=/usr/local/php/etc 是说将PHP的主配置文件放在什么地方,这是个人习惯
#cp php.ini-dist /usr/local/php/etc/php.ini
#vi /usr/local/php/etc/php.ini
找到如下内容:
register_globals = Off
改为:
register_globals = On
为了使PHP能够配合apache使用,还需要修改apache的配置文件:
#vi /usr/local/apache2/conf/httpd.conf
找到下面字段:
DirectoryIndex
在iindex.html前面添加index.php
并在配置文件最后加入如下字段:
AddHandler php5-script .php
AddType text/html .php
测试PHP是否正常运行:
#vi /usr/local/apache2/htdocs/index.php
写入下面一行:
<?php phpinfo() ?>
保存退出后重新启动apache
#/usr/local/apache2/bin/apachectl restart
这里需要注意,如果系统的selinux没有关闭的话,我们的php的模块是不能被apache正确找到的,所以在重起apache
之前,请将selinux关闭,具体做法是:
#vi /etc/selinux/config
找到如下字段:
SELINUX=enforcing
改为:
SELINUX=disabled
保存退出后需要重新启动电脑
在浏览器里输入IP,如果能够看到phpinfo的测试页,那么PHP已经正常工作了
4.5 安装rrdtool
下载: /rrdtool-1.0.x/rrdtool-1.0.50.tar.gz
然后 ./configure
make && make install即可
与mrtg相比,rrdtool自带了gd库,所以不用先安装gd库。(不过由于rrdtool自带的gd库不支持中文,所以rrdtool画出来的图也不能有中文,否则会出现乱码)。
注意:rrdtool1.2的版本由于已经不再自带外部的lib库(如cgilib,zlib等),所以需要从下载这些库来安装。建议还是使用1.0的版本,比较方便。
4.6 安装net-snmp
几乎所有的网络设备和操作系统默认都安装了snmp服务。Unix系统安装的都是net-snmp或ucd-snmp(其实两个都是同一组人写的)。如果没有安装snmp,可以到net-snmp.sourceforge.org上下载源码编译安装。
我这里说的安装SNMP服务并不是要求安装SNMPD,其实是Cacti需要用到net-snmp中的两个命令――snmpwalk和snmpget进行数据的采集。我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则不用安装了。
4.7 安装cacti-0.8.6j
解压cacti的软件包,进行如下操作:
tar xzvf cacti-0.8.6j.tar.gz
#mv cacti-0.8.6j /usr/local/apache2/htdocs/cacti
#cd /usr/local/apache2/htdocs/cacti
#/usr/local/mysql/bin/mysql -uroot -p你的密码
mysql> grant all privileges on *.* to '你的用户名[email=]'@'localhost'[/email] identified by '为这用户添加的密码' with grant option;
mysql> create database cacti;
mysql> exit
#/usr/local/mysql/bin/mysql -u用户名 -p你的密码 cacti < cacti.sql
#vi include/config.php
修改如下段落:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
改为:
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "用户名";
$database_password = "你的密码";
$database_port = "3306";
修改snmp的配置文件:
#vi /etc/snmp/snmpd.conf
修改下面几部分内容:
1.)com2sec notConfigUser default public
改为:com2sec notConfigUser localhost public
2.)access notConfigGroup "" any noauth exact systemview none none
改为:access notConfigGroup "" any noauth exact all none none
3.)#view all included .1 80
去掉注释,保存退出。
启动snmp
#/etc/init.d/snmpd start
修改计划任务,使CACTI每5分钟获得一次数据:
#crontab -e -u 用户名
添加如下内容:
*/5 * * * * /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php > /dev/null 2>&1
保存退出
#chown -R rra/ log/
这样cacti就基本配置完成了
在浏览器里输入IP/cacti初始进入的时候需要告诉cacti你的PHP的可执行文件的路径,其他默认就可以,默认的用户名和密码是admin和admin。进去后要马上修改密码,保存后就进入cacti的世界了。
注明:本文大部分内容来自互联网,如果侵犯您的版权,请与我联系!