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 ...
随机推荐
- Next.js + Mongodb CURD
环境 Next.js 14 React 18 Mongodb 前言 花了两周时间学习了Next.js, 自己做了个demo,尝试了下服务器端渲染,客户端渲染,给人的感觉就是又像回到了asp.net M ...
- NVM及NODE开发环境搭建
NVM及NODE开发环境搭建 1. 安装NVM 1.1 下载安装包 下载地址 1.2 安装 双击安装包,一路下一步即可.安装完成后在终端输入nvm version,能查到版本号说明安装成功了. 2. ...
- G1原理—5.G1垃圾回收过程之Mixed GC
大纲 1.Mixed GC混合回收是什么 2.YGC可作为Mixed GC的初始标记阶段 3.Mixed GC并发标记算法详解(一) 4.Mixed GC并发标记算法详解(二) 5.Mixed GC并 ...
- 用于决策的世界模型 -- 论文 World Models (2018) & PlaNet (2019) 讲解
参考资料: [2411.14499] Understanding World or Predicting Future? A Comprehensive Survey of World Models ...
- docker 使用centos镜像运行javaweb
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公 ...
- HElib
什么是HElib? HElib是一个基于C++语言的同态加密开源软件库,底层依赖于NTL数论运算库和GMP多精度运算库实现,主要开发者为IBM的Halevi,目前最新版本为1.0.2,实现了支持&qu ...
- 面试题:关于StringBuffer()源码的深度理解Debug分析
import org.junit.Test; /** * @author CH * @create 2021 上午 11:23 */ public class IDEADebug { @Test pu ...
- mysl 修改数据存储位置后服务启动后停止
在 Windows 系统中安装完 mysql 后,如果是生产用的机器,通常会修改数据存储位置.基本步骤: 1. 停止 mysql 服务: 2. 修改 my.ini 文件中的 datadir=" ...
- Kubernetes 轻松管理资源
资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes. kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署 ...
- Q:linux(群晖)修改网卡速率
问题:群晖速度莫名其妙变成了1MB/s左右,查看网络状态 网卡配置变成 全双工10Mb/s 解决方法 首先开启ssh登录权限 1.控制面板 – 终端机和SNMP里,开启SSH功能. 2.通过ssh连接 ...