1. 首页 > IT综合教程 > 正文

it教程FG156-ELK基础

内容大纲

ELK概述

ELK是Elasticsearch、Logstash和Kibana的组合,用于日志收集、存储和可视化,学习交流加群风哥微信: itpux-com。

ELK的组成

  • Elasticsearch:分布式搜索引擎,用于存储和检索数据
  • Logstash:日志收集和处理工具,用于从不同来源收集数据并进行转换
  • Kibana:数据可视化工具,用于展示Elasticsearch中的数据

ELK的应用场景

  • 日志管理:收集、存储和分析系统日志
  • 监控:监控系统和应用的运行状态
  • 安全分析:分析安全日志,检测异常
  • 业务分析:分析业务数据,提供决策支持

Elasticsearch基础

Elasticsearch概述

Elasticsearch是一个基于Lucene的分布式搜索引擎,具有高可用性、可扩展性和实时搜索能力。

Elasticsearch核心概念

  • 索引(Index):类似数据库中的数据库
  • 类型(Type):类似数据库中的表(在Elasticsearch 7.x中已废弃)
  • 文档(Document):类似数据库中的行
  • 字段(Field):类似数据库中的列
  • 节点(Node):Elasticsearch集群中的服务器
  • 集群(Cluster):由多个节点组成的Elasticsearch实例

安装Elasticsearch

# 下载Elasticsearch
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz

# 解压
$ tar -xzf elasticsearch-7.14.0-linux-x86_64.tar.gz

# 启动Elasticsearch
$ cd elasticsearch-7.14.0
$ ./bin/elasticsearch

[2026-04-02T10:00:00,000][INFO ][o.e.n.Node ] [node-1] starting …
[2026-04-02T10:00:01,000][INFO ][o.e.t.TransportService ] [node-1] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2026-04-02T10:00:01,000][INFO ][o.e.c.s.MasterService ] [node-1] elected-as-master ([1] nodes joined)
[2026-04-02T10:00:01,000][INFO ][o.e.h.AbstractHttpServerTransport] [node-1] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2026-04-02T10:00:01,000][INFO ][o.e.n.Node ] [node-1] started

Elasticsearch基本操作

创建索引

# 创建索引
$ curl -X PUT “fgedudb:9200/test_index”

添加文档

# 添加文档
$ curl -X POST “fgedudb:9200/test_index/_doc” -H “Content-Type: application/json” -d ‘{
“name”: “测试文档”,
“content”: “这是一个测试文档”,
“date”: “2026-04-02”
}’

查询文档

# 查询所有文档
$ curl -X GET “fgedudb:9200/test_index/_search”

# 按条件查询
$ curl -X GET “fgedudb:9200/test_index/_search” -H “Content-Type: application/json” -d ‘{
“query”: {
“match”: {
“name”: “测试”
}
}
}’

Logstash基础

Logstash概述

Logstash是一个开源的数据收集和处理工具,用于从不同来源收集数据,进行转换,然后输出到目标系统。

Logstash架构

  • 输入(Input):从不同来源收集数据
  • 过滤器(Filter):对数据进行处理和转换
  • 输出(Output):将处理后的数据输出到目标系统

安装Logstash

# 下载Logstash
$ wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz

# 解压
$ tar -xzf logstash-7.14.0-linux-x86_64.tar.gz

Logstash配置示例

# 简单的Logstash配置
input {
file {
path => “/var/log/syslog”
start_position => “beginning”
}
}

filter {
grok {
match => { “message” => “%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{DATA:process}: %{GREEDYDATA:message}” }
}
date {
match => [ “timestamp”, “MMM d HH:mm:ss”, “MMM dd HH:mm:ss” ]
}
}

output {
elasticsearch {
hosts => [“fgedudb:9200”]
index => “syslog-%{+YYYY.MM.dd}”
}
stdout {
codec => rubydebug
}
}

运行Logstash

# 运行Logstash
$ cd logstash-7.14.0
$ ./bin/logstash -f config/syslog.conf

Kibana基础

Kibana概述

Kibana是一个开源的数据可视化工具,用于展示Elasticsearch中的数据,风哥风哥提示:Kibana提供了丰富的可视化组件,如仪表盘、图表等。

安装Kibana

# 下载Kibana
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz

# 解压
$ tar -xzf kibana-7.14.0-linux-x86_64.tar.gz

# 启动Kibana
$ cd kibana-7.14.0-linux-x86_64
$ ./bin/kibana

[2026-04-02T10:00:00.000] [info][server][Kibana][http] http server running at http://fgedudb:5601

Kibana使用

  1. 访问Kibana:http://fgedudb:5601
  2. 创建索引模式:管理 > 索引模式 > 创建索引模式
  3. 查看数据:发现
  4. 创建可视化:可视化
  5. 创建仪表盘:仪表盘

ELK部署与配置

单节点部署

适合测试环境和小型部署。

集群部署

适合生产环境,提供高可用性和可扩展性。

Elasticsearch集群配置

# elasticsearch.yml配置
cluster.name: fgedu-cluster
node.name: node-1
path.data: /data/elasticsearchath.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: [“node-1”, “node-2”, “node-3”]
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]

使用Docker部署ELK

# docker-compose.yml
version: ‘3’
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
environment:
– discovery.type=single-node
– ES_JAVA_OPTS=-Xms512m -Xmx512m
ports:
– 9200:9200
volumes:
– es_data:/usr/share/elasticsearch/data
logstash:
image: docker.elastic.co/logstash/logstash:7.14.0
volumes:
– ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
ports:
– 5044:5044
depends_on:
– elasticsearch
kibana:
image: docker.elastic.co/kibana/kibana:7.14.0
ports:
– 5601:5601
depends_on:
– elasticsearch

volumes:
es_data:

启动Docker容器

# 启动容器
$ docker-compose up -d

# 查看容器状态
$ docker-compose ps

最佳实践

ELK最佳实践

  • 合理规划索引:使用时间索引,定期清理旧数据
  • 优化Elasticsearch性能:调整堆内存、分片数量等
  • 使用Logstash过滤器:合理使用grok、date等过滤器
  • 配置Kibana:创建合适的可视化和仪表盘
  • 监控ELK集群:使用Elasticsearch的监控功能
  • 备份数据:定期备份Elasticsearch数据

性能优化

  • Elasticsearch:调整堆内存、分片数量、刷新间隔等
  • Logstash:使用多管道、调整批处理大小等
  • Kibana:优化查询、使用缓存等

安全配置

  • 启用X-Pack安全功能
  • 配置访问控制
  • 使用HTTPS
  • 定期更新密码
生产环境风哥建议:

  • 使用ELK集群,确保高可用性
  • 合理规划存储空间,定期清理旧数据
  • 监控ELK集群的运行状态
  • 配置适当的安全措施
  • 定期备份数据
  • 优化查询性能,避免全表扫描

更多学习教程www.fgedu.net.cn

学习交流加群风哥QQ113257174

更多学习教程公众号风哥教程itpux_com

author:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息