Docker部署ELK

环境

  • centos 7.0(至少需要3G内存,该安装包较大)
  • docker 19.0
  • ELK镜像 sebp/elk(7.6.0版本)

Docker安装部署ELK

  选择的是sebp/elk镜像,这里基本没有什么需要配置的,docker search elk 找到stars最多的pull下来。

docker pull sebp/elk


  先把对应的文件都拷贝到宿主机当中

1.创建文件夹
    mkdir -p /root/data/es/{conf,data}
    mkdir -p /root/data/logstash/config
 
2.在运行容器并且把容器里的配置cp到宿主机当中
     docker run --tid --name elk  sebp/elk
     docker cp -a elk:/opt/kibana/config/kibana.yml .
     docker cp -a elk:/opt/logstash/config .
 3.然后删除刚才创建的容器
      docker rm -f elk

1 .运行elk

  pull下来之后,因为需要修改kibana配置,和logstash配置,所以把一些常用的配置挂载到容器目录

1.命令
    docker run -tid -p 5601:5601 -p 5044:5044 -p 9200:9200 -p 9300:9300 
     -v /root/data/es/conf/kibana.yml:/opt/kibana/config/kibana.yml 
     -v /root/data/es/data:/var/lib/elasticsearch 
     -v /root/data/logstash/config:/opt/logstash/config 
     --restart=always --name elk sebp/elk
 
2.命令解释
    -p 5601:5601 映射kibana端口
    -p 9200:9200 映射es端口
    -p 5044:5044 映射logstash端口
    -v /root/data/es/conf/kibana.yml:/opt/kibana/config/kibana.yml 挂载kibana配置文件
    -v /root/data/es/data:/var/lib/elasticsearch 挂载es数据源
    -v /root/data/logstash/config:/opt/logstash/config  挂载logstash配置
    --restart=always  自动启动

2.配置logstash

  进入到logstash的配置文件夹,会看到如下的配置,examlogstash.conf是新添加的配置文件,pilelines.yml是管理配置文件的路径。

  这里我把配置文件加载的目录改成了opt可以不用改,在挂载目录的时候把/etc/logstash/conf.d/*.conf路径给挂载出来。

  修改配置,输入端口可以根据需求自定义一个对外提供的端口号,注意格式一定要正确,不然会报错。


配置完成之后,在重启一下elk就ok了

1.docker restart elk


3.汉化kibana

  在宿主机找到刚才挂载到容器里的kibana.yml文件,在里面加入i18n.locale: "zh-CN"这行配置,然后重启下容器就ok了。

windows安装filebeat客户端

  从官网下载windows版本的filebeat客户端,配置filebeat.yml

  这里配置了logstash的路径,还有要抓取的本机目录


运行抓取日志

 .filebeat -e -c filebeat.yml

kibana配置

  成功抓取的日志以后进入到kibana当中创建索引模式,如果未抓取到日志,那么看下filebeat或者docker logs 是否有错误。通常是配置文件语法格式错误。

  如果成功抓取,点击kibana左上方的绿色背景的D字。然后点击索引模式=>创建索引模式,如果已经存在索引那么会显示你的索引字段,没有索引的话系统也会给提示的。

  有索引直接输入索引名匹配就ok了。

原文地址:https://www.cnblogs.com/zhengyazhao/p/12517966.html