ELK实现nginx、mysql、http的日志可视化实验

ELK(Elasticsearch, Logstash, Kibana)是一个强大的日志管理和分析平台,可以实现对nginx、mysql和http日志的可视化。本文将详细介绍如何配置ELK来实现这些日志的可视化。

一、环境准备

1. 安装Elasticsearch
复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz
cd elasticsearch-7.10.2
./bin/elasticsearch
2. 安装Logstash
复制代码
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.2.tar.gz
tar -xzf logstash-7.10.2.tar.gz
cd logstash-7.10.2
3. 安装Kibana
复制代码
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz
tar -xzf kibana-7.10.2-linux-x86_64.tar.gz
cd kibana-7.10.2-linux-x86_64
./bin/kibana

二、配置Logstash

Logstash需要配置文件来处理nginx、mysql和http日志。创建以下配置文件:

1. Nginx日志配置

在 logstash-7.10.2/config目录下创建文件 nginx.conf:

复制代码
input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "nginx-logs"
  }
  stdout { codec => rubydebug }
}
2. MySQL日志配置

在 logstash-7.10.2/config目录下创建文件 mysql.conf:

复制代码
input {
  file {
    path => "/var/log/mysql/mysql.log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{GREEDYDATA:log_message}" }
  }
  date {
    match => [ "timestamp" , "ISO8601" ]
    target => "@timestamp"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "mysql-logs"
  }
  stdout { codec => rubydebug }
}
3. HTTP日志配置

在 logstash-7.10.2/config目录下创建文件 http.conf:

复制代码
input {
  file {
    path => "/var/log/httpd/access_log"
    start_position => "beginning"
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => "@timestamp"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
    index => "http-logs"
  }
  stdout { codec => rubydebug }
}

三、启动Logstash

分别启动Logstash实例来处理不同的日志:

复制代码
cd logstash-7.10.2
bin/logstash -f config/nginx.conf
bin/logstash -f config/mysql.conf
bin/logstash -f config/http.conf
​

四、配置Kibana

1. 访问Kibana

打开浏览器,访问 http://localhost:5601,进入Kibana界面。

2. 创建Index Pattern

在Kibana中创建索引模式:

  • 进入 Management > Index Patterns。
  • 点击 Create Index Pattern。
  • 分别创建 nginx-logs、mysql-logs和 http-logs的索引模式。
3. 可视化日志数据

在Kibana的 Discover页面,可以选择不同的索引模式查看日志数据。你可以创建各种可视化,如饼图、柱状图和线图,来分析日志数据。

相关推荐
Random Glow11 分钟前
聚簇索引:为什么主键顺序决定插入性能
数据库·mysql·性能优化·innodb·索引
软件技术NINI12 分钟前
基于PHP和MySQL的快递代收点管理系统的设计与实现
开发语言·javascript·数据库·mysql·毕业设计·php·毕设
SelectDB技术团队23 分钟前
ClickHouse SQL 好学吗?从 MySQL 迁移 Doris 的完整兼容验证
人工智能·sql·mysql·clickhouse·开源·apache doris·增量计算
吹什么轩37 分钟前
MySQL 增删改查(CRUD)完全指南:从 INSERT 到 GROUP BY
数据库·mysql
国际云,接待1 小时前
云服务器 WebSocket 空闲后频繁断开:查 Nginx 超时、心跳与负载均衡,再评估扩容
服务器·websocket·nginx
为思念酝酿的痛1 小时前
MySQL表的约束
数据库·mysql
时间售卖铺1 小时前
MySQL存储过程流程控制全解析
运维·数据库·mysql·云原生
IT19959 小时前
Fail2Ban 防护 MySQL 实战|登录失败 3 次,IP 封禁 24 小时
数据库·mysql
paopaokaka_luck12 小时前
流浪动物救助与收养系统(DeepSeek AI对话、 ECharts多维分析、救助流程衔接、领养与回访衔接、 捐赠确认与公示、志愿者协作)
java·前端·javascript·人工智能·mysql·echarts·推荐算法
lzhdim13 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis