0.系统环境
CentOS Linux release 7.6.1810 (Core)|Python 2.7.5|2018年10月12日版Hawkeyegit
step1:docker安装
见:https://my.oschina.net/guiguketang/blog/1843594github
step2:yum安装mongodb
编辑mongodb仓库源文件保存退出,内容以下
#vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
####安装
#yum install -y mongodb-org
####启动
#service mongod startmongodb
step3:安装Hawkeye
#service docker start
# cd /usr/local/src/
# git clone https://github.com/0xbug/Hawkeye.git --depth 1
# cd Hawkeye
# docker build -t hawkeye .
# docker run -ti -p 8080:80 -e MONGODB_URI=mongodb://172.17.0.1:27017 -d hawkeye
8080宿主机ip,80docker内部容器IPdocker
【异常】
# docker run -ti -p 8080:80 -e MONGODB_URI=mongodb://172.17.0.1:27017 -d hawkeye
a559333eedb822375d51da8f5f8831c181d90e7e9ed5406722b8c0b88ba6ac33
docker: Error response from daemon: driver failed programming external connectivity on endpoint relaxed_ritchie (02485542521ee65cb5770391e790a31b2f4c44fdc19a651e7e3a7a7c6e7710e3): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
解决方式:
# service docker restart数据库
【功能没法使用,UI页面频繁报500错误】
查看日志
# tail -f /var/lib/docker/overlay2/****/diff/var/log/supervisor/* 提示:
pymongo.errors.ServerSelectionTimeoutError: 172.17.0.1:27017: [Errno 113] No route to host
数据库链接的问题或防火墙的问题
1.修改mongodb的bindIp值,重启mongodb
bindIp: 127.0.0.1,172.17.0.1
#service mongod restart
2.中止防火墙
## systemctl stop firewalld
3.上面第2条经过关闭防火墙方式肯定是防火墙开启限制了端口访问,但咱们不能粗暴的关闭防火墙来解决此问题,
处于安全,因此要启动防火墙,添加防火墙策略才是最优方案,操做以下
#firewall-cmd --zone=public --permanent --add-port=27017/tcp
#systemctl restart firewalld
【备注】测试容器是否能够正常访问mongo
docker exec 3b34426ef616 curl 172.17.0.1:27017
异常排查过程
vim
【官网】
https://github.com/0xbug/Hawkeye安全