性能测试之nginx监控系统搭建

news2024/11/27 20:37:45

不同tomcat服务器的负载均衡

在Nginx服务器192.168.43.138上安装Nginx,(安装教程在前几篇文章有详细描述
)实现反向代理tomcat负载均衡

执行一下命令,关闭防火墙

systemctl disable firewalld.service
systemctl stop firewalld.service

关闭后查看防火墙状态 firewall-cmd --state ,not running 表示未运行


启动不同服务器上的tomcat服务器
http://192.168.43.133:8080/ ,http://192.168.43.133:8080/ 两个端口都正常访问

在nginx 服务器配置 nginx.conf 文件

 #gzip  on;
    upstream zcz_app {
 	server 192.168.43.138:8080 weight=1 max_fails=2 fail_timeout=30s;
	}
    upstream zcz_admin {
	server 192.168.43.133:8080 weight=1 max_fails=2 fail_timeout=30s;
	}
#定义两个sever模块
server {
listen 80;
server_name zcz_admin ;
location / {
proxy_pass http://192.168.43.138:8080;
proxy_set_header Host $http_host;
}

}
server {
listen 80;
server_name sports.aaa.com;
location / {
proxy_pass http://192.168.43.133:8080;
proxy_set_header Host $http_host;
}

}

重启nginx命令:./nginx -s reload

检查是否启动成功 ps -ef | grep nginx

常用的nginx 命令

启动nginx 命令: ./nginx 出现下面启动成功
查看nginx 的状态 ps -ef | grep nginx 出现master 则启动成功
关闭nginx 命令 kill -9 进程号,则关闭nginx
查看启动状态命令:./nginx -t
停止 nginx 命令:./nginx -s stop
重启nginx命令:./nginx -s reload

使用promethues 监控nginx

必备组件:

  • nginx-module-vts(用于JSON格式的数据产出)
  • nginx-vts-exporter (收集JSON数据的用于提供给prometheus)
  • grafana 展示数据
  • promethues 时序数据库用于开源监控报警系统

安装nginx-module-vts

  1. 下载vts模块 https://gitee.com/mirrors/nginx-module-vts.git
  2. 解压nginx-module-vts的监控模块,并将其放至nginx目录下

3. 停止nginx :./nginx -s stop ,在nginx安装目录对nginx源码文件重新编译安装

#使用配置命令增加模块add-module
./configure --prefix=/usr/local/nginx  --with-http_stub_status_module --add-module=nginx-module-vts
#安装
make && make install

4.修改nginx.conf 配置文件

在nginx.conf的server模块中添加如下配置:

location /status {
	 vhost_traffic_status_display;
   vhost_traffic_status_display_format html;
   }

在nginx.conf的http模块中添加如下配置:

vhost_traffic_status_zone;
#打开vhost过滤,根据不同的server_name进行流量的统计
vhost_traffic_status_filter_by_host on;

5.使用 nginx -s reload 命令重新加载配置 ,访问 http://IP/status 这个地址


安装nginx-vts-exporter

  1. 下载安装包:wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
  2. 解压到安装目录 tar -xzvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz进入目录使用nohu 。p后台启动 ,命令后面指定ip地址
nohup ./nginx-vts-exporter -nginx.scrape_uri=http://192.168.43.138/status/format/json &

3.查看nohup 启动日志

nginxvts_exporter的默认端口号为:9913

4.访问端口
http://nginx_ip:9913/metrics成功,表示nginx_vts_exporter 开始收集数据

启动监听机器的grafana和prometheus

修改Prometheus.yml,配置nginx-vts-exporter的端口和ip

启动 grafana
systemctl restart grafana-server
#后台启动 prometheus
nohup ./prometheus &

查看日志发现启动报错

进入data目录,查看是否存在lock文件
移除lock文件

重新启动成功

dashboard设置

添加数据源,引入模板: 2949

成功引入数据

不同tomcat服务器的负载均衡

在Nginx服务器192.168.43.138上安装Nginx,(安装教程在前几篇文章有详细描述
)实现反向代理tomcat负载均衡

执行一下命令,关闭防火墙

systemctl disable firewalld.service
systemctl stop firewalld.service

关闭后查看防火墙状态 firewall-cmd --state ,not running 表示未运行


启动不同服务器上的tomcat服务器
http://192.168.43.133:8080/ ,http://192.168.43.133:8080/ 两个端口都正常访问

在nginx 服务器配置 nginx.conf 文件

 #gzip  on;
    upstream zcz_app {
 	server 192.168.43.138:8080 weight=1 max_fails=2 fail_timeout=30s;
	}
    upstream zcz_admin {
	server 192.168.43.133:8080 weight=1 max_fails=2 fail_timeout=30s;
	}
