三、openwrt 下 bandwidthd-pgsql 的设置方法及注意事项
上面 ubuntu 下的 bandwidthd-pgsql 使用正常了,那么我们才可以设置 openwrt 下的 bandwidthd-pgsql 连接数据库。这里,主要就是完成第一部分(openwrt 下 bandwidthd-pgsql 的安装使用)的剩余设置
config bandwidthd option dev any option subnets "192.168.0.0/16 10.0.0.0/8 172.16.0.0/12" option skip_intervals 0 option graph_cutoff 1024 option promiscuous true option output_cdf false option recover_cdf false option filter ip option graph true option meta_refresh 0 option pgsql_connect_string "user = postgres password = aaa1aaa dbname = bandwidthd host = 192.168.1.100" option sensor_id "my-router-new3"
对最后两项的解释:
option pgsql_connect_string:保持与 ubuntu 下的基本一样,IP地址要填 ubuntu 的局域网内的地址(就是数据库所在机器的地址)。
option sensor_id:写一个便于区别的字符即可,建议在 10 个数以下。
改完以后记得重启一下 bandwidthd。
/etc/init.d/bandwidthd restart
再等 2.5 分钟,在浏览器的地址栏输入“数据库所在机器的IP(http://192.168.1.100)”,选择刚才设定的“sensor_id”,就可以看到我们的 openwrt 路由器的单个 IP 的流量了,它可以记录1年以上的数据。
需要注意的地方:
1、openwrt 下的数据库不好用,直接弃用。与 linux 下的数据库第一次连接也必须是 linux 下的客户端,不能是 openwrt 下的 bandwidthd(会出上面说到的错误)。
2、ubuntu 上数据库的备份和恢复方法(我就在这样用)
pg_dump -Fc -U postgres bandwidthd > /mnt/postgresql/bandwidthd/$(date "+%Y-%m-%d_%H%M").dump su - postgres pg_restore -d bandwidthd /mnt/postgresql/bandwidthd/xxxx.dump #恢复前要建立一个空白的数据库 bandwidthd
3、如果需要将前面使用的数据库 bandwidthd 更换用户(例如把管理员 postgres 更换成 abcdef 这个一般的用户),那么除了需要创建这个用户以外,还需要去数据库的管理页面,打开 bandwidthd - 模式 - public - 数据表,点击展开,右边会出现 6 个数据表,逐项点取后面的“更改”,将“所属人”由 postgres 改成 abcdef 即可。
4、由于 openwrt 发给数据库的数据中缺少一些项的值(null),造成流量页面生成时可能疯狂产生大量的错误记录到 /var/log/apache2/error.log(可以几十G大),造成空间浪费,同时打开页面缓慢,所以必须要处理。我的方法是在 (/var/lib/bandwidthd/htdocs 或 /var/www/html/)graph.php 和 index.php 两个文件的开头处加入一行下面的代码,以不让它输出。
<?php error_reporting(0); #错误等级为0,禁止错误输出 ... ...
参考资料:
https://blog.51cto.com/u_337962/2091885
https://oldwiki.archive.openwrt.org/doc/howto/bandwidthd
最新评论
By Reinigungsfirma
By Alle Taxidienst Ergebnisse teilen
By Aktuelle Taxi als Favorit speichern
By Punti VIP di GratoWin ti premia con cashback settimanale.
By RTP (Retorno para o jogador) no Fortune Rabbit: 96
By Taxiunternehmen speichern