您当前的位置: 首页 >  nginx

wu@55555

暂无认证

  • 2浏览

    0关注

    201博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

wu@55555 发布时间:2022-07-02 09:52:25 ,浏览量:2

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之家,了解更多新鲜内容
关注
打赏
1664985904
查看更多评论
立即登录/注册

微信扫码登录

0.0636s