首页 > 其他分享 >ELK

ELK

时间:2023-11-24 10:35:18浏览次数:28  
标签:ELK head 容器 elasticsearch docker logstash es

一、安装镜像

docker pull elasticsearch:7.2.0
docker pull mobz/elasticsearch-head:5
docker pull kibana:7.2.0
docker pull logstash:7.2.0

 

二、安装ElasticSearch

1.

docker run -d --restart=always --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.2.0

docker exec -it es /bin/bash

#进入配置文件夹
cd config

#修改配置文件
vi elasticsearch.yml

#加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"

#开启账户密码验证
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

#设置密码
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

#保存一下然后
exit

#重新启动一下容器
docker restart es

 

2.进入elasticsearch容器内部进行密码设置

docker exec -it es /bin/bash

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

#退出容器
exit

#重新启动一下容器
docker restart es

 

注:elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 密码最好设置一致避免后续忘记

3.浏览器直接访问http://ip:9200,会出现输入用户名、密码的弹窗,输入用户名:elastic 和  自己设置的密码 才能登录

登录之后显示

 4.修改密码

curl -H "Content-Type:application/json" -XPOST -u elastic 'http://ip:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "test123" }'

或者

  • 进入容器修改elasticsearch.yml 配置文件将身份验证相关配置屏蔽掉;
  • 重启ES服务,查看下索引,发现多了一个.security-7索引,将其删除掉;
  • 这样ES就没有密码

 

5.访问   http://localhost:9100/?auth_user=elastic&auth_password=xxx  可查看elasticsearch

6.访问  http://localhost:9200/_cat/indices?v  可查看所有索引

 

 

三、ElasticSearch安装ik分次器

#进入容器
docker exec -it es /bin/bash

#进入 plugins目录
cd plugins/

#创建ik文件夹
mkdir ik

#若没有wget、unzip则需安装
yum -y install wget
yum -y install unzip zip

#进入ik目录
cd ik

#拉取elasticsearch-analysis-ik-7.2.0
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.2.0/elasticsearch-analysis-ik-7.2.0.zip

#解压elasticsearch-analysis-ik-7.2.0.zip
unzip elasticsearch-analysis-ik-7.2.0.zip

#移除elasticsearch-analysis-ik-7.2.0.zip
rm -f elasticsearch-analysis-ik-7.2.0.zip

#退出容器
exit 

#重新启动一下容器
docker restart es 

 

四、运行Head容器

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

 

五、运行 kibana 容器

# 进入容器
docker exec -it kibana /bin/bash

# 进入配置文件夹
cd config

# 修改配置文件
vi kibana.yml

# 修改elasticsearch连接(如果是本机部署,ip需填写内网ip)
elasticsearch.hosts: [ "http://elasticsearch的ip地址:9200" ]

# 加入中文配置(保存后重启kibana)
i18n.locale: "zh-CN"

# 设置elasticsearch用户名密码
elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"

#保存之后,退出容器
exit

#重新启动一下容器
docker restart kibana
 

 

六、运行 LogStash 容器

docker run -d --restart=always --name logstash -p 5044:5044 -p 9600:9600 logstash:7.2.0

# 进入容器
docker exec -it logstash /bin/bash

# 修改 config 下的 logstash.yml 文件
vi config/logstash.yml

# 修改里面的IP地址,以及添加最后两行的elasticsearch的账号密码
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch的ip:9200" ]
elasticsearch.username: "elastic"
elasticsearch.password: "xxxx"


# 修改 pipeline 下的 logstash.conf 文件
vi pipeline/logstash.yml

# 修改内容如下
input {
  tcp {
    mode => "server"
    host => "0.0.0.0"  # 允许任意主机发送日志
    port => 5066
    codec => json_lines    # 数据格式
  }
}

output {
  elasticsearch {
      hosts  => ["http://192.168.12.58:9200"]   # ElasticSearch 的地址和端口(如果是本机部署,ip需填写内网ip)
      index  => "elk"         # 指定索引名
      codec  => "json"
      user  => "elastic"      # 账号
      password  => "xxx"      # 密码
  }
  stdout {
    codec => rubydebug
  }
}

#保存之后,退出容器
exit

#重新启动一下容器
docker restart logstash

 

七、扩展补充

1.elasticsearch-head无法创建索引的问题

将容器内的vendor.js拿出来。

docker cp es_head:/usr/src/app/_site/vendor.js D:\DockerFile\es_head\

然后修改D:\DockerFile\es_head\vendor.js。将6886行

contentType: "application/x-www-form-urlencoded

改成

contentType: "application/json;charset=UTF-8"

