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

采用的方案,Powershell + Influxdb + Grafana

1、PowerShell + Influxdb

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

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

 function waitsec{
$step= #设置间隔
$add= #设置延时
$t=(get-date)
$step-(($t.Hour*+$t.Minute*+$t.Second)%$step)+$add
}
function GetData($cluster,$dept,$group,$project,$type)
{
$commandSet=@(
"\Web Service(*)\Current Anonymous Users",
"\Web Service(*)\Current Connections",
"\Web Service(*)\Current NonAnonymous Users",
"\Web Service(*)\Current Blocked Async I/O Requests",
"\Web Service(*)\Maximum Anonymous Users",
"\Web Service(*)\Measured Async I/O Bandwidth Usage",
"\Web Service(*)\Total Blocked Async I/O Requests",
"\Web Service(*)\Total Get Requests",
"\Web Service(*)\Total Method Requests",
"\Web Service(*)\Total Method Requests/sec",
"\Web Service(*)\Total Post Requests",
"\Web Service(*)\Total Put Requests",
"\Web Service(*)\Delete Requests/sec",
"\Web Service(*)\Get Requests/sec",
"\Web Service(*)\Options Requests/sec",
"\Web Service(*)\Post Requests/sec",
"\Web Service(*)\Put Requests/sec",
"\Web Service(*)\Other Request Methods/sec",
"\HTTP Service Request Queues(*)\CurrentQueueSize",
"\HTTP Service Request Queues(*)\RejectedRequests",
"\.NET CLR Exceptions(*)\# of Exceps Thrown / sec",
"\Process(w3wp*)\Thread Count",
"\Process(w3wp*)\% Processor Time",
"\Process(w3wp*)\Working Set - Private",
"\Process(w3wp*)\Working Set",
"\Process(w3wp*)\Private Bytes"
)
$res= get-counter -counter $commandSet
$index=
$metricAppName=""
$timestamp=[int] (Get-Date (Get-Date).ToUniversalTime() -uformat "%s")
$host_name = hostname
$table_name=""
while($res.countersamples[$index])
{
$Metrics1=@{}
$value= $res.countersamples[$index].cookedvalue
$metric=$res.countersamples[$index].path
$metricAppName=$res.countersamples[$index].InstanceName
$tempArray=$metric.replace("\\","").split("\")
$metric=$tempArray[]
$Metrics1.$metric = $value
if($tempArray[].startswith('web service'))
{
$table_name = "iis_web_service"
}
Elseif($tempArray[].startswith('http service'))
{
$table_name = "iis_http_service"
}
Elseif($tempArray[].startswith('.net clr exceptions'))
{
$table_name = "iis_net_clr_exceptions"
}
Elseif($tempArray[].startswith('process(w3wp'))
{
$table_name = "iis_process"
}
Write-Influx -Measure $table_name -Tags @{Server = $host_name; AppName = $metricAppName;} -Metrics $Metrics1 -Database monitor -Server http://influxdb:9096
$index = $index +
}
}
write-host "running...... please wait" (waitsec)"S"
Start-Sleep -s (waitsec)
while(){
#执行代码
get-date
(GetData)
#……
Start-Sleep -s (waitsec)
}

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

2、Grafana 配置展示

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

整体效果:

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

asp.net 网站监控方案的更多相关文章

  1. 前端性能监控方案window.performance 调研(转)

    1. 业界案例 目前前端性能监控系统大致为分两类:以GA为代表的代码监控和以webpagetest为代表的工具监控. 代码监控依托于js代码并部署到需监控的页面,手动计算时间差或者使用浏览器的的API ...

  2. ASP.NET MVC 监控诊断、本地化和缓存

    这篇博客主要是针对asp.net mvc项目的一些常用的东东做一个讲解,他们分别是监控诊断.本地化和缓存.虽然前两者跟asp.net mvc看上去好像是没什么关联. 但其实如果真正需要做asp.net ...

  3. 记一次ASP.NET网站的入侵和如何避免被入侵

    ASP.NET网站入侵第二波(LeaRun.信息化快速开发框架 已被笔者拿下) 详细介绍请看第二波 首先我要申明的是不是什么语言写出来的程序就不安全,而是得看写代码的人如何去写这个程序 前些日子我去客 ...

  4. 如何真正提高ASP.NET网站的性能

    摘要:前言 怎么才能让asp.net网站飞得更快,有更好的性能?这是很多开发者常常思考的一个问题.我有时候会做大量的测试,或请求别人帮忙采集一些数据,希望能够验证网上一些专家的建议或证明 前言 怎么才 ...

  5. 构建ASP.NET网站十大必备工具(2)

    正常运行时间 当一个网站发布以后,你肯定希望你的网站不会遇到任何问题,一直处在正常运行状态之中.现在,我使用下面这些工具来监控“Superexpert.com”网站,确保它一直处在正常运行状态之中. ...

  6. 26种提高ASP.NET网站访问性能的优化方法 .

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池 ...

  7. ASP.NET 网站管理工具

    ylbtech-Miscellaneos:ASP.NET 网站管理工具 1. 网站管理工具概述返回顶部 网站管理工具概述 介绍 使用网站管理工具,可以通过一个简单的 Web 界面来查看和管理网站配置. ...

  8. 构建ASP.NET网站十大必备工具

    最近使用ASP.NET为公司构建了一个简单的公共网站(该网站的地址:http://superexpert.com/).在这个过程中,我们使用了数量很多的免费工具,如果把构建ASP.NET网站的必备工具 ...

  9. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

随机推荐

  1. CNN、RNN、DNN

    一:神经网络 技术起源于上世纪五.六十年代,当时叫感知机(perceptron),包含有输入层.输出层和一个隐藏层.输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果.但早期的单层感知机存在 ...

  2. java实现24点游戏代码

    import java.util.Arrays;import java.util.Scanner; public class Test07 {    public static void main(S ...

  3. 翻转链表reverse linked list:全部,m~n

    全部 [抄题]: Reverse a singly linked list. [思维问题]: 以为要用dummy node [一句话思路]: 直接全部转过来就行了,用dummy node反而多余 [输 ...

  4. .net为图片添加水印(转) jpg png和gif格式

    .net为图片添加水印(转) jpg png和gif格式 .net为图片添加水印(转) jpg png和gif格式,转自csdn的hyde82,现在跟大家一起来分享下: 利 用.net中System. ...

  5. mysql rc模式时binlog_format=row的解释【转】

    总体来说:在 tx_isolation= READ-COMMITTED .binlog_format =statement 的情况下,mysql 没有gap 锁,这样binlog 记录的数据修改的顺序 ...

  6. PAT 1054 求平均值 (20)(代码+思路+测试用例)

    1054 求平均值 (20)(20 分) 本题的基本要求非常简单:给定N个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的.一个"合法"的输入是[-1000,1000]区 ...

  7. qt基本类

    多firstpage secondpage thirdpage fouthpage  实现 多页面 xml解析 实现 按钮 和 slot实现 mysql数据库访问实现

  8. 2017年值得一看的7个APP设计

    新媒体时代蓬勃发展,各类APP如雨后春笋般出现.下载到合适的APP,不仅衣食住行一键搞定,甚至健身.社交.阅读等需求也能足不出户地满足.对于广大“吃瓜群众”来说,选择APP是个人需求以及跟随潮流的选择 ...

  9. sqlserver中set IDENTITY_INSERT on 和 off 的设置方法

    sqlserver中set IDENTITY_INSERT on 和 off 的设置方法: 执行插入数据库插入数据时报了以下错误,我明明没有给主键set值但还是报错 解决方法如下: qlserver ...

  10. 2018.09.30 bzoj2821: 作诗(Poetize)(分块)

    传送门 分块经典题目. 先将数列分块. 然后预处理出每两个块之间有多少个数出现了正偶数次. 这样查询的时候对于中间的完整块直接用预处理出的数组搞定. 剩下的暴力枚举求解. 代码: #include&l ...