日志(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

bash 复制代码
sudo apt-get update
sudo apt-get install openjdk-11-jdk
  • 验证安装:

bash

bash 复制代码
java -version
1.2 安装 Elasticsearch
  • 下载并安装 Elasticsearch

bash

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

bash 复制代码
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
  • 验证安装

bash

bash 复制代码
curl -X GET "localhost:9200/"
1.3 安装 Logstash
  • 下载并安装 Logstash

bash

bash 复制代码
sudo systemctl start logstash
sudo systemctl enable logstash
1.4 安装 Kibana
  • 下载并安装 Kibana

bash

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

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

2. 基本概念和配置

2.1 Elasticsearch
2.1.1 创建索引

bash

bash 复制代码
curl -X PUT "localhost:9200/my_index"
2.1.2 插入文档

bash

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

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

bash

bash 复制代码
curl -X DELETE "localhost:9200/my_index"
2.2 Logstash
2.2.1 配置文件示例

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

conf

bash 复制代码
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

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,内容如下:

bash 复制代码
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

bash 复制代码
# 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

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 的基础语法和功能!

相关推荐
wdfk_prog16 分钟前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
i.ajls18 分钟前
无监督学习,推荐系统以及强化学习笔记
笔记·学习·机器学习
dragoooon3426 分钟前
[优选算法专题二滑动窗口——串联所有单词的子串]
数据结构·c++·学习·算法·leetcode·学习方法
向阳花开_miemie31 分钟前
Android音频学习(十七)——音频数据流转
学习·音视频
Brookty1 小时前
【算法】双指针(二)复写零
学习·算法
滴滴滴嘟嘟嘟.2 小时前
Qt UDP通信学习
qt·学习·udp
努力的小帅2 小时前
C++_哈希
开发语言·c++·学习·算法·哈希算法·散列表
zzZ65652 小时前
支持向量机(SVM)学习报告
学习·机器学习·支持向量机
Hello_Embed12 小时前
STM32HAL 快速入门(十九):UART 编程(二)—— 中断方式实现收发及局限分析
笔记·stm32·单片机·嵌入式硬件·学习
天上的光12 小时前
关于学习的一些感悟
学习