标签:指定 lsa 插入数据 rda flush error 索引 协议 健康
比如我们这里为了收集 Kubernetes 节点上的所有容器日志,就需要做如下的日志源配置:
<source>
@id fluentd-containers.log
@type tail
path /var/log/containers/*.log
pos_file /var/log/fluentd-containers.log.pos
time_format %Y-%m-%dT%H:%M:%S.%NZ
tag raw.kubernetes.*
format json
read_from_head true
</source>
上面配置部分参数说明如下:
上面是日志源的配置,接下来看看如何将日志数据发送到 Elasticsearch:
<match **>
@id elasticsearch
@type elasticsearch
@log_level info
include_tag_key true
type_name fluentd
host "#{ENV[‘OUTPUT_HOST‘]}"
port "#{ENV[‘OUTPUT_PORT‘]}"
logstash_format true
<buffer>
@type file
path /var/log/fluentd-buffers/kubernetes.system.buffer
flush_mode interval
retry_type exponential_backoff
flush_thread_count 2
flush_interval 5s
retry_forever
retry_max_interval 30
chunk_limit_size "#{ENV[‘OUTPUT_BUFFER_CHUNK_LIMIT‘]}"
queue_limit_length "#{ENV[‘OUTPUT_BUFFER_QUEUE_LIMIT‘]}"
overflow_action block
</buffer>
日志数据是存放于 Elasticsearch POD中,但是默认情况下它使用的是emptyDir存储类型,所以当 POD被删除或重新调度时,日志数据也就丢失了。以下讲解使用NFS 服务器手动(静态)创建PV 持久化保存日志数据的例子。
ES数据写入原理
es建索引写入数据,数据最先是存在内存buffer里的,然后再刷入到lucene的底层文件segment中;
写入segment完毕后再执行refresh操作,refresh操作后,数据将commit到磁盘中。
数据刷入到了磁盘,就可以执行查询操作了。
ES数据持久化
如何创建NFS服务器参考:
https://github.com/easzlab/kubeasz/blob/master/docs/guide/nfs-server.md
ES索引操作
具体命令参考:https://blog.csdn.net/hong2511/article/details/81808517
查用的es操作命令(查询时以实际ip为准)
9200作为Http协议端口,用于节点和外部通讯。
9300作为Tcp协议端口,用于节点与节点之间、节点与TCPClient之间的通讯。
常用用_cat API检测集群是否健康。 确保9200端口号可用:curl localhost:9200/_cat/health?V
获取集群的节点列表:curl localhost:9200/_cat/nodes?V
列出所有索引:curl localhost:9200/_cat/indices?V
删除索引:
curl -XDELETE http://localhost:9200/twitter,my_index
curl -XDELETE http://localhost:9200/*
创建索引:
curl -XPUT ‘localhost:9200/customer?pretty‘
往集群索引中插入数据:
curl -XPUT ‘localhost:9200/customer/external/1?pretty‘ -d ‘
{
"name": "John Doe"
}‘
获取刚刚插入的数据curl -XGET ‘localhost:9200/customer/external/1?pretty‘
更新索引:
id为1数据的name字段更新为Jane Doe同时增加字段age为20
curl -XPOST ‘localhost:9200/customer/external/1/_update?pretty‘ -d ‘
{
"doc": { "name": "Jane Doe", "age": 20 }
}‘
索引操作的通用格式
curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>
<REST Verb>:REST风格的语法谓词
<Node>:节点ip
<port>:节点端口号,默认9200
<Index>:索引名
<Type>:索引类型
<ID>:操作对象的ID号
$ curl localhost:9200/_cat
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
EFK的学习(Elasticsearch + Fluentd+ Kibana)
标签:指定 lsa 插入数据 rda flush error 索引 协议 健康
原文地址:https://www.cnblogs.com/niewx5201314/p/11663115.html