博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 网站监控方案
阅读量:4975 次
发布时间:2019-06-12

本文共 3452 字,大约阅读时间需要 11 分钟。

  前言:监控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,进行处理告警后的逻辑,比如:当这台机器压力比较大时可以对其进行从负载均衡移除 等等。

 

 

 

转载于:https://www.cnblogs.com/chenru1988/p/9681703.html

你可能感兴趣的文章
《代码不朽:编写可维护软件的10大要则(C#版)》读后感
查看>>
04、我的.net Core的学习 - 网页版Hello World
查看>>
分块学习
查看>>
Qt-第一个QML程序-3-自定义一个按钮
查看>>
树梅派中文输入法支持
查看>>
[Git] 005 初识 Git 与 GitHub 之分支
查看>>
使用Analyze 和Instruments-Leaks分析解决iOS内存泄露
查看>>
Vue.js的入门
查看>>
【自定义异常】
查看>>
pip install 后 importError no module named "*"
查看>>
Linux(Ubuntu16.04)下添加新用户
查看>>
springmvc跳转方式
查看>>
IOS 第三方管理库管理 CocoaPods
查看>>
背景色渐变(兼容各浏览器)
查看>>
MariaDB 和 MySQL 比较
查看>>
MYSQL: 1292 - Truncated incorrect DOUBLE value: '184B3C0A-C411-47F7-BE45-CE7C0818F420'
查看>>
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
查看>>
springMVC Controller 参数映射
查看>>
【bzoj题解】2186 莎拉公主的困惑
查看>>
Protocol Buffer学习笔记
查看>>