1. 程式人生 > 資料庫 >Nginx+Springboot+Mysql+ELK+FileBeat(部署記錄)

Nginx+Springboot+Mysql+ELK+FileBeat(部署記錄)

繼上次 docker部署java+mysql。
這裡部署Nginx+SpringBoot(其實就是java)+Mysql+ELK+FileBeat。
FileBeat收集nginx的日誌,nginx=>FileBeat=>LogStash=>ElasticSearch=>Kibana
(這裡mysql同樣還docker製作映象時能夠執行指定的sql檔案來初始化資料庫+資料)。

下面直接貼上docker-compose程式碼,其他的具體配置和其他檔案直接丟,這裡隨筆主要記錄下,要是以後自己忘了方便看

version: '3'

networks: # 使用 自建網橋網路
  mydemo:
    driver: bridge

services:

  ########################################  nginx  ########################################

  # nginx
  mynginx:
    image: nginx:stable
    # restart: on-failure
    volumes:
      - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/config/conf.d:/etc/nginx/conf.d
      - ./nginx/log/nginx:/var/log/nginx
      - ./nginx/data/html:/usr/share/nginx/html
    ports:
      - 80:80
      - 8080:80
      - 443:443
    links: 
      - javademo
    
  ########################################  java  ########################################
  
  # java
  javademo: # 改名叫 java_demo的話,nginx那裡配置http://java_demo:8081;一直無法生效,迷 
    build: ./java
    restart: on-failure
    ports:
      - 8081:8081
    depends_on: 
      - mysqldemo

  ######################################## mysql ########################################

  # mysql
  mysqldemo:
    build: ./mysql
    command: --default-authentication-plugin=mysql_native_password
    environment:
      TZ: "Asia/Shanghai"
      MYSQL_ROOT_PASSWORD: example
    ports:
      - 3306:3306
    
  ########################################  ELK + FileBeat  ########################################

  # Elastic-Search
  elasticsearch:
    image: elasticsearch:7.9.3
    environment:
      - TZ=Asia/Shanghai
      - "cluster.name=EScluster" #設定叢集名稱為 EScluster
      - "discovery.type=single-node" #以單一節點模式啟動
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #設定使用jvm記憶體大小
    volumes: 
      - ./elasticstack/elasticsearch/es01/data:/usr/share/elasticsearch/data
      - ./elasticstack/elasticsearch/es01/logs:/usr/share/elasticsearch/logs
      - ./elasticstack/elasticsearch/es01/mydocs:/usr/share/elasticsearch/mydocs
    ports:
      - 9200:9200
      - 9300:9300
  
  # FileBeat
  filebeat:
    image: store/elastic/filebeat:7.9.3
    volumes:
      - ./elasticstack/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml
      - ./elasticstack/filebeat/logs:/usr/share/filebeat/logs
      - ./elasticstack/filebeat/mydocs:/usr/share/filebeat/mydocs
      - ./nginx/log/nginx:/usr/share/filebeat/nginx-logs
    environment:
      - TZ=Asia/Shanghai

  # LogStash
  logstash:
    image: logstash:7.9.3
    volumes:
      - ./elasticstack/logstash/config:/usr/share/logstash/config     # logstash 配置檔案目錄
      - ./elasticstack/logstash/pipeline:/usr/share/logstash/pipeline # logstash 的採集與輸入的配置檔案目錄
      - ./elasticstack/logstash/mydocs:/usr/share/logstash/mydocs
    environment:
      - TZ=Asia/Shanghai
      - "ES_JAVA_OPTS=-Xmx1g -Xms1g"
    
  # Kibana
  kibana:
    image: kibana:7.9.3
    environment:
      - TZ=Asia/Shanghai
      - "elasticsearch.hosts=http://elasticsearch:9200" #設定訪問elasticsearch的地址
    links:
      - elasticsearch
    depends_on: 
      - elasticsearch # 在elastic-search節點01啟動後再啟動
    ports:
      - 5601:5601