#定义两个sever模块
server {
listen 80;
server_name zcz_admin ;
location / {
proxy_pass http://192.168.43.138:8080;
proxy_set_header Host $http_host;
}

}
server {
listen 80;
server_name sports.aaa.com;
location / {
proxy_pass http://192.168.43.133:8080;
proxy_set_header Host $http_host;
}

}

重启nginx命令:./nginx -s reload

检查是否启动成功 ps -ef | grep nginx

常用的nginx 命令

启动nginx 命令: ./nginx 出现下面启动成功
查看nginx 的状态 ps -ef | grep nginx 出现master 则启动成功
关闭nginx 命令 kill -9 进程号,则关闭nginx
查看启动状态命令:./nginx -t
停止 nginx 命令:./nginx -s stop
重启nginx命令:./nginx -s reload

使用promethues 监控nginx

必备组件:

  • nginx-module-vts(用于JSON格式的数据产出)
  • nginx-vts-exporter (收集JSON数据的用于提供给prometheus)
  • grafana 展示数据
  • promethues 时序数据库用于开源监控报警系统

安装nginx-module-vts

  1. 下载vts模块 https://gitee.com/mirrors/nginx-module-vts.git
  2. 解压nginx-module-vts的监控模块,并将其放至nginx目录下

3. 停止nginx :./nginx -s stop ,在nginx安装目录对nginx源码文件重新编译安装

#使用配置命令增加模块add-module
./configure --prefix=/usr/local/nginx  --with-http_stub_status_module --add-module=nginx-module-vts
#安装
make && make install

4.修改nginx.conf 配置文件

在nginx.conf的server模块中添加如下配置:

location /status {
	 vhost_traffic_status_display;
   vhost_traffic_status_display_format html;
   }

在nginx.conf的http模块中添加如下配置:

vhost_traffic_status_zone;
#打开vhost过滤,根据不同的server_name进行流量的统计
vhost_traffic_status_filter_by_host on;

5.使用 nginx -s reload 命令重新加载配置 ,访问 http://IP/status 这个地址


安装nginx-vts-exporter

  1. 下载安装包:wget https://github.com/hnlq715/nginx-vts-exporter/releases/download/v0.10.3/nginx-vts-exporter-0.10.3.linux-amd64.tar.gz
  2. 解压到安装目录 tar -xzvf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz进入目录使用nohu 。p后台启动 ,命令后面指定ip地址
nohup ./nginx-vts-exporter -nginx.scrape_uri=http://192.168.43.138/status/format/json &

3.查看nohup 启动日志

nginxvts_exporter的默认端口号为:9913

4.访问端口
http://nginx_ip:9913/metrics成功,表示nginx_vts_exporter 开始收集数据

启动监听机器的grafana和prometheus

修改Prometheus.yml,配置nginx-vts-exporter的端口和ip

启动 grafana
systemctl restart grafana-server
#后台启动 prometheus
nohup ./prometheus &

查看日志发现启动报错

进入data目录,查看是否存在lock文件
移除lock文件

重新启动成功

dashboard设置

添加数据源,引入模板: 2949

成功引入数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/88459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Node.js计算机毕业设计防疫科普微课堂Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

从外包被裁到拿到阿里Offer,多亏P8架构师的全套面试文档

引言 又是一年跳槽季,在疫情的影响下,今年的金三银四冷清不少。但无论如何,2020年招聘市场已经显示出了一个清晰的趋势,java开发岗面试越来越难,需求越来越少!也更增加了游戏的“难度系数”。 跳槽时时刻刻…

99-数据结构与算法(上篇)

数据结构与算法数据结构和算法,一个非常古老的课题,工作的时候,一般只求程序能跑,并不太关注性能 一般情况下,我们尽量避坑,即避免这样:ArrayList Or LinkedList,哪个简单用哪个 实…

【Kubernetes】一主二从环境搭建,详细的图文描述

kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本,于2014年9月发布第一个版本,2015年7月发布第一个正式版本。 kubernetes的本质是一组服务器集群&#xff0…

使用Java API操作HDFS

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录学习目标(一)了解HDFS Java API1、HDFS常见类与接口2、FileSystem的常用方法(二)编写Java程序访问HDFS1、创建Maven项…

Nacos 配置中心之长轮询--服务端

