当前位置: 首页 > article >正文

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

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.kler.cn/a/512468.html

相关文章:

  • 搭建Hadoop源代码阅读环境
  • uniapp(小程序、app、微信公众号、H5)预览下载文件(pdf)
  • 不用编程即可实现多台PLC的MQTT协议JSON文件发布与订阅的智能网关的配置说明
  • 计算机创造的奇迹——C语言
  • Unity Shader学习日记 part5 CG基础
  • 光谱相机如何还原色彩
  • 【每日一题】LeetCode - 最长公共前缀
  • WPF 使用webView显示浏览器网页
  • Edu邮箱免费获取Photoshop等设计软件
  • 第七篇:vue3 计算属性:computed
  • Golang Gin系列-3:Gin Framework的项目结构
  • 华宇TAS应用中间件与新支点多款软件及操作系统完成兼容互认证
  • BERT和Transformer模型有什么区别
  • knife4j 文档解析 application/x-www-form-urlencoded表单解析成post json
  • 大模型之三十三- 开源Melo 语音合成
  • 【2025】拥抱未来 砥砺前行
  • 【北京迅为】iTOP-4412全能版使用手册-第八十七章 安装Android Studio
  • 如何通过云计算优化网站性能?
  • Redis 7.0 I/O多线程模型:小红书高并发性能的幕后推手
  • 2024精编面试算法题类型之暴力枚举
  • 行人识别检测数据集,yolo格式,PASICAL VOC XML,COCO JSON,darknet等格式的标注都支持,准确识别率可达99.5%
  • RabbitMQ 高级特性
  • 3分钟看懂Android Studio下拉框组件
  • PyTorch使用教程(13)-一文搞定模型的可视化和训练过程监控
  • adb常用指令(完整版)
  • 记一次常规的网络安全渗透测试