docker部署elasticsearch:8.6.2, kibana,logstash 版本以及kibana的使用

本文档介绍了如何在Docker环境下安装和配置Elasticsearch8.6.2,包括创建无密码访问的服务,建立索引,批量导入数据。接着,详细讲述了如何安装Kibana8.6.2并解决连接Elasticsearch时的验证问题。此外,还提到了使用logstash进行数据处理和导入,并提供了查看数据的参考。

1、参考

  1. How to Run Elasticsearch 8 on Docker for Local Development
  2. Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)

2、安装elasticsearch:8.6.2

2.1 创建网络

docker network create elastic

2.2 创建无密码访问的elasticsearch服务

docker run --name elasticsearch8.6.2 --net elastic -p 9200:9200 -e discovery.type=single-node -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -e xpack.security.enabled=false -idt elasticsearch:8.6.2

2.3 访问验证

curl localhost:9200

在这里插入图片描述

2.4 建一个索引试试,此索引名为my-book,有六个字段

curl -X PUT "http://localhost:9200/my-book?pretty" \
-H 'Content-Type: application/json' \
-d'
{
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
    "properties": {
                "line_id": {
                    "type": "long"
                   },
                "line_number": {
                     "type": "keyword"
                },
               "play_name": {
                    "type": "keyword"
               },
               "speaker": {
                    "type": "keyword"
               },
               "speech_number": {
                    "type": "long"
               },
               "text_entry": {
                    "type": "text"
               }
          }
  }
}
'

在这里插入图片描述

2.5 用GET命令获取索引信息试试,如下,符合预期

curl -X GET http://localhost:9200/my-book
//或者
curl -X GET http://localhost:9200/my-book?pretty

在这里插入图片描述

2.6 再试试批量导入一笔数据,从这个地址下载数据文件

//下载数据文件
wget https://raw.githubusercontent.com/zq2599/blog_download_files/master/files/shakespeare_for_es_822.json

导入es数据

curl -H 'Content-Type: application/x-ndjson' -XPOST 'http://localhost:9200/_bulk' --data-binary @shakespeare_for_es_822.json

2.7 docker安装部署es-head查看es数据

docker pull mobz/elasticsearch-head:5-alpine

docker run -d \
  --name=elasticsearch-head \
  --restart=always \
  -p 9100:9100 \
  mobz/elasticsearch-head:5-alpine

3、安装kibana:8.6.2

3.1 启动命令

docker run -idt --name kibana --net elastic -p 5601:5601 kibana:8.6.2

3.2 访问5601端口测试

需要输入token
在这里插入图片描述

3.2 生成token,kibana连接es的时候要用到

docker exec -it elasticsearch8.6.2 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
  • 生成token报错
    ERROR: [xpack.security.enrollment.enabled] must be set to true to create an enrollment token

3.4 解决办法如下

在这里插入图片描述
在这里插入图片描述

弹出验证码

然后弹出个输入验证码的页面
在这里插入图片描述

获取验证码

docker exec -it kibana bin/kibana-verification-code

重新验证验证码

在这里插入图片描述
点击 右上角 关闭 重新验证

进入kibana

在这里插入图片描述

本文档配置无密码的kibana, 有密码的可以看参考中的实战的链接

3. docker安装logstash

/mnt/docker/elk/logstash/config/logstash.yml

node.name: logstash862
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.16.5.103:9200" ]

/mnt/docker/elk/logstash/pipeline/logstash.conf

input {
	syslog {
		port => 5044
	}
}
filter {
    json { source => "message" }

    mutate {
        remove_field => ["message"]
        remove_field => ["host", "process", "log"]
        remove_field => ["event", "service", "@version"]

    }
}
output {
  elasticsearch {
    hosts => "172.16.5.103:9200"
    index => "threatinfo-log-%{+YYYY.MM.dd}"
  }
}
docker run -d --name logstash --net elastic -m 1000M --restart=always -p 5044:5044 --privileged=true -e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" -v /mnt/docker/elk/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -v /mnt/docker/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml logstash:8.6.2

4. kibana查看数据参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值