红联Linux门户
Linux帮助

Ubuntu下编译安装bandwidthd和postgresql,将数据存入pgsql

发布时间:2015-04-12 09:28:15来源:linux网站作者:an6097

前边提过Ubuntu下使用deb包安装bandwidthd,现在来说一下自己编译安装bandwidthd和postgresql,使用linux系统的朋友都可以用这种方式来安装。


环境说明:

hostname=BK3,安装时用户为netuser,domain=localdomain;


1.准备

1.1安装apache2并支持php

1.1.1安装所需要的包

apt-get install apache2

apt-get install php5

apt-get install php5-pgsql

apt-get install php5-gd

1.1.2重启apache2

/etc/init.d/apache2 restart

1.1.3测试

在/var/www下建立php文件

vi /var/www/info.php

输入 <?php phpinfo();?>

保存退出wq

在浏览器里访问http://ip/info.php

1.2安装其他所需软件

apt-get install gcc

apt-get install flex (lex)

apt-get install bison (yacc)

1.3编译并安装bandwidthd所需要的库

安装zlib

安装libpng

安装libgd

安装libpcap

加以下参数

./configure --prefix=/usr/


2.安装配置postgresql

2.1安装所需要的包

apt-get install zlib1g

apt-get install libreadline5-dev

2.2为postgresql创建账户

useradd postgres

给账户建立主目录

mkdir /home/postgres

将账户的主目录设为刚建立的文件夹

usermod -d /home/postgres

设置账户使用bash(否则su posgres后,只有$)

usermod -s /bin/bash postgres

2.3编译安装(必须将pgsql安装在/usr/local/pgsql下,编译bandwidthd时,它只会到此处查找pgsql,如果找不到编译后就不支持pgsql)

tar zxvf postgresql-8.4.3.tar.gz

./configure –prefix=/usr/local/pgsql

make && make install

2.4配置

2.4.1修改环境变量

在/etc/profile中加入下列内容:

PATH=/usr/local/pgsql/bin:$PATH

export PATH

MANPATH=/usr/local/pgsql/man:$MANPATH

export MANPATH

LD_LIBRARYPATH=/usr/local/pgsql/lib:$LD_LIBRARYPATH

export LD_LIBRARYPATH

执行. /etc/profile使修改的环境变量立即生效,说明.和/之间有空格

2.4.2创建数据库目录并赋予权限

mkdir /usr/local/pgsql/data

mkdir /usr/local/pgsql/log

touch /usr/local/pgsql/log/syslog.log

chown postgres /usr/local/pgsql/data

chown postgres /usr/local/pgsql/log

2.4.3以postgres身份激活数据库

su postgres

initdb -D /usr/local/pgsql/data           #绑定数据目录

结果会在data下生成配置文件

2.4.4修改配置文件

返回netuser,

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 = '*'

2.5启动数据库

su postgres    #默认是用postgres 用户来启动的

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

或者

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/log/syslog.log start

#参考:

pg_ctl start   [-w] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]

pg_ctl stop    [-W] [-D DATADIR] [-s] [-m SHUTDOWN-MODE]

pg_ctl restart [-w] [-D DATADIR] [-s] [-m SHUTDOWN-MODE] [-o "OPTIONS"]

pg_ctl reload [-D DATADIR] [-s]

pg_ctl status [-D DATADIR]

给postgresql添加用户:createuser netuser

#Ubuntu登录时建立的账户

创建数据库:createdb mydb

2.6测试数据库

退回到netuser

exit

输入以下命令行:

psql mydb

#显示:mydb=#,说明连接成功,且此账户是数据库管理员。

使用exit退出数据库


3. 安装bandwidth

tar zxvf bandwidthd-2.0.1.gz

cd bandwidthd-2.0.1

./configure –prefix=/usr

make

make install


4. 配置bandwidthd

4.1使用schema.postgresql 创建连接并生成文件

在bandwidthd-2.0.1文件夹下输入以下命令行:

psql mydb netuser < schema.postgresql    #经过测试,这个不执行也可以

在bandwidthd.conf中添加参数

pgsql_connect_string "user = netuser dbname = mydb host = localhost"

sensor_id "netuser.BK3.localdomain"

graph false

recover_cdf false


5.启动bandwidthd

/usr/bandwidth/bandwidth


6.Web Server Setup:

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中README中关于网站设置的描述:

也可以使用上一篇提到的方式来配置php程序

1. Copy the contents of phphtdocs into your web tree some where.

2. Edit config.conf to set your db connect string

You should now be able to access the web application and see you graphs. All graphing

is done by graph.php, all parameters are passed to it in it's url. You can create

custom urls to pull custom graphs from your own index pages, or use the canned

reporting system.

In addition, you should schedule bd_pgsql_purge.sh to run every so often. I recomend

running it weekly. This script outputs sql statements that aggregate the older

data points in your database in order to reduce the amount of data that needs to

be slogged through in order to generate yearly, monthly, and weekly graphs.

至此,安装配置完成,可以访问此网站来查看bandwidthd搜集的数据

http://ip/monitor