elk收集分析nginx日志,并绘制图形
一、修改nginx配置
把nginx日志修改成json格式,在nginx.conf中添加如下内容,重启nginx。
log_format log_json '{"@timestamp":"$time_iso8601",'
'"http_host":"$http_host",'
'"clientip":"$remote_addr",'
'"request":"$request",'
'"status":"$status",'
'"size":"$body_bytes_sent",'
'"upstream_addr":"$upstream_addr",'
'"upstream_status":"$upstream_status",'
'"upstream_response_time":"$upstream_response_time",'
'"request_time":"$request_time",'
'"http_referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"http_x_forwarded_for":"$http_x_forwarded_for"}';
二、安装logstash
打开国内加速下载地址 https://mirrors.huaweicloud.com/logstash/ 安装你想要的版本,适合的操作系统。我的centos7直接下载rpm包后rpm -ivh logstash-7.17.2-x86_64.rpm

三、添加logstash配置
进入/etc/logstash/conf.d 添加nginx.conf配置,需要注意的是索引名字必须为logstash开头,在绘制地图图形的时候才可以正常使用。
input {
file {
path => "/www/wwwlogs/*access"
start_position => "end"
exclude => "*.gz"
type => "access_log"
}
file {
path => "/www/wwwlogs/*error"
start_position => "end"
exclude => "*.gz"
type => "error_log"
}
}
filter {
json {
source => "message"
}
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
database =>"/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-geoip-7.2.12-java/vendor/GeoLite2-City.mmdb"
add_field => ["[geoip][coordinates]","%{[geoip][longitude]}"] # 获取经度
add_field => ["[geoip][coordinates]","%{[geoip][latitude]}"] # 获取纬度
fields => ["country_name","region_name","location"]
}
mutate {
convert => ["[geoip][coordinates]","float"] # 修改经纬度为浮点数
}
}
output {
#stdout {
# codec => rubydebug
#}
if "access_log" in [type] {
elasticsearch {
hosts => ["10.128.0.116:9200"]
index => "logstash-nginx-access-%{+YYYY.MM.dd}"
}
}
if "error_log" in [type] {
elasticsearch {
hosts => ["10.128.0.116:9200"]
index => "logstash-nginx-error-%{+YYYY.MM.dd}"
}
}
}
四、安装elasticsearch kibana
方法同上,自己看着弄吧。记得优化kibana启动内存,elasticsearch的jvm.options配置,免得太卡。
五、配置kibana索引模式

把索引名字命名为logstash-nginx-access*保存。

六、配置实时日志流
如图所示配置,更新源后。右上角可以设置实时读取日志流。此步骤不影响第七步骤内容,可以忽略。

七、配置nginx日志的可视化

1.首选创建一个最高大上的地图可视化,选择坐标地图。

此图要求索引名字以logstash-开头,否则存储桶中字段报错。

按上图设置后,右上角保存。
2.创建状态码饼状图


3.创建nginx访问排序。
由于nginx中通常会获取到多个IP地址,获取到的代理IP理论上大于真实IP地址。所以这次要做两个桶,让他们形成包含关系,大桶装小桶。

Y轴仍然是计数,X轴为获取到代理IP关键词,X轴为大桶,统计前20个IP。

拆分序列为小桶

elk收集分析nginx日志,并绘制图形的更多相关文章
- elk收集分析nginx access日志
elk收集分析nginx access日志 首先elk的搭建按照这篇文章使用elk+redis搭建nginx日志分析平台说的,使用redis的push和pop做队列,然后有个logstash_inde ...
- elk实战分析nginx日志文档
elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...
- elk平台分析nginx日志的基本搭建
一.elk套件介绍 ELK 由 ElasticSearch . Logstash 和 Kiabana 三个开源工具组成.官方网站: https://www.elastic.co/products El ...
- elk 入门 - 分析nginx日志 + json格式 + 有调试的意识 + elk7.2.0
1.本次采用的一台主机,将所有的软件安装一台上进行测试工作. 2.安装部署:https://blog.51cto.com/hwg1227/2299995 3.简单调试 输出rubydebug inpu ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- 使用elk+redis搭建nginx日志分析平台
elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态 ...
- 使用Docker快速部署ELK分析Nginx日志实践
原文:使用Docker快速部署ELK分析Nginx日志实践 一.背景 笔者所在项目组的项目由多个子项目所组成,每一个子项目都存在一定的日志,有时候想排查一些问题,需要到各个地方去查看,极为不方便,此前 ...
- 使用elk+redis搭建nginx日志分析平台(引)
http://www.cnblogs.com/yjf512/p/4199105.html elk+redis 搭建nginx日志分析平台 logstash,elasticsearch,kibana 怎 ...
- 使用Docker快速部署ELK分析Nginx日志实践(二)
Kibana汉化使用中文界面实践 一.背景 笔者在上一篇文章使用Docker快速部署ELK分析Nginx日志实践当中有提到如何快速搭建ELK分析Nginx日志,但是这只是第一步,后面还有很多仪表盘需要 ...
- ELK+Redis 解析Nginx日志
一.ELK简介 Elk是指logstash,elasticsearch,kibana三件套,我们一般使用它们做日志分析. ELK工作原理图: 简单来讲ELK具体的工作流程就是客户端的logstash ...
随机推荐
- Note - 速通 NPC?有限域算术!
浅谈有限域在 OI 中的一些应用 (2023 国家集训队论文), 戚朗瑞. \(\textbf{Example 1.}\) 给定一张有向图 \(G=(V,E)\), \(|V|=n\), \( ...
- Redis 实战篇——Redis 客户端(Jedis,Luttece,Redisson)
一.Jedis,Redisson,Lettuce三者的区别 共同点:都提供了基于Redis操作的Java API,只是封装程度,具体实现稍有不同. 不同点: 1.1.Jedis 是Redis的Java ...
- MySQL为Null导致的四大坑
"兵马未动粮草先行",看完了相关的配置之后,我们先来创建一张测试表和一些测试数据. -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; ...
- nginx中的正则表达式,location路径匹配规则和优先级
前言,我这里验证的nginx-v1.23.2单机环境下的nginx中的正则表达式.location路径匹配规则和优先级. 先准备好环境,基础配置是这样 nginx/conf/conf.d/host.c ...
- 【译】我们最喜欢的2024年的 Visual Studio 新功能
去年,Visual Studio 团队发布了许多新的面向开发人员的改进和 AI 集成,其中许多直接来自您在开发者社区的反馈.在这篇文章中,我们将重点介绍2024年团队最喜欢的功能,这些功能可以提高生产 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- JMeter下载与环境配置
前置 使用JMeter前需要先配置好Java的环境变量,不会的朋友可以阅读:https://www.cnblogs.com/test-gang/p/18144441 JMeter下载 JMeter官网 ...
- kubernets学习笔记二
Kubernetes部署"容器化应用" Kubernetes整体架构 何为"容器化应用"? 通俗点来说,就是你把一个程序放在docker里部署,这个docker ...
- 流程控制之do while循环
语法 do { //代码语句}while(布尔表达式): 与while的区别 while是先判断再执行,do while是先执行再判断 循环体至少会被执行一次 实例1: package com. ...
- DeepSeek + 在线Excel , 打造智能表格新纪元
微信搜一搜[葡萄城社区]关注,了解更多动态 SpreadJS 已经接入 DeepSeek 啦! 相信这段时间,大家都被[DeepSeek]刷屏了.DeepSeek 以其强大的技术能力和创新的解决方案, ...