日志(elk stack)基础语法学习,零基础学习

devtools/2025/1/21 15:10:34/

ELK Stack 是一组开源的日志管理工具,包括 Elasticsearch、Logstash 和 Kibana。Elasticsearch 用于存储和搜索日志数据,Logstash 用于收集和处理日志数据,而 Kibana 提供了一个强大的可视化界面来分析和监控这些数据。以下是 ELK Stack 的基础语法学习资料。

1. 安装和配置

1.1 安装 Java

Elasticsearch 和 Logstash 都需要 Java 运行时环境(JRE)或 Java 开发工具包(JDK)。建议使用 OpenJDK 11 或更高版本。

  • 在 Ubuntu 上安装 OpenJDK 11

bash

sudo apt-get update
sudo apt-get install openjdk-11-jdk
  • 验证安装:

bash

java -version
1.2 安装 Elasticsearch
  • 下载并安装 Elasticsearch

bash

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elasticsearch.list'
sudo apt-get update && sudo apt-get install elasticsearch
  • 启动 Elasticsearch

bash

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
  • 验证安装

bash

curl -X GET "localhost:9200/"
1.3 安装 Logstash
  • 下载并安装 Logstash

bash

sudo systemctl start logstash
sudo systemctl enable logstash
1.4 安装 Kibana
  • 下载并安装 Kibana

bash

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/kibana.list'
sudo apt-get update && sudo apt-get install kibana
  • 启动 Kibana

bash

sudo systemctl start kibana
sudo systemctl enable kibana
  • 访问 Kibana 界面:打开浏览器,访问 http://<your_server_ip>:5601

2. 基本概念和配置

2.1 Elasticsearch
2.1.1 创建索引

bash

curl -X PUT "localhost:9200/my_index"
2.1.2 插入文档

bash

curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{"name": "John Doe","age": 30,"email": "john.doe@example.com"
}'
2.1.3 搜索文档

bash

curl -X GET "localhost:9200/my_index/_search?q=name:John"
2.1.4 删除索引

bash

curl -X DELETE "localhost:9200/my_index"
2.2 Logstash
2.2.1 配置文件示例

创建一个基本的 Logstash 配置文件 logstash.conf:

conf

input {file {path => "/path/to/your/logfile.log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch {hosts => ["localhost:9200"]index => "apache_logs-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }
}
2.2.2 启动 Logstash

bash

sudo /usr/share/logstash/bin/logstash -f /path/to/logstash.conf
2.3 Kibana
2.3.1 配置索引模式
  1. 打开 Kibana 界面。
  2. 导航到 Management -> Index Patterns
  3. 输入 apache_logs-* 并点击 Next step
  4. 选择时间字段 @timestamp 并点击 Create index pattern
2.3.2 查看数据

导航到 Discover 页面,你可以看到从 Logstash 收集的数据。

2.3.3 创建仪表板
  1. 导航到 Visualize 页面。
  2. 创建新的可视化图表(例如饼图、折线图等)。
  3. 将这些可视化图表添加到一个新的仪表板中。

3. 示例:完整的 ELK 流程

3.1 准备日志文件

假设你有一个 Apache 日志文件 /var/log/apache2/access.log,内容如下:

127.0.0.1 - - [20/Jun/2023:13:55:36 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
127.0.0.1 - - [20/Jun/2023:13:55:37 +0800] "GET /about HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
3.2 创建 Logstash 配置文件

conf

# logstash-apache.conf
input {file {path => "/var/log/apache2/access.log"start_position => "beginning"}
}filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}date {match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]}
}output {elasticsearch {hosts => ["localhost:9200"]index => "apache_logs-%{+YYYY.MM.dd}"}stdout { codec => rubydebug }
}
3.3 启动 Logstash

bash

sudo /usr/share/logstash/bin/logstash -f /path/to/logstash-apache.conf
3.4 在 Kibana 中查看数据
  1. 打开 Kibana 界面。
  2. 导航到 Management -> Index Patterns
  3. 输入 apache_logs-* 并点击 Next step
  4. 选择时间字段 @timestamp 并点击 Create index pattern
  5. 导航到 Discover 页面,查看解析后的日志数据。
  6. 导航到 Visualize 页面,创建图表并将它们添加到仪表板中。

通过以上步骤,你已经完成了从日志收集、处理到可视化的整个流程。希望这些内容能帮助你更好地理解和掌握 ELK Stack 的基础语法和功能!


http://www.ppmy.cn/devtools/152370.html

相关文章

Micrometer+Zipkin 分布式链路追踪

MicrometerZipkin 分布式链路追踪&#xff08;Distributed Tracing&#xff09;是一种用于监控和分析分布式系统性能的技术。它允许开发人员和运维人员追踪请求在分布式系统中的传播路径&#xff0c;包括跨服务调用、数据库访问、缓存查询等操作。通过分布式链路追踪&#xff0…

PHP企业微信SCRM社群营销系统

&#x1f3af; 企业微信SCRM——精准社群营销的智慧引擎&#xff0c;开启企业营销新纪元 &#x1f527; 技术基石&#xff0c;安全高效 企业微信SCRM&#xff0c;一款融合PHP与Uniapp技术的企业级社群营销系统&#xff0c;犹如一把精心磨砺的营销利剑&#xff0c;直击企业营销…

K8S中Pod控制器之ReplicaSet(RS)控制器

Pod控制器介绍 在Kubernetes中&#xff0c;Pod是最小的管理单元&#xff0c;用于运行容器。根据Pod的创建方式&#xff0c;可以将其分为两类&#xff1a; 自主式Pod&#xff08;Stateless Pods&#xff09;&#xff1a;这些Pod是直接由用户或管理员创建的&#xff0c;通常是通…

Flask简介与安装以及实现一个糕点店的简单流程

目录 1. Flask简介 1.1 Flask的核心特点 1.2 Flask的基本结构 1.3 Flask的常见用法 1.3.1 创建Flask应用 1.3.2 路由和视图函数 1.3.3 动态URL参数 1.3.4 使用模板 1.4 Flask的优点 1.5 总结 2. Flask 环境创建 2.1 创建虚拟环境 2.2 激活虚拟环境 1.3 安装Flask…

模板编辑器(PHP)(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…

远程桌面使用是TCP还是UDP?

什么是TCP和UDP&#xff1f; “远程桌面是使用TCP还是UDP协议&#xff1f;我通常在Windows Server 2012 R2服务器上使用远程桌面协议&#xff08;RDP&#xff09;进行连接&#xff0c;最近有些好奇&#xff0c;RDP到底是通过UDP 3389端口还是TCP 3389端口来建立远程会话的&…

【gin】gin中使用protbuf消息传输go案例

在 Gin 中使用 Protobuf 进行高效消息传输 Protobuf&#xff08;Protocol Buffers&#xff09;是一种高效的二进制序列化协议&#xff0c;广泛用于高性能场景的数据传输。相比 JSON&#xff0c;Protobuf 具有更小的体积和更快的解析速度&#xff0c;非常适合服务间通信或前后端…

车载测试和相关面试

资源放下面啦&#xff01; 记得关注❤️&#xff5e;持续分享更多资源 永久链接&#xff1a;https://pan.quark.cn/s/cf64f687a12f