diff --git a/docker/kafka/docker-compose.yml b/docker/kafka/docker-compose.yml new file mode 100644 index 0000000..bffc860 --- /dev/null +++ b/docker/kafka/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3' +services: + zookepper: + image: wurstmeister/zookeeper # 原镜像`wurstmeister/zookeeper` + container_name: zookeeper # 容器名为'zookeeper' + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "/etc/localtime:/etc/localtime" + ports: # 映射端口 + - "2181:2181" + + kafka: + image: wurstmeister/kafka # 原镜像`wurstmeister/kafka` + container_name: kafka # 容器名为'kafka' + volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录 + - "/etc/localtime:/etc/localtime" + environment: # 设置环境变量,相当于docker run命令中的-e + KAFKA_BROKER_ID: 0 # 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://ip:9092 # TODO 将kafka ip + KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # 配置kafka的监听端口 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_CREATE_TOPICS: "hello_world" + ports: # 映射端口 + - "9092:9092" + depends_on: # 解决容器依赖启动先后问题 + - zookepper + + kafka-manager: + image: sheepkiller/kafka-manager # 原镜像`sheepkiller/kafka-manager` + container_name: kafka-manager # 容器名为'kafka-manager' + environment: # 设置环境变量,相当于docker run命令中的-e + ZK_HOSTS: zookeeper:2181 + APPLICATION_SECRET: xxxxx + KAFKA_MANAGER_AUTH_ENABLED: "true" # 开启kafka-manager权限校验 + KAFKA_MANAGER_USERNAME: admin # 登陆账户 + KAFKA_MANAGER_PASSWORD: 123456 # 登陆密码 + ports: # 映射端口 + - "9000:9000" + depends_on: # 解决容器依赖启动先后问题 + - kafka \ No newline at end of file diff --git a/docker/prometheus/docker-compose.yaml b/docker/prometheus/docker-compose.yaml new file mode 100644 index 0000000..1c6c964 --- /dev/null +++ b/docker/prometheus/docker-compose.yaml @@ -0,0 +1,66 @@ +version: '2' + +networks: + monitor: + driver: bridge + +services: + prometheus: + image: prom/prometheus + container_name: prometheus + hostname: prometheus + restart: always + volumes: + - ./prometheus.yml:/etc/prometheus/prometheus.yml + # - ./node_down.yml:/usr/local/etc/node_down.yml:rw + ports: + - "9090:9090" + networks: + - monitor + + alertmanager: + image: prom/alertmanager + container_name: alertmanager + hostname: alertmanager + restart: always + # volumes: + # - ./alertmanager.yml:/usr/local/etc/alertmanager.yml + ports: + - "9093:9093" + networks: + - monitor + + grafana: + image: grafana/grafana + container_name: grafana + hostname: grafana + restart: always + ports: + - "3000:3000" + networks: + - monitor + + node-exporter: + image: quay.io/prometheus/node-exporter + container_name: node-exporter + hostname: node-exporter + restart: always + ports: + - "9100:9100" + networks: + - monitor + + cadvisor: + image: google/cadvisor:latest + container_name: cadvisor + hostname: cadvisor + restart: always + volumes: + - /:/rootfs:ro + - /var/run:/var/run:rw + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + ports: + - "8899:8080" + networks: + - monitor \ No newline at end of file diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml new file mode 100644 index 0000000..6c1d0d4 --- /dev/null +++ b/docker/prometheus/prometheus.yml @@ -0,0 +1,23 @@ +global: + scrape_interval: 1s + evaluation_interval: 1s +scrape_configs: + - job_name: 'prometheus' + static_configs: # TODO ip地址自己填我有相同的端口,因为是有两台机器,你们可以干掉相同的端口 + - targets: ['ip:9090'] + - job_name: 'cadvisor' + static_configs: + - targets: ['ip:8899'] + - job_name: 'node' + static_configs: + - targets: ['ip:9100'] + - job_name: 'cadvisor2' + static_configs: + - targets: ['ip:8899'] + - job_name: 'node2' + static_configs: + - targets: ['ip:9100'] + - job_name: 'austin' + metrics_path: '/actuator/prometheus' + static_configs: + - targets: ['ip:8888'] \ No newline at end of file diff --git a/docker/redis/docker-compose.yaml b/docker/redis/docker-compose.yaml new file mode 100644 index 0000000..7360562 --- /dev/null +++ b/docker/redis/docker-compose.yaml @@ -0,0 +1,14 @@ +version: '3' + +services: + redis: + image: redis:latest + container_name: redis + restart: always + ports: + - 6379:6379 + volumes: + - ./redis.conf:/usr/local/etc/redis/redis.conf:rw + - ./data:/data:rw + command: + /bin/bash -c "redis-server /usr/local/etc/redis/redis.conf" \ No newline at end of file diff --git a/docker/redis/redis.conf b/docker/redis/redis.conf new file mode 100644 index 0000000..15a8946 --- /dev/null +++ b/docker/redis/redis.conf @@ -0,0 +1,12 @@ +protected-mode no +port 6379 +timeout 0 +save 900 1 # 900s内至少一次写操作则执行bgsave进行RDB持久化 +save 300 10 +save 60 10000 +rdbcompression yes +dbfilename dump.rdb +dir /data +appendonly yes +appendfsync everysec +requirepass austin \ No newline at end of file