博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)
阅读量:4482 次
发布时间:2019-06-08

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

原文:

之前有过2篇关于的文章,有兴趣的也可以看看.

 

今天我们主要来介绍一下,如何使用Opserver监控我们的SQL Server 和ASP.NET项目的异常监控

 监控效果如下:

SQL Server的:

 

 

 

 ASP.NET异常情况的监控:

 

监控SQL Server

首先我们来讲解一下如何监控我们的SQL Server.

上篇内容我们已经提到过 Opeserver的项目有很多的配置文件.

我们找到我们的SQLSettings.example.json文件,改名为SQLSettings.json文件

修改其中的配置项如下:

/* Configuration for the SQL Server dashboard */{  "defaultConnectionString": "",  "refreshIntervalSeconds": 30,  "clusters": [    {      "name": "192.168.1.120",      "refreshIntervalSeconds": 20,      "nodes": [        { "name": "192.168.1.121" },        { "name": "192.168.1.122" },        { "name": "192.168.1.123" }      ]    }  ],  "instances": [    {      "name": "实例名称",      "connectionString": "数据库连接字符串",      "refreshIntervalSeconds": 200    }  ]}

 

解释一下其中的意义,参照如下:

defaultConnectionString  (默认的连接字符串,用于单台数据库监控)
refreshIntervalSeconds   (轮询数据库情况的刷新时间,如果不设置,默认为60秒)
instances (当有多台单独的数据库实例需要监控时候的数据库实例设置)
clusters (当你的数据库是集群部署的时候的设置)
后面的内容都一样,我就不一一解释了,多台数据库实例,可以自行在instances 中添加多个节点,集群就在clusters中加入节点地址即可

然后,我们直接运行OpSever项目,就可以观察到数据库的变化情况了.

监控ASP.NET项目的异常情况

 下面我们来讲讲如何监控我们的ASP.NET项目异常的情况

   1.我们需要在在web项目中通过nuget安装StackExchange.Exceptional组件(它依赖于dapper)

   2.在web.config中的configSections节点下增加section节点 “Exceptional”,如下:

       

 

      

   3.在web.config中增加Exceptional节点,如下:

ErrorStore 错误存储有4种实现方式,Memory,JSON,SQL,MySQL,如下是官方的说明译文:

 

这里我们采用SQL的形式,直接存在数据库里.

4.修改web.config的system.webServer节点,添加新的handlers,modules配置如下:

 

5.因为我这里采用的SQL存储,所以需要给数据库添加存储错误信息的表,SQL语句如下:

USE [OpServerTest]GO/****** Object:  Table [dbo].[Exceptions]    Script Date: 2016/11/16 16:28:56 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Exceptions](    [Id] [bigint] IDENTITY(1,1) NOT NULL,    [GUID] [uniqueidentifier] NOT NULL,    [ApplicationName] [nvarchar](50) NOT NULL,    [MachineName] [nvarchar](50) NOT NULL,    [CreationDate] [datetime] NOT NULL,    [Type] [nvarchar](100) NOT NULL,    [IsProtected] [bit] NOT NULL,    [Host] [nvarchar](100) NULL,    [Url] [nvarchar](500) NULL,    [HTTPMethod] [nvarchar](10) NULL,    [IPAddress] [varchar](40) NULL,    [Source] [nvarchar](100) NULL,    [Message] [nvarchar](1000) NULL,    [Detail] [nvarchar](max) NULL,    [StatusCode] [int] NULL,    [SQL] [nvarchar](max) NULL,    [DeletionDate] [datetime] NULL,    [FullJson] [nvarchar](max) NULL,    [ErrorHash] [int] NULL,    [DuplicateCount] [int] NOT NULL, CONSTRAINT [PK_Exceptions] PRIMARY KEY CLUSTERED (    [Id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[Exceptions] ADD  DEFAULT ((0)) FOR [IsProtected]GOALTER TABLE [dbo].[Exceptions] ADD  DEFAULT ((1)) FOR [DuplicateCount]GO

 

6.最后回到OpServer项目修改ExceptionsSettings.example.json文件为ExceptionsSettings.json,并添加配置如下:

{ "stores": [ //异常日志存储位置    {      "name": "ExceptionDB",      "queryTimeoutMs": 2000,      "pollIntervalSeconds": 10,      "connectionString": "错误存储的地址"    }  ]}

 

 

7.想增加自定义的错误信息,可以编写如下代码:

try {                throw new Exception("Just a try/catch test"); }  catch (Exception ex)  {                // logged, but caught so we don't crash                ErrorStore.LogExceptionWithoutContext(ex);  }

这样,异常也会记录到存储里面去了.

 

写在最后

本篇到此结束,下篇介绍如何监控我们的服务器状态

posted on
2019-01-05 15:12 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10224626.html

你可能感兴趣的文章
jQuery实战之仿淘宝商城左侧导航效果
查看>>
AC日记——「SCOI2016」幸运数字 LiBreOJ 2013
查看>>
unmount
查看>>
数据库连接池
查看>>
javascript获得和设置以及移除元素属性的三个方法
查看>>
windwos iis 7.5 使用html 报405错误
查看>>
范围(地址转换)
查看>>
Unity3D游戏,TCP,WEBCOSKT,HTTP通信架构 weaving-socket
查看>>
【小程序入门集锦】19,微信小程序个人帐号申请
查看>>
php写一个简单的计算器
查看>>
【JAVA零基础入门系列】Day3 Java基本数据类型
查看>>
两个整数,求他们的最小公倍数和最大公约数
查看>>
Mongo索引
查看>>
php 实现设计模式之 建造者模式
查看>>
An Easy C Program Problem
查看>>
Replace Nested Conditional with Guard Clauses(用卫语句代替嵌套循环)
查看>>
jsp中${}是EL表达式的常规表示方式
查看>>
GoldenGate常见问题及处理
查看>>
Android JNI学习(五)——Demo演示
查看>>
SSRS 呈现Barcode Free
查看>>