目录
####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