将7573行

var inspectData = s.contentType === "application/x-www-form-urlencoded" &&

修改为

var inspectData = s.contentType === "application/json;charset=UTF-8" &&

修改完之后在覆盖回去。

docker cp D:\DockerFile\es_head\vendor.js es_head:/usr/src/app/_site

然后重启es_head

docker restart es_head

2.windows 下logstash通过input收集日志配置

  1.  logstash导入的数据必须是es上已存在的索引,所以可以通过 es_head 自己先创建好索引。
  2. windows下文件目录写法问题,D:/PublishSpace/xxx  格式
  3. 文件读取位置不正确,读取一个已经存在内容的文件则需设置 start_position => "beginning"
  4. 日志中文乱码的问题 ,charset => "GB2312"
    input {
      file {
        path => ["D:/PublishSpace//logs/*.log"]
        start_position => "beginning"
        codec => plain {   # 设置读取编码
          charset => "GB2312"
        }
      }
    }
    output {
      elasticsearch {
          hosts  => ["http://192.168.12.58:9200"]   # ElasticSearch 的地址和端口(如果是本机部署,ip需填写内网ip)
          index  => "test"         # 指定索引名,没有需自己创建
          codec  => "json"
          user  => "elastic"      # 账号
          password  => "123456"      # 密码
      }
      stdout {
        codec => rubydebug
      }
    }

     

 

 


 

标签:ELK,head,容器,elasticsearch,docker,logstash,es
From: https://www.cnblogs.com/yan0720/p/17844489.html

相关文章

  • elk分布式日志系统2
    《接着上篇文章elk分布式日志系统1,继续学习》 【Filebeat+Logstash+es】  --------------------------filter不做任何处理,直接输出到logstash----------------------------  1,输出日志到logstash 编辑配置文件filebeat.yml,  关闭output.elasticsearch配置   2,编......
  • 【教你通透ELK】Kibana 数据分析和探索
     鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) Kibana数据分析和探索原理Kibana数据分析和探索的原理是基于Elasticsearch的搜索和分析引擎实现的。Kibana使......
  • 【教你通透ELK】Kibana 仪表盘设计
    鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) Kibana是一个基于Web的数据可视化平台,可以帮助用户快速、方便地创建交互式的仪表盘和报表,以及进行数据探索和分......
  • 【教你通透ELK】Kibana 性能优化
    鱼弦:内容合伙人、新星导师、全栈领域创作新星创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen) Kibana性能优化原理Kibana性能优化的原理主要涉及以下几个方面:数据存储:Kibana使用Elasticsearch作为数据存储,可......
  • elk部署
    elk的安装部署 简介:ELK是elasticsearch、logstash、kibana三个开源软件的缩写,用于日志收集查看分析 1、从官网下载安装包elasticsearch、logstash、kibana,版本尽量保持一致elasticsearch:https://www.elastic.co/cn/downloads/past-releases#elasticsearchlogstash:https......
  • ELK日志收集&&日志收集方案
    31.ELK日志收集日志分析系统-k8s部署ElasticSearch集群-帝都攻城狮-博客园(cnblogs.com)https://blog.csdn.net/miss1181248983/article/details/11377394331.1日志收集方式 1.node节点收集,基于daemonset部署日志收集进程,实现json-file类型(标准输出/dev/stdou......
  • k8s通过sidecar模式收集pod的容器日志至ELK
    架构:已完成的部署1、ES集群及kibana部署 https://blog.51cto.com/yht1990/60809812、kafaka+zookeeper集群 https://blog.51cto.com/yht1990/6081518准备sidecar镜像(filebeat)找一台服务器打镜像[root@yw-testfilebeat]#catDockerfileFROMdocker.elastic.co/beats/f......
  • elasticview elk查看工具安装
    ElasticView是一款用来监控ElasticSearch状态和操作ElasticSearch索引的web可视化工具。它由golang开发而成,具有部署方便,占用内存小等优点,官网地址:http://www.elastic-view.cnElasticSearch连接树管理(更方便的切换测试/生产环境)支持权限管理支持sql转换成dsl语法更方便的重......
  • spring boot集成elk 7.9.1
    一、组件安装es第一次运行es dockerrun-d\ --nameelasticsearch\ --envES_JAVA_OPTS=-"Xms1024m-Xmx1024m"\ --env"discovery.type=single-node"\ --envTZ=Asia/Shanghai\ -p9200:9200/tcp\ -p9300:9300/tcp\ --restart=always\ ......
  • ELK 企业级日志分析系统
    一、ELK简介1.1ELK组件介绍ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类......