当前位置:   article > 正文

Docker 安装 ES 7.7.0 及 Head、Kibana、IK分词器、Logstash、Filebeat 插件_logstash log4j filebeat es docker版

logstash log4j filebeat es docker版

目录

 

环境信息

ES安装

ElasticSearch-Head安装

IK分词器安装


环境信息

  1. Docker version 1.13.1, build 4ef4b30/1.13.1
  2. CentOS Linux release 7.7.1908 (Core)

ES安装

  •   拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.0
  • 运行容器
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.0
  • 跨域修改
docker exec -it es /bin/bash
  1. # 显示文件
  2. ls
  3. 结果如下:
  4. LICENSE.txt README.textile config lib modules
  5. NOTICE.txt bin data logs plugins
  6. # 进入配置文件夹
  7. cd config
  8. # 显示文件
  9. ls
  10. 结果如下:
  11. elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
  12. elasticsearch.yml jvm.options role_mapping.yml users
  13. # 修改配置文件
  14. vi elasticsearch.yml
  15. # 加入跨域配置
  16. http.cors.enabled: true
  17. http.cors.allow-origin: "*"
  • 重启
docker restart es
  • 访问9200端口 

  

ElasticSearch-Head安装

  • 拉取镜像
docker pull mobz/elasticsearch-head:5
  • 运行镜像
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
  • 访问

  • 异常

新建索引时,报错:

{"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406}

注意:elasticsearch添加index时不能有大写字母,type=invalid_index_name_exception reason=Invalid index name [standardD

解决方法:

  1. 1、进入head安装目录;docker exec -it 名称 bash
  2. 2、打开文件夹_site,cd _site/
  3. 3、编辑vendor.js  共有两处
  4.       ①. 6886行   contentType: "application/x-www-form-urlencoded
  5.            改成
  6.          contentType: "application/json;charset=UTF-8"
  7.       ②. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
  8.         改成
  9.             var inspectData = s.contentType === "application/json;charset=UTF-8" &&


 

在使用docker容器时,有时候里边没有安装vi,敲vi命令时提示说:vi: command not found,这个时候就需要安装vi,可是当你敲        apt-get install vi命令时,提示:  

      Reading package lists... Done  

      Building dependency tree         

      Reading state information... Done  

      E: Unable to locate package vi

      这时候需要敲:apt-get update,这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,        这样才能获取到最新的软件包。  

 

IK分词器安装

  • 获取压缩包
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip

   官方地址: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v6.4.0

   

  • 拷贝到es容器内

  规范:docker cp [主机目录] [容器名称:容器地址] 

docker cp ./elasticsearch-analysis-ik-7.7.0.zip es:/usr/share/elasticsearch/plugins
  • 进入容器
docker exec -it es /bin/bash
  • 解压文件
  1. cd plugins/
  2. unzip elasticsearch-analysis-ik-7.7.0.zip -d ik-analyzer
  3. rm -rf elasticsearch-analysis-ik-7.7.0.zip
  • 重启 
docker restart es
  • 使用kibana查看分词器是否生效:

 KIBANA可视化工具

  • 获取镜像
docker pull kibana:7.7.0
  • 启动容器
docker run --name kibana --link=es  -p 5601:5601 -d kibana:7.7.0
  • 修改容器配置

   

  版本不匹配会报错:

{"type":"log","@timestamp":"2020-04-10T11:18:44Z","tags":["error","savedobjects-service"],"pid":9,"message":"This version of Kibana (v7.6.2) is incompatible with the following Elasticsearch nodes in your cluster: v6.3.2 @ 172.17.0.11:9200 (172.17.0.11)"}
  1. docker exec -it kibana /bin/bash
  2. cd /usr/share/kibana/config

      vi kibana.yml 使用如下指令修改,修改es的访问地址,将ip替换为已部署的IP,内容如下:

      

  • 重启容器
docker restart kibana
  • 浏览器访问

 

Logstash 传输管道安装

官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

 

Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:

  • inpust:必须,负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
  • filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
  • outpus:必须,负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd

  其中inputs和outputs支持codecs(coder&decoder)在1.3.0 版之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,所以完整的数据流程应该是:input | decode | filter | encode | output;codec 的引入,使得 logstash 可以更好更方便的与其他有自定义数据格式的运维产品共存,比如:graphite、fluent、netflow、collectd,以及使用 msgpack、json、edn 等通用数据格式的其他产品等。

  • 拉取镜像
docker pull logstash:7.7.0
  • 配置文件

  启动容器

docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:7.7.0

  创建映射目录 

  1. mkdir -p /data/logstash/config
  2. chmod 755 -R /data/logstash/config

 拷贝配置文件

docker cp logstash:/usr/share/logstash/config /data/logstash/

  修改配置文件-logstash.yml

vi logstash.yml

  修改es的ip为宿主机的IP

  1. http.host: "0.0.0.0"
  2. xpack.monitoring.elasticsearch.hosts: [ "http://宿主机IP:9200" ]

 修改配置文件-logstash.conf

vi logstash.conf

  填写一下内容

  1. # Sample Logstash configuration for creating a simple
  2. # Beats -> Logstash -> Elasticsearch pipeline.
  3. input {
  4. beats {
  5. port => 5044
  6. }
  7. }
  8. output {
  9. elasticsearch {
  10. hosts => ["http://宿主机IP:9200"]
  11. index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  12. #user => "elastic"
  13. #password => "changeme"
  14. }
  15. }

修改配置文件-pipelines.yml

path.config 修改为刚才创建配置文件的全路径

  1. # This file is where you define your pipelines. You can define multiple.
  2. # For more information on multiple pipelines, see the documentation:
  3. # https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
  4. - pipeline.id: main
  5. path.config: "/usr/share/logstash/config/logstash.conf"
  • 运行容器
docker run --name logstash -d -p 5044:5044 -p 9600:9600 -v /data/logstash/config:/usr/share/logstash/config --restart=always logstash:7.7.0 
  • 查看容器
docker logs logstash

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/325568
推荐阅读
相关标签
  

闽ICP备14008679号