前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Learning ELK Stack》8 构建完整的ELK技术栈

《Learning ELK Stack》8 构建完整的ELK技术栈

作者头像
yeedomliu
发布2020-07-07 10:29:42
4060
发布2020-07-07 10:29:42
举报
文章被收录于专栏:yeedomliuyeedomliu

8 构建完整的ELK技术栈


输入数据集

  • 像这样的nginx访问日志
代码语言:javascript
复制
172.30.0.8 - - [26/Jun/2020:14:39:30 +0800] "GET //app/app/access_token?app_id=ce571941c2b7e4fb&rand=IRWDg_qd8LQk7ovExvLR8h8dBntkwYEW&signature=cf28da70ed09fff4d6d4e72ffe5baa0a56df2695 HTTP/1.1" 500 87 "-" "Yii2-Curl-Agent" "-"
172.30.0.5 - - [26/Jun/2020:14:39:30 +0800] "GET /devops/app/main?app_id=ce571941c2b7e4fb HTTP/1.0" 302 0 "http://local.fn.wiiqq.com/fn//devops/app/list?auth_code=zgqFYeJ6iuN2zoocxal7Cr6oPCQNz__Z&state=wii" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" "172.30.0.1"
  • 格式如下
代码语言:javascript
复制
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

配置Logstash输入

  • Logstashnginx的访问日志中读取数据,并在Elasticsearch中为日志创建索引,过程中还会根据grok模式对日志进行过滤和字段提取

访问日志的Grok表达式

  • Logstash安装包中已经包含了一些常用grok表达式。可在github上查看

https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

  • apache通用格式日志的grok模式如下
代码语言:javascript
复制
input {
    file {
        path => "/var/log/nginx/access.log"
        start_position => "beginning"
    }
}
filter {
    grok {
        match => { "message" => "%{COMMONAPACHELOG}" }
    }
    date {
        match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
    }
    mutate {
        convert => ["response", "integer"]
        convert => ["bytes", "integer"]
    }
}
output {
    elasticsearch {
        hosts=>"localhost"
    }
}
  • 指定grok模式进行匹配,为消息分配时间戳字段,并根据需要转换某些字段的数据类型
代码语言:javascript
复制
bin/logstash -f logstash.conf
  • 运行logstash,可以在控制台看到类似下面的输出

Kibana可视化

运行Kibana

  • 运行kibana并打开http://localhost:5601
代码语言:javascript
复制
bin/kibana

在搜索页进行搜索

  • 如要查找一个指定ip

可视化-图表

创建折线图

  1. 类型:折线图
  2. Y轴:Count
  3. X轴:Date Histogram

创建区域图

  1. 类型:区域图
  2. Y轴:度量:AverageFieldbytes
  3. X轴:Date Histogram

创建柱状图

  1. 类型:柱状图
  2. Y轴:度量:Count
  3. X轴:Date Histogram
  4. Split Series:字段为clientip进行子聚合

创建Guage

  1. 类型:Guage
  2. Y轴:度量:Count

仪表盘页面

  • 创建个新dashboard
  • 添加可视化组件
  • 添加完组件并保存
  • 还可以使用分享按钮分享仪表盘,如果要在其他应用程序中嵌入仪表盘,也有相应的代码
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 yeedomliu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 8 构建完整的ELK技术栈
    • 输入数据集
      • 配置Logstash输入
        • 访问日志的Grok表达式
      • Kibana可视化
        • 运行Kibana
        • 在搜索页进行搜索
        • 可视化-图表
        • 创建折线图
        • 创建区域图
        • 创建柱状图
        • 创建Guage
        • 仪表盘页面
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档