目录
- 一.ElasticStack及EFK架构梳理
- 1.什么是ElasticStack
- 2.EFK架构图解
- 二.ElasticSearch环境部署
- 1.ElasticSearch单点部署
- 2.ElasticSearch集群部署
- 三.ES集群术语及DSL语句初体验
- 1.ES集群的相关术语
- 2.ES相关的面试题❗️
- 3.ES集群的DSL语句初体验
- 四.Kibana组件部署
- 1.部署kibana组件
- 2.kibana基础使用
- 五.Filebeat环境部署实战
- 1.部署Filebeat环境
- 2.Filebeat采集文本日志实战
- 3.练习-Filebeat采集nginx案例
- 六.EFK架构采集nginx实战案例
- 1.EFK架构采集nginx日志
- 2.Filebeat模块管理实战
- 2.1 查看模块
- 2.2 启动模块
- 2.3 禁用模块
- 2.4 底层逻辑验证
- 3.filebeat基于模块采集nginx日志
- 3.1 准备nginx的访问日志
- 3.2 编写Filebeat的模块文件
- 3.3 编写Filebeat的配置文件
- 3.4 启动Filebeat实例
- 3.5 kibana查询相关的字段
- 3.6 过滤数据
- 七.Filebeat多实例
- 八.今日内容回顾及作业
一.ElasticStack及EFK架构梳理
1.什么是ElasticStack
- ElasticStack是elastic公司推出的一系列技术栈。
- 早期ElasticStack的前身,有一个很火的名词叫ELK,代表的是该公司的三款日志采集方案的技术栈。
- - ElasticSearch
- 是一款分布式高可用的数据库,主要作用就是存储和检索数据。
- 简称ES集群。
- - Logstash
- 是一款日志分析处理工具,主要对数据进行过滤,处理,转换等相关操作,将处理后的数据写入ES集群。
- - Kibana
- 需要链接ES集群,可以图形化查询ES集群数据。简化查询过程。
-
- 后来,logstash相对来说比较重量级,业界开始使用其他的日志采集工具进行替代(比如Fluentd,Flume等),官方也推出了轻量级解决方案,beats组件,其中比较出名的就是Filebeat,主要是用于日志文件采集。
- 于是起名字就成了一个问题,有的公司使用ELFK架构,EFK架构,ELK架构,后来官方将elk stack更名为elasticstack。
- 官方文档:
- https://www.elastic.co/cn/
- "ES8-"版本技术文档:
- https://www.elastic.co/guide/index.html
复制代码 2.EFK架构图解
- 如图所示,EFK架构是业界目前主流的一种日志采集解决方案。
复制代码 二.ElasticSearch环境部署
1.ElasticSearch单点部署
- 环境准备:ubantu操作系统
- 10.0.0.91 elk1
- 10.0.0.92 elk2
- 10.0.0.93 elk3
- 为避免权限问题,进入系统后均用root用户操作❗️
- 1.进入ubantu系统
- 2.设置root密码
- sudo passwd root #设置密码为1
- 3.切换到root用户
- su - root
复制代码- 1.下载ES软件包
- kylin环境和centos环境
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.29-x86_64.rpm
- ubantu环境
- wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.29-amd64.deb
- [root@elk91 ~]# wget http://192.168.14.253/Resources/ElasticStack/softwares/ES7/7.17.29/elasticsearch-7.17.29-amd64.deb
- 2.安装并解压ES软件包
- [root@elk91 ~]# ll elasticsearch-7.17.29-amd64.deb
- -rw-r--r-- 1 root root 325488012 Aug 27 2025 elasticsearch-7.17.29-amd64.deb
- [root@elk91 ~]# dpkg -i elasticsearch-7.17.29-amd64.deb
- 3.修改ES的配置文件
- [root@elk91 ~]# vim /etc/elasticsearch/elasticsearch.yml
- # 对外暴露ES的IP地址
- network.host: 0.0.0.0
- # 表示当前ES是一个单点,而非集群
- discovery.type: single-node
- 4.启动ES服务
- [root@elk91 ~]# systemctl start elasticsearch.service
- [root@elk91 ~]# ss -ntl | egrep "92|300" # 可能会有几秒的延迟才会显示出来
- LISTEN 0 4096 *:9300 *:*
- LISTEN 0 4096 *:9200 *:*
- 端口说明:
- 9200:
- 支持http|https协议,主要是集群外部提供服务的端口。
- 9300:
- 使用的是tcp协议,主要是用于ES集群数据内部传输的端口。
- 5.测试验证
- [root@elk91 ~]# curl 10.0.0.91:9200
- {
- "name" : "elk91",
- "cluster_name" : "elasticsearch",
- "cluster_uuid" : "QtOwSp-jTMms3YweEq47-Q",
- "version" : {
- "number" : "7.17.29",
- "build_flavor" : "default",
- "build_type" : "deb",
- "build_hash" : "580aff1a0064ce4c93293aaab6fcc55e22c10d1c",
- "build_date" : "2025-06-19T01:37:57.847711500Z",
- "build_snapshot" : false,
- "lucene_version" : "8.11.3",
- "minimum_wire_compatibility_version" : "6.8.0",
- "minimum_index_compatibility_version" : "6.0.0-beta1"
- },
- "tagline" : "You Know, for Search"
- }
- [root@elk91 ~]# curl 10.0.0.91:9200/_cat/nodes
- 10.0.0.91 8 97 5 0.09 0.10 0.04 cdfhilmrstw * elk91
复制代码 2.ElasticSearch集群部署
[code] 1.停止ES单点[root@elk91 ~]# systemctl stop elasticsearch.service [root@elk91 ~]# ss -ntl | egrep "92|300" 2.修改ES的配置文件[root@elk91 ~]# vim /etc/elasticsearch/elasticsearch.yml[root@elk91 ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml cluster.name: oldboyedu-linux102-clusterpath.data: /var/lib/elasticsearchpath.logs: /var/log/elasticsearchnetwork.host: 0.0.0.0discovery.seed_hosts: ["10.0.0.91", "10.0.0.92","10.0.0.93"]cluster.initial_master_nodes: ["10.0.0.91", "10.0.0.92","10.0.0.93"]相关参数说明 cluster.name 指定集群的名称,ES所有节点必须指定同样的名称,否则无法加入集群。 path.data: 数据存储路径。 path.logs: 日志存储路径。 network.host: 对外监听的地址。 discovery.seed_hosts: 分布式集群的主机列表。 cluster.initial_master_nodes 参数master选举的列表。 3.清空之前的数据[root@elk91 ~]# rm -rf /var/{log,lib}/elasticsearch/*[root@elk91 ~]# ll /var/{log,lib}/elasticsearch/ # 必须显示以下内容,才算成功!/var/lib/elasticsearch/:total 8drwxr-s--- 2 elasticsearch elasticsearch 4096 Oct 29 11:36 ./drwxr-xr-x 61 root root 4096 Oct 29 10:08 ..//var/log/elasticsearch/:total 8drwxr-s--- 2 elasticsearch elasticsearch 4096 Oct 29 11:36 ./drwxrwxr-x 10 root syslog 4096 Oct 29 10:08 ../ 4.分发软件包(确保elk91的根目录下有这个压缩包)[root@elk91 ~]# scp elasticsearch-7.17.29-amd64.deb 10.0.0.92:~[root@elk91 ~]# scp elasticsearch-7.17.29-amd64.deb 10.0.0.93:~ ——————————————————————————无法传输解决方案——————————————————————————优先配置1:①.更改ssh配置文件,允许远程登录vim /etc/ssh/sshd_config,将 PermitRootLogin 改为 yes。②.重启 SSH 服务systemctl restart ssh。③.注意❗️三台机器都需要更改配置❗️即10.0.0.91-elk1 , 10.0.0.92-elk2 , 10.0.0.93-elk3 额外配置2:(启动ES服务时可能会用到)如果还是不能使用scp,就配置一下文件权限Elasticsearch 不能使用 root 用户运行,它必须使用 elasticsearch 用户。如果数据目录或日志目录的归属权不对,也会启动失败。# 确保数据目录和日志目录属于 elasticsearch 用户sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearchsudo chown -R elasticsearch:elasticsearch /var/log/elasticsearchsudo chown -R elasticsearch:elasticsearch /etc/elasticsearch注意❗️三台机器都需要更改配置❗️即10.0.0.91-elk1 , 10.0.0.92-elk2 , 10.0.0.93-elk3——————————————————————————————————————————————————————————————————— 5.其他节点安装ES服务[root@elk92 ~]# dpkg -i elasticsearch-7.17.29-amd64.deb [root@elk93 ~]# dpkg -i elasticsearch-7.17.29-amd64.deb 6.同步配置文件[root@elk91 ~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.92:/etc/elasticsearch/[root@elk91 ~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.93:/etc/elasticsearch/ 7.同时启动ES服务【否则可能会脑裂】# 小窍门:使用Alt加上数字键
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |