Docker-compose部署elk日志分析容器

一、Docker-compose部署elk日志分析容器

  • 内存至少8G

  • 安装docker

 # 安装docker
 yum install -y yum-utils device-mapper-persistent-data lvm2 
 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 yum -y install docker-ce docker-ce-cli containerd.io
 # 启动服务
 systemctl start docker
 systemctl enable docker
  • 安装docker-compose环境

 # 下载docker-compose
 curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
 # 添加执行权限
 chmod +x /usr/local/bin/docker-compose
 # 查看版本
 docker-compose -v
 docker-compose version 1.21.1, build 5a3f1a3

1.1 部署nginx容器

  • 通过elk来收集nginx日志

  • nginx日志文件需要挂载到宿主机

 # 创建nginx目录
 mkdir nginx
 # 创建dockerfile文件
 cd nignix
 vim Dockerfile
 FROM nginx
 CPOY nginx.repo /etc/yum.repos.d
 RUN yum -y install nginx
 EXPOSE 80
 CMD ["nginx","-g","daemon off;"]
 # 生成镜像
 docker build -t nginx:centos7 .
 # 创建容器,并将容器nginx日志挂载到宿主机 /var/log/nginx 下
 docker run -dit -v /var/log/nginx:/var/log/nginx --name nginx  -p 80:80 nginx:centos7 
 ​
 # 查看容器
 docker ps
 ​
 # 查看挂载
 ll /var/log/nginx
 ​

1.2 部署elk

1.2.1 设置相关配置

 # 修改内核参数
 vim /etc/sysctl.conf
 vm.max_map_count = 655360
 # 刷新
 sysctl -p
 vm.max_map_count = 655360
 ​
 # 设置PAM登录的用户的资源限制
 vim /etc/security/limits.conf 
 * soft nofile 65535
 * hard nofile 65535
 * soft nproc 65535
 * hard nproc 65535
 * soft memlock unlimited
 * hard memlock unlimited
 ​
 # 准备logstash配置文件
 mkdir /var/log/elasticsearch
 chmod -R 777 /var/log/elasticsearch/
 mkdir -p /opt/logstash/conf/
 cd logstash/
 cp nginx-log.conf /opt/logstash/conf/

1.2.2 创建elk的docker-compose配置文件

 # 创建目录
 mkdir elk 
 # 创建docker-compose文件
 cd elk
 vim docker-compose.yml
 version: "3"
 services:
   elasticsearch:
     hostname: elasticsearch
     container_name: elasticsearch
     build: ./elasticsearch
     ports:
       - "9200:9200"
       - "9300:9300"  
     volumes:
       - "/var/log/elasticsearch:/var/log/elasticsearch" 
     networks:
       elk:
         ipv4_address: 192.168.100.11  
 ​
   kibana:
     hostname: kibana
     container_name: kibana
     build: ./kibana
     ports:
       - "5601:5601"
     networks:
       elk:
         ipv4_address: 192.168.100.12 
 ​
   logstash:
     hostname: logstash
     container_name: logstash
     build: ./logstash
     depends_on:
       - elasticsearch
     ports:
       - "5044:5044"
     volumes:
       - "/opt/logstash/conf:/opt/logstash/conf"
     networks:
       elk:
         ipv4_address: 192.168.100.13
 ​
 ​
   filebeat:
     hostname: filebeat
     container_name: filebeat
     build: ./filebeat
     depends_on:
       - logstash
     volumes:
       - "/var/log/nginx:/var/log/nginx"
     networks:
       elk:
         ipv4_address: 192.168.100.14
   
 networks:
   elk:
    driver: bridge
    ipam:
      config:
        #网段不能与宿主机相同
        - subnet: 192.168.100.0/24
        
        
 # 创建容器
 docker-compose up -d

1.2.3 登录kibana页面,查看日志

  • 浏览启动登录kibana,输入宿主机ip及kibana端口 172.16.10.10:5601

  • 添加索引

  • 查看日志

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值