04_es原理&filebeat使用

04_es原理&filebeat使用

倒排 索引技术

  • 源数据

    1001 My name is Jason Yin, I love linux, .... 10w+
    1002 My name is oldboy, I love sixiangke, .... 20w+
    1003 I love kafka, .... 30w+

  • 倒排索引技术

    倒排索引技术:(倒排表)
    My:
    - 1001 20 count : 8分
    - 1002 300 count : 100分
    ...
    name
    - 1001
    - 1002
    ..
    is
    Jason
    Yin
    I
    love
    linux

问题:分片底层是如何工作的

分片底层对应的是一个Lucene库,而Lucene库底层使用的是倒排索引技术

常用的角色说明:

data node:

指的是存储数据的节点。

node.data: true

复制代码
master node:
    控制ES集群,并维护集群的状态(cluster state,包括节点信息,索引信息等,ES集群每个节点都有一份)。
    node.master: true

coordinating:
    协调节点可以处理请求的节点,ES集群所有的节点均为协调节点,该角色无法取消。

master角色和data角色分离实战

  1. 停止所有节点的es服务,清空文件数据

    systemctl stop

    [root@localhost ~]# rm -rf /var/log/elasticsearch/*
    [root@localhost ~]# rm -rf /var/lib/elasticsearch/*

  2. 修改配置文件

    [root@elk101.oldboyedu.com ~]# yy /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
    ...
    cluster.initial_master_nodes: ["elk103.oldboyedu.com"]
    node.data: true
    node.master: false
    [root@elk101.oldboyedu.com ~]#

    [root@elk102.oldboyedu.com ~]# yy /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
    ...
    cluster.initial_master_nodes: ["elk103.oldboyedu.com"]
    node.data: true
    node.master: false
    [root@elk102.oldboyedu.com ~]#

    [root@elk103.oldboyedu.com ~]# yy /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
    ...
    cluster.initial_master_nodes: ["elk103.oldboyedu.com"]
    node.data: false
    node.master: true
    [root@elk103.oldboyedu.com ~]#

  3. 启动集群

    systemctl start elasticsearch

  4. 验证

    [root@localhost elasticsearch]# curl 10.0.0.101:9200/_cat/nodes
    10.0.0.103 20 96 1 0.02 0.13 0.12 ilmr * node-103
    10.0.0.101 14 95 1 0.09 0.17 0.13 cdfhilrstw - node-101
    10.0.0.102 35 96 1 0.18 0.19 0.14 cdfhilrstw - node-102

  5. 创建索引,观察elk103是否能过存储分片

    PUT 10.0.0.101:9200/oldboyedu-linux85
    {
    "settings":{
    "number_of_shards": 10,
    "number_of_replicas":0
    }
    }

分片数量不要设置过道

官方建议

1G->20个分片,求实怎么用是自己的事

es文档写入流程

文档的读取流程

filebeat(数据采集)

下载

复制代码
基于二进制安装filebeat
	(1)下载filebeat软件包
wget http://192.168.15.253/ElasticStack/day04-/filebeat-7.17.5-linux-x86_64.tar.gz

	(2)解压软件包
tar xf filebeat-7.17.5-linux-x86_64.tar.gz -C /oldboyedu/softwares/

	(3)验证filebeat安装是否成功
cd /oldboyedu/softwares/filebeat-7.17.5-linux-x86_64/
ln -svf `pwd`/filebeat /usr/local/sbin/
filebeat -h

(1)创建工作目录
cd /oldboyedu/softwares/filebeat-7.17.5-linux-x86_64
mkdir config


	(2)编写配置文件
[root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# cat config/01-stdin-to-console.yaml
# 配置filebeat的输入端
filebeat.inputs:
  # 指定输入端的类型为标准输入
- type: stdin


# 指定filebeat的输出端为console
output.console:
  # 表示输出的内容以漂亮的格式显示
  pretty: true
[root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# 


	(3)启动filebeat的实例
filebeat -e -c config/01-stdin-to-console.yaml 
  • 查看filebeat 的查看帮助信息 filebeat -h

使用filebeat

input-输入

-c 指定文件

-e 以当前终端输出

复制代码
(3)启动filebeat的实例
filebeat -e -c config/01-stdin-to-console.yaml 

input插件

**

log-input

复制代码
	(1)编写配置文件
[root@elk103.oldboyedu.com filebeat-7.17.5-linux-x86_64]# cat config/03-log-to-console.yaml 
filebeat.inputs:
  # 指定输入类型是log
- type: log
  # 指定文件路径
  paths:
    - /tmp/oldboyedu-linux85/*.log
    - /tmp/oldboyedu-linux85/*/*.json
    # 注意,两个*可以递归匹配
    - /tmp/oldboyedu-linux85/**/*.exe

# 指定filebeat的输出端为console
output.console:
  # 表示输出的内容以漂亮的格式显示
  pretty: true
  • 运行这个文件

    [root@localhost filebeat-7.17.5-linux-x86_64]# filebeat -e -c config/03-log-to-console.yaml

使用filebeat采集nginx日志

  • 安装nginx(这里大家都会我这里就不写了)

  • 配置filebeat采集nginx的日志文件

  • 这里使用的是log的input插件

  • 详细写法

    filebeat.inputs:

    • type: log
      paths:

      指定文件的存放路径

      • /var/log/nginx/access.log

    输出输出在终端

    output.console:
    pretty: true

  • 启动filebeat

    filebeat -e -c config/04-nginx-to-console.yaml

小结

相关推荐
科技小花5 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
weixin_370976357 小时前
AI的终极赛跑:进入AGI,还是泡沫破灭?
大数据·人工智能·agi
小江的记录本8 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
一切皆是因缘际会9 小时前
AI数字分身的底层原理:破解意识、自我与人格复刻的核心难题
大数据·人工智能·ai·架构
上海光华专利事务所9 小时前
跨境电商商标专利管理平台
大数据·产品运营
Elastic 中国社区官方博客10 小时前
ES|QL METRICS_INFO 和 TS_INFO:为你的时间序列数据建立目录
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索
jinanwuhuaguo11 小时前
(第二十七篇)OpenClaw四月的演化风暴:OpenClaw 2026年4月全版本更新的文明级解读
大数据·人工智能·架构·kotlin·openclaw
清晨00111 小时前
工业生产实时数据获取方案-TDengine
大数据·时序数据库·tdengine
极创信息12 小时前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
Elastic 中国社区官方博客12 小时前
Elastic 和 Cursor 合作 加速 上下文工程 与 coding agents
大数据·人工智能·elasticsearch·搜索引擎·全文检索