先回顾一下客户端和服务端交互的过程 服务端 入口 直接看长轮询的接口 ConfigController.listener PostMapping("/listener")Secured(action ActionTypes.READ, parser ConfigResourceParser.class)public void listener(HttpServletRequest request, HttpServ…

抓住三个关键因素,提高你的ASA广告效果!

​ 众所周知,App Store 作为 iOS 端的流量收口,旗下的 ASA 广告更是广告主在 iOS 生态投放广告的唯一渠道,所提供的四大广告位(Today 标签、搜索标签、搜索结果和产品页面)覆盖了用户访问的全路径,为广告主…

12月14日:跟着猫叔写代码api中的增删改查

首先在数据库中建立一个学生成绩信息表 DROP TABLE IF EXISTS bro_ceshiapi; CREATE TABLE bro_ceshiapi (id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT id,name varchar(100) DEFAULT NULL COMMENT 姓名,class varchar(100) DEFAULT NULL COMMENT 班级,score decima…

[附源码]Python计算机毕业设计Django基于vuejs的文创产品销售平台app

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

学习Vue3 - 认识 Reactive 全家桶

reactive 用来绑定复杂的数据类型,例如:对象、数组 reactive 源码约束了我们的类型 他是不可以绑定普通的数据类型的,这样是不允许的,会报错 因此,如果绑定普通的数据类型,可以使用ref ref绑定对象或者…

计算机SCI论文,如何写吸引人的摘要? - 易智编译EaseEditing

摘要简明扼要的概括全文的主要内容,是整篇文章的精华,是编辑、审稿专家以及读者阅读文章的最先关注的部分。 一个好的摘要可以正确反映文章内容,引起编辑、审稿专家以及读者的关注。那如何写出一个好的论文摘要呢,今天小易为大家…

一种基于摩斯密码的页面加密方法(web和小程序)

1. 开始 web开发中,常有一些功能仅希望对开发、测试人员等一小部分人展示,比如测试一个小程序项目中,想让测试人员快速复制当前对应的h5页面,这时候如果页面是必须登录的,我们可以借助vconsole,然后维护一…

redis之主从切换可能有哪些问题

写在前面 本文一起看下Redis cluster 集群模式下,发生了主从切换时可能存在的问题以及应对方案。 1:主从数据不一致 主从数据不一致,是由于主从同步延迟造成的,可能的解决方案如下: 1:尽量将主从同机房…

React面试:谈谈虚拟DOM,Diff算法与Key机制

1.虚拟dom 原生的JS DOM操作非常消耗性能,而React把真实原生JS DOM转换成了JavaScript对象。这就是虚拟Dom(Virtual Dom) 每次数据更新后,重新计算虚拟Dom,并和上一次生成的虚拟dom进行对比,对发生变化的…

Ansys Zemax | 用于数字投影光学中均匀照明的蝇眼阵列

简介 在数字投影仪设计中,我们希望确保数字光源与投影图像在辐照度分布相匹配。因此,这一约束要求投影仪设计包含均匀照明的空间光调制器——通常以LCD面板的形式呈现。理论上听起来很容易,但实际上,此面板上的光源光束通常是高斯…

语音输入转文字怎么操作?分享几种语音转文字技巧

相信有不少小伙伴在整理语音文件的时候,都会有过怎样把这些语音直接转换成文字的想法吧。每次在我开完会之后,需要对会议语音进行整理时,都会产生这种想法。因为我们需要不断的去听这个会议的语音内容,这样做既费时又费力。但其实…

MATLAB生成2D和3D格网(GUI程序)

目录 一、写函数DataStructure_Fnc 二、控件属性 三、生成2D格网代码 三、生成3D格网代码 一、写函数DataStructure_Fnc 函数代码,生成三角网需要调用此函数 function DataStructureDataStructure_Fnc(Table) [row col]size(Table); Table(1:end,5:7)-1; for j1…

【配置指导】如何配置dataFEED edgeConnector Siemens以实现西门子PLC与阿里云之间的双向通信

本配置指导手册介绍了如何配置dataFEED edgeConnector Siemens,以通过MQTT来将西门子S7-1200 PLC数据上传到阿里云;以及从阿里云发布数据,并传输到PLC中,从而实现西门子S7-1200 PLC与阿里云之间的双向通信。 主要内容包括&#xf…

30-Vue之ECharts-直角坐标系的常用配置

直角坐标系的常用配置前言直角坐标系常用配置网格坐标轴区域缩放前言 本篇来学习下直角坐标系的常用配置 直角坐标系 直角坐标系的图表指的是带有x轴和y轴的图表, 常见的直角坐标系的图表有: 柱状图 折线图 散点图 常用配置 网格 grid:是用来控制直角坐标系的…

可落地的、不基于框架的分布式事务解决方案

两阶段提交 2PC 在MySQL InnoDB中,为了保证Bin Log和Redo Log的一致性,便采用了两阶段提交;ZooKeeper、ETCD集群为了保证数据一致性,也采用了两阶段提交,RocketMQ的事务消息也采用了两阶段提交,可见两阶段…