分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

asp.net 网站监控方案

发布时间:2023-09-06 02:15责任编辑:郭大石关键词:暂无标签

  前言:监控web网站方法有很多种,这篇文章说一下对windows服务器 asp.net网站的监控

 采用的方案,Powershell + Influxdb + Grafana

1、PowerShell + Influxdb

 PowerShell用来收集IIS指标,10秒采集一次,然后写入Influxdb,主要代码如下:需要注意PowerShell需要升级到5.0才能支持influxdb

 标签分别是:Server主机名 ,AppName是网站名称

 1 function waitsec{ ??2 ????$step=10 #设置间隔 ??3 ????$add=0 #设置延时 ??4 ????$t=(get-date) ??5 ????$step-(($t.Hour*3600+$t.Minute*60+$t.Second)%$step)+$add ??6 } ??7 function GetData($cluster,$dept,$group,$project,$type) 8 { 9 ????$commandSet=@(10 ????"\Web Service(*)\Current Anonymous Users",11 ????"\Web Service(*)\Current Connections",12 ????"\Web Service(*)\Current NonAnonymous Users",13 ????"\Web Service(*)\Current Blocked Async I/O Requests",14 ????"\Web Service(*)\Maximum Anonymous Users",15 ????"\Web Service(*)\Measured Async I/O Bandwidth Usage",16 ????"\Web Service(*)\Total Blocked Async I/O Requests",17 ????"\Web Service(*)\Total Get Requests",18 ????"\Web Service(*)\Total Method Requests",19 ????"\Web Service(*)\Total Method Requests/sec",20 ????"\Web Service(*)\Total Post Requests",21 ????"\Web Service(*)\Total Put Requests",22 ????"\Web Service(*)\Delete Requests/sec",23 ????"\Web Service(*)\Get Requests/sec",24 ????"\Web Service(*)\Options Requests/sec",25 ????"\Web Service(*)\Post Requests/sec",26 ????"\Web Service(*)\Put Requests/sec",27 ????"\Web Service(*)\Other Request Methods/sec",28 ????"\HTTP Service Request Queues(*)\CurrentQueueSize",29 ????"\HTTP Service Request Queues(*)\RejectedRequests",30 ????"\.NET CLR Exceptions(*)\# of Exceps Thrown / sec",31 ????"\Process(w3wp*)\Thread Count",32 ????"\Process(w3wp*)\% Processor Time",33 ????"\Process(w3wp*)\Working Set - Private",34 ????"\Process(w3wp*)\Working Set",35 ????"\Process(w3wp*)\Private Bytes"36 ????)37 ????$res= get-counter -counter $commandSet38 ????$index=039 ????$metricAppName=""40 ????$timestamp=[int] (Get-Date (Get-Date).ToUniversalTime() -uformat "%s")41 ????$host_name = hostname42 ????$table_name=""43 ????while($res.countersamples[$index])44 ????{ 45 ????????$Metrics1=@{}46 ????????$value= $res.countersamples[$index].cookedvalue ?47 ????????$metric=$res.countersamples[$index].path 48 ????????$metricAppName=$res.countersamples[$index].InstanceName49 ????????$tempArray=$metric.replace("\\","").split("\")50 ????????$metric=$tempArray[2]51 ????????$Metrics1.$metric = $value52 ????????if($tempArray[1].startswith(‘web service‘))53 ????????{ ??54 ????????????$table_name = "iis_web_service"55 ????????}56 ????????Elseif($tempArray[1].startswith(‘http service‘))57 ????????{58 ????????????$table_name = "iis_http_service"59 ????????}60 ????????Elseif($tempArray[1].startswith(‘.net clr exceptions‘))61 ????????{62 ????????????$table_name = "iis_net_clr_exceptions"63 ????????}64 ????????Elseif($tempArray[1].startswith(‘process(w3wp‘))65 ????????{66 ????????????$table_name = "iis_process"67 ????????}68 ???????????Write-Influx -Measure $table_name -Tags @{Server = $host_name; ?AppName = $metricAppName;} -Metrics $Metrics1 -Database monitor -Server http://influxdb:909669 ????????$index = $index + 170 ????}71 }72 write-host "running...... please wait" (waitsec)"S"73 Start-Sleep -s (waitsec) 74 while(1){ ?75 ????#执行代码 ?76 ????get-date ?77 ????(GetData)78 ????#…… ?79 ????Start-Sleep -s (waitsec) ?80 }

写入influxdb后的iis_http_service表的数据格式:

2、Grafana 配置展示

这里主要对webapi展示了当前连接数,当前排队数,和请求速率。

整体效果:

还可以在grafana告警里面设置一个WebHook,进行处理告警后的逻辑,比如:当这台机器压力比较大时可以对其进行从负载均衡移除 等等。

asp.net 网站监控方案

原文地址:https://www.cnblogs.com/chenru1988/p/9681703.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved