前端时间领导让搞一下bandwidthd来检测网络流量情况,而且要求把数据存到数据库里,我在网上找了半天资料,关于把bandwidthd的数据存到postgresql中的很少,自己研究了半天才搞明白,这一篇是利用Ubuntu的deb包来安装,另外我还会发一篇自己编译安装的方式。
环境说明:
hostname BK4,domain localdomain,安装时账户netuser,密码abcd.1234,IP地址用IP来代替;
详细步骤
系统安装完成后使用netuser登录计算机
sudo passwd root #给root用户设置密码
设置密码为abcd.1234
su root #切换到root账户
apt-get install apache2 #安装apache
apt-get install php5 #安装php语言支持
apt-get install php5-pgsql #支持php语言连接postgresql数据库
apt-get install php5-gd #支持php语言从数据库中读取图片
/etc/init.d/apache2 restart #重启apache2
cd /var/www #进入apache2目录
vi info.php #新建info.php文件
输入<?php phpinfo();?> #在文件中输入
wq #保存退出
在浏览器里访问 #查看apache是否支持php
apt-get install postgresql #安装postgresql数据库
su postgres #转换到postgres账户,此账户为postgresql数据库管理员,数据库服务默认是由此账户启动的。
createuser netuser #将netuser设置为数据库管理员
提示Shall the new role be allowed to create more new roles? (y/n) 选择y
createuser root #步骤意义同上
exit #退回到root用户
exit #退回到netuser用户
createdb mydb #使用netuser创建数据库 mydb
psql mydb #使用客户端工具psql连接数据库mydb
#显示:mydb=#,说明连接成功,且此账户是数据库管理员
exit #退出数据库
#修改pg_hba.conf,解决认证失败的问题,使php程序可以连接数据库,
#按照以下内容更改
host all 127.0.0.1/32 trust
local all all trust
host all all ::1/128 trust
#修改postgresql.conf,修改数据库侦听范围,按照以下内容修改
listen_addresses = '*'
sudo apt-get install bandwidthd-pgsql #安装支持postgresql数据库的bandwidthd
#安装过程中会有窗口提示,在CRT下安装的时候注意模式,否则会乱码,网卡选择默认,网段选择默认,数据库不配置。
sudo vi /etc/bandwidthd/bandwidthd.conf #编译bandwidthd配置文件
照以下内容编辑相关部分
pgsql_connect_string "user = netuser dbname = mydb host = localhost"
sensor_id "netuser.BK4.localdomain" #传感器名称,在php网页中会选择
graph false #不生成静态网页
recover_cdf false
promiscuous true #默认值,包里把这个改成false了,应该启用网卡的混合模式
wq #保存退出
sudo /etc/init.d/bandwidthd restart #重启bandwidthd服务
cd /tmp #进入临时文件夹
cd /bandwidthd-2.0.1+cvs20090917 #进入bandwidthd文件夹,此文件夹是在安装bandwidthd-pgsql时产生的,如果没有可以从bandwidthd-2.0.1+cvs20090917包 中获得。
sudo mv phphtdocs /var/www/monitor #将phphtdocs文件夹移动到/var/www/下并改名为monitor,此文件夹中的php程序是用来读取数据库中的数据使用的,文件夹名称可任意
cd /var/www/monitor #进入monitor文件夹
sudo rm index.php #删除主页,此页不是我们需要的页面
sudo mv sensors.php index.php #将sensors.php文件夹改名为index.php,此页是我们需要的主页,或者可以使用源码中的phphtdocs文件夹,不需要这两步。
sudo vi config.conf #修改配置文件
修改pgsql_connect_string "user = netuser dbname = mydb"一行,
至此,安装配置完成,可以访问此网站来查看bandwidthd搜集的数据