一、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
-
添加索引
-
查看日志