docker集群ELK部署读取本地日志--(八)部署过程中遇到的问题

1、第一次启动docker-compose,elasticsearch报错

docker集群ELK部署读取本地日志--(八)部署过程中遇到的问题

 

解决办法:

解决:

1)sudo vi /etc/sysctl.conf 文件最后添加一行

vm.max_map_count=262144

  1. 加载设置好的系统参数
    sysctl [-n] [-e] -p <filename> (default /etc/sysctl.conf)

sudo sysctl -p

2、启动kibana报错

"Unable to revive connection: http://elasticsearch:9200/"}

"No living connections"}

"Unable to revive connection: http://elasticsearch:9200/"}

"No living connections"}

在kibana.yml更改IP为服务器IP:172.16.10.12,同样无法解决,网络查找解决方案,在kibana.yml中更改

elasticsearch.hosts: [ " http://elasticsearch:9200/" ] 为elasticsearch的容器IP地址

 

docker inspect 3dab5d09dba0 |grep IPAddress获取容器IP地址 3dab5d09dba0为容器ID

具体参照:https://www.cnblogs.com/wenhuazzz/p/12055747.html

#本来 为了以后方便,要指定elasticsearch固定IP地址.指定网段为docker swarm的子网网段,但是docker-compose配置文件的指定固定IP的配置一直不生效,暂且放弃。

 networks:

    esnet:

     ipv4_address: 192.168.10.12

………………………………………………

………………………………………………

networks:

  esnet:

   ipam:

    config:

      - subnet: 192.168.10.0/24

3、logstash报错、日志文件一直读取不了

注:修改配置后,日志文件还是无法读取,最终排查问题是日志文件存储位置没有挂载到容器内

logstash配置文件:

input {

  file {

    path => "/logdata/dnslog/20200714/*"#日志路径

    start_position => "beginning"

    exclude => "*.gz"                      #输入文件日志、并排除gz压缩包

  }

}

解决办法:

经过问题排查是日志文件路径的读取问题。没有将存储日志文件的硬盘挂载映射到logstash容器内部。

 docker-compose.yml中的logstash配置添加卷映射:

  volumes:

    - ./elk-config/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml

    - ./elk-config/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf

    - ./logdata:/usr/share/logstash/data

修改/logdata的目录权限以便容器的读取和写入:

Chmod 775 /logdata

修改配置文件的文件读取路径为容器内的映射目录:

path => "/usr/share/logstash/data/dnslog/5566.txt"