spring cloud 二代架构依赖组件 docker全配置放送(二)

399 阅读2分钟

spring cloud 二代架构依赖组件 docker全配置放送(二)

接上文

spring cloud 二代架构依赖组件 docker全配置放送(一)

xxl-job

version: '3'
services:
  xxl-job-admin:
    image: xuxueli/xxl-job-admin:2.2.0
    restart: always
    container_name: xxl-job-admin
    depends_on:
      - mysql
    environment:
      PARAMS: '--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=root'
    ports:
      - 8067:8080
    volumes:
      - ./data/applogs:/data/applogs

注意: 这时引用的数据库是你现有的mysql,找一个现有的,因为为了它再新建一个容器有点儿浪费

prometheus(altermanager+prometheus+grafana)

version: '3'
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - /opt/docker_compose/monitor/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - /opt/docker_compose/monitor/prometheus/alertmanager_rules.yml:/etc/prometheus/alertmanager_rules.yml
    ports:
      - 9090:9090
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'

  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    hostname: grafana
    volumes:
      - /opt/docker_compose/monitor/grafana/grafana.ini:/etc/grafana/grafana.ini
    ports:
      - "3000:3000"
    
  alertmanager:
    image: prom/alertmanager:latest
    container_name: alertmanager
    hostname: alertmanager
    restart: always
    volumes:
      - /opt/docker_compose/monitor/altermanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
    ports:
      - "9093:9093"  

  prometheus-webhook-alert:
    image: timonwong/prometheus-webhook-dingtalk:v1.3.0
    container_name: prometheus-webhook-alertmanagers
    hostname: webhook-alertmanagers
    restart: always
    volumes:
      - /opt/docker_compose/monitor/prometheus-webhook-dingtalk/config.yml:/etc/prometheus-webhook-dingtalk/config.yml
      - /etc/localtime:/etc/localtime
    ports:
      - "8060:8060"
    entrypoint: /bin/prometheus-webhook-dingtalk   --config.file=/etc/prometheus-webhook-dingtalk/config.yml  --web.enable-ui

这里我的alter没有用grafana的,而是结合altermanager和 prometheus-webhook-dingtalk实现的钉钉告警。关于prometheus、altermanager、grafana都是常规配置大家可以找模板然后根据自己的需求修改,唯一需要说明的就是prometheus-webhook-dingtalk,虽然github上说明可以配置通知模版,但最新版本的,我怎么修改也不成,是个问题。 需要观察以后版本会不会好,或者直接上手改它的go代码。

skywalking

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
    network_mode: bridge
    volumes:
      - /data/docker_compose/skywalking/es/config/jvm.options:/usr/share/elasticsearch/config/jvm.options:rw
      - /data/docker_compose/skywalking/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /data/docker/elk/elk_elastic/data:/usr/share/elasticsearch/data:rw
    ulimits:
      memlock:
        soft: -1
        hard: -1
  oap:
    image: apache/skywalking-oap-server:8.1.0-es7
    container_name: oap
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    network_mode: bridge
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_ES_USER: elastic
      SW_ES_PASSWORD: oasises
      SW_STORAGE: elasticsearch7
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
      SW_TRACE_SAMPLE_RATE: 8000
  ui:
    image: apache/skywalking-ui:8.1.0
    container_name: ui
    network_mode: bridge
    depends_on:
      - oap
    links:
      - oap
    restart: always
    ports:
      - 8083:8080
    environment:
      SW_OAP_ADDRESS: oap:12800

注意: es的详细配置文件需要你自己写哈。

kibana(ELK)

version: '2'
services:
  elk-logstash:
    image: docker.elastic.co/logstash/logstash:7.5.0
    container_name : elk_logstash
    hostname: elk_logstash
    stdin_open: true
    tty: true
    ports:
      - "5000:5000/udp"
      -  5001:5001
    command: logstash --path.settings /etc/logstash -f /etc/logstash/conf.d/logstash.conf
    external_links:
      - elasticsearch
    network_mode: bridge
    volumes:
      - /data1/docker/elk/elk_logstash/conf.d:/etc/logstash/conf.d
      - /data1/docker/elk/elk_logstash/heapdump.hprof:/usr/share/logstash/heapdump.hprof -rw
      - /data1/docker/elk/elk_logstash/gc.log:/usr/share/logstash/gc.log -rw

  elk-kibana:
    image: docker.elastic.co/kibana/kibana:7.5.0
    container_name : elk_kibana
    hostname: elk_kibana
    stdin_open: true
    tty: true
    ports:
      - 5601:5601
    external_links:
      - elasticsearch
    network_mode: bridge
    volumes:  
      - /data1/docker/elk/elk_kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml 
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200

  • 由于ES一般我们会建集群,这里忽略ES容器
  • logstash和kibana的相关配置也可从官网找到模版进行修改

更多精彩内容,请关注 公众号 “小盒子的技术分享”