日志(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": "[email protected]"
}'
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 的基础语法和功能!

相关推荐
lichuangcsdn10 分钟前
【springcloud学习(dalston.sr1)】使用Feign实现接口调用(八)
学习·spring·spring cloud
柴薪之王、睥睨众生42 分钟前
(自用)Java学习-5.8(总结,springboot)
java·开发语言·spring boot·学习·mybatis
是孑然呀7 小时前
【小记】word批量生成准考证
笔记·学习·excel
ll77881110 小时前
C++学习之路,从0到精通的征途:继承
开发语言·数据结构·c++·学习·算法
LuckyLay11 小时前
React百日学习计划——Deepseek版
前端·学习·react.js
安和昂11 小时前
【iOS】SDWebImage源码学习
学习·ios
菜一头包11 小时前
c++ std库中的文件操作学习笔记
c++·笔记·学习
猴子请来的逗比48911 小时前
tomcat搭建内网论坛
学习·tomcat
belldeep11 小时前
如何阅读、学习 Git 核心源代码 ?
git·学习·源代码
Kazefuku12 小时前
python文件打包成exe文件
python·学习