Elasticsearch 实践问题汇总及解决办法
文章平均质量分 69
总结 ElasticSearch 和 Filebeat 使用过程中的各种问题并汇总,不定期更新
店伙计
这个作者很懒,什么都没留下…
展开
-
搭建ElasticSearch7.4.2集群
本次搭建的集群使用 7.4.2 版本,源码包可以到官网中下载下载链接:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz首先说一下搭建过程中使用的机器和角色分配:IP 地址角色备注10.19.74.53Master、Ingest10.19.74.54Master、Data10.19.74.55Master、Data10原创 2021-06-02 13:00:20 · 422 阅读 · 0 评论 -
ES修改集群最大分片数量max_shards_per_node
今天在查看 skywalking-oap 服务时,发现日志中出现了大量的报错信息,内容如下:[967]: index [skywalking-test_segment-20210520], type [_doc], id [2bac9570f91e4c468c76f853c8c3adc6.142.16214811300613334], message [ElasticsearchException[Elasticsearch exception [type=illegal_argument_excepti原创 2021-05-20 14:24:15 · 10582 阅读 · 4 评论 -
使用logstash迁移es数据
这两天需要将 ES 集群中的一个索引迁移到另一个集群中,使用 logstash 来完成这次索引数据迁移的任务。两个 ES 集群的版本都是 7.4.2 版本,首先创建一个 logstash 任务文件,名称为 migrate.conf 内容如下:input{ elasticsearch{ index => "source-index-000095" hosts => ["10.16.12.206:9202","10.16.12.207:9202","10.16.12.208:9202",原创 2021-05-10 13:18:01 · 3396 阅读 · 0 评论 -
ES 处理日志字段超出 1000 引发的报错
ES 处理日志字段超出 1000 引发的报错ES 集群的日志记录中经常会发现如下报错信息:[2021-02-04T22:40:06,673][DEBUG][o.e.a.a.i.m.p.TransportPutMappingAction] [m-7416] failed to put mappings on indices [[[nginx-server-log-000022/dQLTO5UGQKOUVRn2FnS3Zw]]], type [_doc]java.lang.IllegalArgumentE原创 2021-03-10 11:03:43 · 7690 阅读 · 2 评论 -
ES7 设置磁盘使用率水位线 allocation.disk.watermark
ES 根据磁盘使用率来决定是否分配分片公司 ES 集群的 Data 节点突然告警磁盘空间不足,清理了部分索引后发现该磁盘的利用率明显高于 ES 集群中其他节点的平均值,也就是说 ES 集群分片分配不均衡。除了让集群自动优化均衡以外,还可以设置一下磁盘空间水位线,这样 ES 就可以根据磁盘使用情况来决定是否继续分配 shard。使用如下命令可以设置水位线:PUT _cluster/settings{ "transient":{ "cluster.routing.allocation.原创 2021-01-27 16:28:33 · 8662 阅读 · 0 评论 -
Kubernetes 搭建 ES 集群(存储使用 local pv)
一、集群规划由于当前环境中没有分布式存储,所以只能使用本地 PV 的方式来实现数据持久化。ES 集群的 master 节点至少需要三个,防止脑裂。由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master 使用 StatefulSet 控制器node 节点需要固定的主机名和固定的物理节点以及物理节点上的本地PV,所以需要使用 StatefulSet,配合 StorageClass 来固定。kibana为无状态服务,使用deployment。二、修改 elasticsea原创 2020-11-09 10:34:25 · 7282 阅读 · 0 评论 -
Kubernetes 搭建 ES 集群(存储使用 cephfs)
一、集群规划使用 cephfs 实现分布式存储和数据持久化ES 集群的 master 节点至少需要三个,防止脑裂。由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master 使用 StatefulSet 控制器node 节点需要固定的主机名和固定的物理节点以及物理节点上的本地PV,所以需要使用 StatefulSet。kibana为无状态服务,使用deployment。二、修改 elasticsearch 镜像为了实现 ES 各个节点将数据进行统一存储并且根据目录名称原创 2020-11-09 10:33:49 · 6580 阅读 · 2 评论 -
ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp
使用 Pipeline 处理日志中的 @timestampFilebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的信息会全部添加到 message 字段中,但是这个时间是 Filebeat 采集日志的时间,不是日志生成的实际时间,所以为了便于检索日志,需要将 @timestamp 替换为 message 字段中的时间。这里使用的是 elasticseatch 提供的 pipeline 来进行替换。首先日志格式如下:20原创 2020-11-06 17:15:18 · 8228 阅读 · 0 评论