集中日志查询平台方案(Draft)

集中日志查询平台方案(Draft)

随着公司业务系统之间的数据交换越来越多,系统间的整合越来越复杂,伴随而来的问题也越来越多,给运行维护,客服人员带来的很大压力。目前我们首先要解决的问题是快速定位问题发生的系统和异常信息,第一时间收集到系统必要异常信息和审计信息,第一时间反馈给运行维护和客服人员,第一时间让相关人员做出相应的处理。

本方案将大致分3个阶段实施

第一部分:将传输各个节点的异常信息采集到公共平台,通过一个Web界面提供客服人员查询和定位问题,并且可以实现邮件通知功能,计划一周内完成并交付使用。

第二部分:Web查询平台加入简单的协作和事件跟踪功能,计划一周内完成

第三部分:效果好的话,可以陆续将其他口岸通系统,EDAP等系统的日志采集到平台实现统一维护,并且进一步收集客服这边的需求逐步的完善和加强。

目前面临问题

  1. 系统异常信息不能及时反馈出来.
  2. 知道有问题但是不能很快找到问题的根源.
  3. 同样的问题一直出现.
  4. 有些问题只能有固定的人员才能解决.

尽管目前的方案还不能完全上述解决,但只希望用最快的速度和最低成本能为客服和维护人员提供一定的帮助。

方案介绍

本方案使用微软企业库日志应用程序块(以下称Logging application block),实现对每个系统的日志采集,通过MSMQ的发式发送到一个功能平台,公共平台利用企业库提供的MSMQ Distributor服务收集到业务系统的日志后保存到SQL数据库中,系统维护人员使用IE进行浏览和跟踪问题。

总体实施技术方案如图表1

    MSMQ logging application block收集日志架构如图表 1

图表 1

方案的优势

Logging application block是微软patterns & practices Team发布的一个应用程序块,是一个经过实践检验的产品

使用logging application block规范和统一了开发过程对系统异常信息的处理

快速开发,对程序员不需要知道过多底层操作,一切皆可灵活配置

日志规范定义

对于不同的应用客户端系统需要定义不同规则和必要的信息区分。

LogEntry结构

Name

Description

Default

ActivityId

Tracing activity id

默认

ActivityIdString

Tracing activity id as a string to support WMI Queries

默认

AppDomainName

The AppDomain in which the program is running

系统势力名称

Categories

Category name used to route the log entry to a one or more trace listeners.

CategoriesStrings

Category names used to route the log entry to a one or more trace listeners. This readonly property is available to support WMI queries

默认

ErrorMessages

Gets the error message with the LogEntry

捕获的异常或是审计信息

EventId

Event number or identifier.

默认

ExtendedProperties

Dictionary of key/value pairs to record.

扩展的属性,可以根据应用中需要查询或判断的信息自己定义

LoggedSeverity

Gets the string representation of the Severity enumeration.

MachineName

Name of the computer.

默认

ManagedThreadName

The name of the .NET thread.

默认

Message

Message body to log. Value from ToString() method from message object.

捕获的异常或是审计信息

Priority

Importance of the log message. Only messages whose priority is between the minimum and maximum priorities (inclusive) will be processed.

优先级

ProcessId

The Win32 process ID for the current running process.

默认

ProcessName

The name of the current running process.

默认

RelatedActivityId

Related activity id

默认

Severity

Log entry severity as a Severity enumeration. (Unspecified, Information, Warning or Error).

信息,警告,错误

TimeStamp

Date and time of the log entry message.

默认

TimeStampString

Read-only property that returns the timeStamp formatted using the current culture.

默认

Title

Additional description of the log entry message.

系统描述

Win32ThreadId

The Win32 Thread ID for the current thread.

默认

传输日志扩展属性定义

NO

扩展属性

描述

1

客户部署

功能

采集系统异常和审计信息通过msmq发送到平台。

日志采集通过企业库Logging application block实现。

系统环境

.Net Framework 2.0以上

Enterprise Library 4.0 - May 2008

Microsoft.Practices.ObjectBuilder2.dll

