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安全