https://github.com/caizixian/tcpstat
前一段时间搞了个,觉得大家在这方面应该是有些需求的,比如卖**的奸商、服务器合租什么的。假如多个项目都需要使用,那么来一个平台自然是不错的。
这算是第一个弄出来的开源项目,希望大家觉得有用。做了个很dirty的prototype,大家可以一起开发。(Pull requests or Organization)
目前做到的功能如下:
读取配置文件,然后程序会创建iptables规则,并进行数据库初始化。接下来只要写一下crontab,每隔一段时间update db即可。
配置文件格式:
[Groups]
Name:Gp1,Gp2
[Gp1]
Port:2,2000-3000
Webhook:http://localhost/api/v1/tcpstats
[Gp2]
Port:80,443
Webhook:http://localhost:8080/api/v1/tcpstats
命令行参数:
tcpstat [-c] -v|i|u|m
- 可选参数 -c FILE 指定配置文件路径,默认/etc/tcpstat/config
-v版本-i初始化iptables规则-u获取最近数据并更新数据库-m当配置文件改变时,migrate数据库
依赖的安装
sudo apt-get update
sudo apt-get install -y mongodb python-pip python-dev build-essential
sudo pip install -r /vagrant/requirements.txt
已上传到PyPI
待开发功能:
可见issue https://github.com/caizixian/tcpstat/issues
Milestone 0.1.0:
- 每天创建新条目(这么大的坑都没填上,不过加个cron,执行一下migrate即可)https://github.com/caizixian/tcpstat/issues/2
- 实现Webhook相关功能 见https://github.com/caizixian/tcpstat/issues/3
- 文档 https://github.com/caizixian/tcpstat/issues/4
Milestone 0.2.0:
- 配置文件验证器 https://github.com/caizixian/tcpstat/issues/5
- 尝试给每一条iptables规则加上注释,这样update db时就不必重复判断 https://github.com/caizixian/tcpstat/issues/6
- Auto update before migrate,防止丢失数据 https://github.com/caizixian/tcpstat/issues/7
Milestone 0.3.0:
- 移除python-iptables依赖(貌似没什么必要) https://github.com/caizixian/tcpstat/issues/8
- 单元测试 https://github.com/caizixian/tcpstat/issues/9
- 多数据库后端支持 https://github.com/caizixian/tcpstat/issues/10