Microsoft.Practices.EnterpriseLibrary.Logging.dll

Microsoft.Practices.EnterpriseLibrary.Common.dll

客户端配置

对于企业端传输的配置 Category Source(分类)名称统一使用CTS,同时使用Msmq TraceListener将日志发送到平台,和使用EventLog TraceListener写入本地的系统事件日志中,对于msmq TraceListener 需要使用Binary Formatter进行序列化

配置步骤

打开配置控制台

修改或是创建一个应用程序配置文件,新增Logging application block

新建一个msmq trace listener

配置msmq队列属性

将msmq tracelistener附加到Category Source下的General下

样列代码

建议在每个客户端应用调用Logging application block的Logger.Write()方法前自己先对Logger和LogEntry进行一次封装

平台服务部署

功能

收集各系统发送过来的消息并且保存到数据和发送邮件通知给相关人员。

系统环境

.Net Framework 2.0以上

Enterprise Library 4.0 - May 2008

Microsoft.Practices.ObjectBuilder2.dll

Microsoft.Practices.EnterpriseLibrary.Logging.dll

Microsoft.Practices.EnterpriseLibrary.Common.dll

Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll

Microsoft.Practices.EnterpriseLibrary.Data.dll

配置

安装数据

运行源代码目录下E:\EntLib4Src\Blocks\Logging\Src\DatabaseTraceListener\Scripts 运行CreateLoggingDb.cmd 安装数据库

注册服务

打开Visual Studio命令行工具,切换到目录(默认的企业库安装路径)C:\Program Files\Microsoft Enterprise Library 4.0 - May 2008\Bin下,运行如下命令:

installutil /i MsmqDistributor.exe

修改配置,打开安装目录下MsmqDistributor.exe.Config 文件,修改接收队列的路径

配置日志数据库

新增一个Data access application block,新增一个Database trace listener然后将database trace listener挂到要接收的分类下面。

Web查询平台

第一阶段功能

分类查询日志信息,发现问题

第二阶段功能

加入对异常的处理结果和统计功能

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏信安之路

实战中遇到的sql小姿势

笔者有个好习惯就是喜欢做笔记,即使当时没来来得及弄懂,之后也可以慢慢研究。今天就选取出一些之前所做笔记里的个人认为比较有趣的,关于 SQL 注入/ SQL 方面...

15500
来自专栏假装我会写代码

Laravel Bash 别名

13320
来自专栏图像识别与深度学习

Android Studio

30680
来自专栏我是攻城师

Jstorm2.1.1集群安装

45940
来自专栏从零开始学自动化测试

Appium+python自动化9-SDK Manager

前言 SDK Manager到有哪些东西是必须安装的呢? 一、SDK Manager 1.双击打开SDK Manager界面 ? 2.Tools里面前三个是必须...

31760
来自专栏walterlv - 吕毅的博客

将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子

发布于 2017-12-26 07:00 更新于 2018-02...

1.4K10
来自专栏伪君子的梦呓

小白教程——安装和使用PyCharm

0.0 前言 上一个推送,我教大家怎么安装Python 3.X,安装完了,那我们肯定就是要用IDE (Integrated Development Envi...

75580
来自专栏Samego开发资源

让子弹飞~利用OPcache扩展提升PHP7性能 | laravel篇

What is OPcache OPcache是PHP中的Zend扩展,可以大大提升PHP的性能。 OPcache 通过将 PHP 脚本预编译的字节码存储到...

32620
来自专栏熊二哥

ASPNET_WEBAPI快速学习02

这部分内容的学习,已经放了大半年时间了,果断补充上,尽早将过去遗留的老技术坑都补上。首先将介绍服务幂等性的概念和相关解决方案,这部分也将是本文的理解难点,由于W...

21860
来自专栏.NET后端开发

ADO.NET入门教程(二)了解.NET数据提供程序

摘要       在上一篇文章《你必须知道的ADO.NET(一) 初识ADO.NET》中,我们知道ADO.NET的两大核心组件分别是Data Provider和...

458110

扫码关注云+社区

领取腾讯云代金券