####docker compose####
Docker-Compose項目是Docker官方的開源項目,負責實現對Docker容器集羣的快速編排,haproxy用以負載均衡管理。
#安裝docker-compose
#兩個問題:pip2報錯需要安裝pip3,本地源報錯利用豆瓣源
[root@mangge01 ~]# sudo yum install python3-pip
[root@mangge01 ~]# pip3 install docker-compose -i https://pypi.douban.com/simple
[root@mangge01 ~]# yum install bash-completion -y
#配置docker-compose和haproxy
[root@mangge01 opt]# pwd
/opt
[root@mangge01 opt]# ls
docker-compose.yml haproxy.cfg index1.html index2.html
#配置文件
[root@mangge01 opt]# cat haproxy.cfg
global
log 127.0.0.1 local0 #日誌輸出
log 127.0.0.1 local1 notice
maxconn 4096 #最大連接數
defaults
log global #使用global的日誌
mode http #工作模式,支持TCP、http、health
option httplog #啓用HTTP請求,會話狀態和計時器的日誌記錄
option dontlognull #啓用空連接不記錄日誌
timeout connect 5000ms #設置等待連接嘗試到服務器成功的最長時間。
timeout client 5000ms
timeout server 5000ms
listen stats
bind 0.0.0.0:1080 #負載均衡管理頁面
mode http
stats enable
stats hide-version
stats uri /stats #url後綴
stats auth admin:admin #賬號密碼
frontend balance #前臺
bind 0.0.0.0:80
default_backend web_backends #默認調用的後臺主機
backend web_backends
mode http
option forwardfor
balance roundrobin
server web1 web1:80 check
server web2 web2:80 check
[root@mangge01 opt]# cat docker-compose.yml
web1:
image: nginx
volumes:
- /opt/index1.html:/usr/share/nginx/html/index.html
expose:
- 80 #內部端口
web2:
image: nginx
volumes:
- /opt/index2.html:/usr/share/nginx/html/index.html
expose:
- 80
haproxy:
image: haproxy
volumes:
- /opt/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
links:
- web1
- web2
ports:
- "8888:1080" #端口暴漏
- "8080:80"
#啓動加載配置文件
[root@mangge01 opt]# docker-compose -f docker-compose.yml up -d
#瀏覽器訪問頁面
192.168.192.130:8080 #前臺訪問頁面,默認web1和web2輪詢
192.168.192.130:8888/stats #haproxy負載均衡管理頁面
####docker日誌管理####
#阿里雲-註冊登錄-產品與服務-容器鏡像服務-鏡像加速器-/etc/docker/daemon.json
#自己測試虛擬機至少3G內存,否則可能啓動elk失敗
#流程:主機利用filebeat採集nginx容器日誌,發送elk容器es中,通過kibana展示
部署ELK容器
[root@node01 ~]# docker pull sebp/elk
[root@node01 ~]# sysctl vm.max_map_count=262144
[root@node01 ~]# docker run -it --rm -p 9200:9200 -p 5044:5044 -p 5601:5601 --name elk sebp/elk
#報錯,具體忘了,解決臨時修改,立刻生效
ulimit -n 655350
安裝filebeat
[root@node01 ~]# https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.2-x86_64.rpm
[root@node01 ~]# rpm -ivh filebeat-6.1.2-x86_64.rpm
[root@node01 ~]# vi /etc/filebeat/filebeat.yml
# Change to true to enable this prospector configuration.
enabled: true
#- /var/log/*.log
- /var/lib/docker/*.*/*.log
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["ELK:9200"]
[root@node01 ~]# /etc/init.d/filebeat start