ELK搭建(十三):搭建Nginx资源访问率、丢包率、读写率等运行性能监控平台

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Nginx是一款轻量级、高性能的流量分发和反向代理的web服务。随着市场业务量的增加,普通的web容器,如tomcat的并发量已经远不能满足我们的业务量,同时随着分布式架构的普及,我们需要一款反向代理服务的支持,于是Nginx应运而生。Nginx已经在大多数业务中普遍使用,因此针对Nginx的性能监控十分必要,这样我们才能实时掌握服务器请求情况和运行效率所以今天,我们的目标就是搭建一个Nginx运行性能监控平台

0. 引言

Nginx是一款轻量级、高性能的流量分发和反向代理的web服务。随着市场业务量的增加,普通的web容器,如tomcat的并发量已经远不能满足我们的业务量,同时随着分布式架构的普及,我们需要一款反向代理服务的支持,于是Nginx应运而生。

Nginx已经在大多数业务中普遍使用,因此针对Nginx的性能监控十分必要,这样我们才能实时掌握服务器请求情况和运行效率

所以今天,我们的目标就是搭建一个Nginx运行性能监控平台

在这里插入图片描述

1. 下载

我们的平台是基于elasticsearch+kibana来实现的,也就是我们常说的ELK体系。我们采用Metricbeat插件来采集监控redis的运行数据。

当然我们这里为了保证搭建的便捷性,并没有使用到Logstash,如果大家有需要的话可以把Metricbeat采集到的数据输出到Logstash

首先关于ELK的搭建就不再累述了,不清楚的同学可以看看往期博客:
ELK搭建(一):实现分布式微服务日志监控

因为我的ELK环境是7.13.0的,所以我们需要下载对应版本、对应系统的Metricbeat
Metricbeat官方下载地址

在这里插入图片描述

2. Metricbeat介绍

metricbeat是elstic官方推出的一款轻量型的采集器,属于beats系列中专门用于各种系统和服务统计的beat。不仅可以统计docker等数据,也可以统计redis、nginx、服务器cpu、内存、磁盘等服务的相关指标。

metricbeat定时从服务器中通过抓包的方式获取对应指标数据,然后发送到elasticsearch或者logstash中

metricbeat由两个部分组成:

  • 1、module
    所谓module就是针对不同的服务进行采集的模块,metricbeat中支持的module有几十种,包括但不仅限于:ActiveMQ module,Apache module,Docker module,HTTP module等,具体可以metricbeat官方文档中的modules部分查看
  • 2、metricset
    采集的内容,以nginx module为例,支持1种指标集stubstatus,包含了连接数、请求率、丢包率、读/写/等待率等信息

3. 安装Metricbeat

1、将安装包上传到服务器上,可以使用FTP软件或者以下指令上传

scp metricbeat-7.13.0-linux-arm64.tar.gz root@192.168.244.18:/var/local 

2、解压压缩包

tar -zxvf metricbeat-7.13.0-linux-arm64.tar.gz 

3、修改配置文件metricbeat.yml中的连接信息

vim metricbeat.yml

修改内容

setup.template.settings:
# 因为我这里es是单节点,所以设置主分片数为1,副本分片数为0.否则会报黄
  index.number_of_shards: 1
  index.number_of_replicas: 0
output.elasticsearch:
# 你的es所在服务器ip
  hosts: ["192.168.244.11:9200"]
  username: "elastic"
  password: "elastic"
setup.kibana:
# kibana所在服务器ip
  host: "192.168.244.11:5601"

4、启动nginx模块,metricbeat会根据modules.d/nginx.yml中的配置项来获取系统数据

./metricbeat modules enable nginx

5、配置要采集的内容,修改modules.d/nginx.yml配置文件

vim modules.d/nginx.yml

配置文件内容,具体可根据自己的需要进行配置

- module: nginx
  metricsets:
    - stubstatus
  period: 10s

  # Nginx hosts
  hosts: ["http://127.0.0.1"]

  # Path to server status. Default server-status
  server_status_path: "server-status"

  #username: "user"
  #password: "secret"

6、如上开启的指标集是通过nginx中的ngx_http_stub_status模块来获取数据的,因此我们需要开启nginx中的ngx_http_stub_status

(1)修改nginx配置文件

vim /opt/homebrew/etc/nginx/nginx.conf

(2)修改内容,注意这里的location路径与上述modules.d/nginx.yml文件中书写的server_status_path保持一致;上述配置文件中的端口要与server.listen的端口保持一致

 server {
        listen       80;
        server_name  localhost;
      
         location /server-status {
          stub_status;
        }
    }

(3)重启nginx

nginx -s reload

7、加载kibana仪表盘,如果之前已经设置过就不用再执行了

./metricbeat setup

在这里插入图片描述

8、启动metricbeat(如果上述的指令没有自动退出的话,就新开个窗口执行,不要退出上述指令窗口)

./metricbeat -e

在这里插入图片描述

9、在kibana的discover窗口中查询metricbeat-*索引模式,能够查询到nginx相关字段数据表明配置成功

在这里插入图片描述

10、kibana中点击Dashboard,进入仪表盘,输入nginx,选择Overview ECS看板点击进入

在这里插入图片描述

11、右上角的数据默认是过去15分钟,如果查询没有数据的话,调整下时间范围

在这里插入图片描述

至此,我们就可以实时看到Nginx的相关运行指标了,包括读写等待频率、资源访问频率等。配置很简单,大家不妨动手试试看

关注公众号 Elasticsearch之家,了解更多新鲜内容

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
8月前
|
缓存 前端开发 JavaScript
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
PHP - Laravel 创建项目到服务器(nginx、apache)运行(附带目录结构)
217 0
|
8月前
|
JSON 搜索推荐 BI
快速用ELK搭建日志收集平台
快速用ELK搭建日志收集平台
113 0
|
8月前
|
存储 监控 数据可视化
手把手教你如何快速搭建 ELK 实时日志分析平台
本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。
|
8月前
|
JSON 监控 测试技术
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台 (二)
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台
|
8月前
|
监控 测试技术 时序数据库
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台 (一)
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台
|
9月前
|
应用服务中间件 nginx
【2022】Nginx使用ngx_http_gzip_module对资源进行压缩
【2022】Nginx使用ngx_http_gzip_module对资源进行压缩
68 0
|
11月前
|
NoSQL 应用服务中间件 Shell
redis&nginx运行参数采集脚本
redis&nginx运行参数采集脚本
|
Unix 应用服务中间件 PHP
nginx默认是哪种模式运行PHP?底层原理是什么?
nginx默认是哪种模式运行PHP?底层原理是什么?
116 0
|
负载均衡 应用服务中间件 测试技术
【Nginx】Windows平台下配置Nginx服务实现负载均衡
系统环境:win10 测试用的开发环境和服务类型:VS2022 + DotNet 6 + WebApi
293 0
【Nginx】Windows平台下配置Nginx服务实现负载均衡
|
SQL 监控 前端开发
.Net服务器性能监控,应用耗时统一监控平台
系统用于集群的性能监控,应用耗时监控管理,统一日志管理等多维度的性能监控分析。用于监控Windows服务器监控,支持定义插件扩展、Cpu、内存、磁盘读写、网络、iis等性能直播监控,应用好事监控、数据库性能、慢Sql监控、Api监控。
218 0
.Net服务器性能监控,应用耗时统一监控平台