docker淺學筆記-docker-compose和日誌elk容器

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章