利用观测云快速构建对AD、Exchange的监控

353 阅读7分钟

[背景知识]

笔者近期服务的客户中,其中一个是传统行业的Infra运维团队,很关注AD、Exchange、SQL Server等方案的监控。因此我们需要快速构建对这几个方案的监控能力。

1. AD简介

AD,全称是Active Directory,它是Microsfot提供的一项功能服务,它充当集中存储库并存储与用户、计算机、服务器和组织内的其他资源等对象相关的所有数据,主要功能是提供一种在域环境中对用户和机器进行身份验证的方法。使用 Active Directory,可以远程管理用户、工作站及其权限等资源。详情可参考:

learn.microsoft.com/zh-cn/troub…

Active Directory 结构和存储体系结构由四个部分组成:

Active Directory 域和林 林、域和组织单位 (OU) 构成了 Active Directory 逻辑结构的核心元素。林定义单个目录并表示安全边界。林包含域;

Active Directory 的域名系统 (DNS) 支持 DNS 为域控制器位置提供名称解析服务,并提供 Active Directory 可用于提供可反映组织结构的命名约定的分层设计;

图式 架构提供对象定义,这些定义用于创建存储在目录中的对象;

数据存储 数据存储是目录中管理每个域控制器上数据的存储和检索的部分;

  Active Directory 数据结构和存储体系结构:

图片1.png  

2. Exchange简介

毋庸置疑,邮件是一个企业对内、对外进行沟通协作的重要方式。试想,如果企业的邮件服务中断,或者出现非常缓慢等现象,对于企业的正常经营肯定会产生巨大影响。因此大型企业会选择商业化、高度稳定的邮件服务解决方案,Exchange Server就是微软面向企业的一个邮件解决方案。详情请参考learn.microsoft.com/zh-cn/excha…

Exchange 2016 架构由多个角色组成,每个角色都有不同的功能和责任。下面是 Exchange 2016 的主要角色:

Mailbox Server:存储和处理用户邮箱数据,包括邮件、日历、联系人等。

l Client Access Service:处理客户端请求并提供访问用户邮箱的服务。

l Mailbox Transport Service:处理用户之间的邮件传输。

l Mailbox Database:存储用户邮箱数据的地方。

l Client Access Server:处理客户端请求并提供访问用户邮箱的服务。

Outlook Web App:Web 界面,允许用户通过浏览器访问邮箱。

l Exchange ActiveSync:用于移动设备同步邮箱数据。

l Exchange Web Services:用于开发和集成 Exchange 功能的 Web 服务。

Edge Transport Server:处理与外部邮件系统的邮件传输,提供安全的邮件过滤和反垃圾邮件功能。

2.png  

3. 观测云简介

观测云是面向各行业用户提供统一高效的数字化可观测服务的SaaS服务商。观测云的统一采集器——DataKit是一款开源、一体式的数据采集 Agent,它提供全平台操作系统(Linux/Windows/macOS)支持,拥有全面数据采集能力。它具备很强的第三方数据集成能力,包括:TelegrafPrometheusStatsdFluentdFilebeat、Tracing 相关(OpenTelemetryDDTraceZipkinJaegerSkyWalkingPinpoint)等。基于DataKit强大的数据接入能力,我们能快速实现对AD、Exchange产品指标、日志的采集,从而实现在观测云上对这些数据进行分析。

[实现过程]

第一步,寻找合适的prometheus-exporter

在本项目中,我们计划使用prometheus数据接入方案来进行数据接入。因此我们首先在Github上找到了windows-exporter这个项目,项目地址为

github.com/prometheus-…

从项目给出的Collector清单来看,该exporter支持ad、adcs、adfs、exchange等方案的监控。这些collector默认是未开启的状态,因此需要在使用过程中注意enable这些collector.

3.png

该Exporter的下载、安装比较简单,我们选择exe版本的安装包并在windows server上进行安装。

4.png

第二步,启动windows-exporter

登录windows server后,使用Powershell执行exporter的启动命令,并且根据实际使用需要enable需要的参数。本文中打开了ad,adcs,adfs,exchange的采集collector,如下图所示。如果成功,powershell应该有定时刷新的日志产生。

本次使用的命令为

D:\edgeDownload>.\windows_exporter-0.24.0-386.exe --collectors.enabled "[defaults],ad,adcs,adfs,exchange" --collectors.exchange.enabled=TransportQueues,HttpProxy,ActiveSync,AvailabilityService,OutlookWebAccess,Autodiscover,WorkloadManagement,RpcClientAccess

5.png  

第三步,安装观测云Datakit并采集exporter数据

进入观测云工作空间,在“DataKit”界面将windows版的安装命令复制,并在windows server的powershell中执行,即可一键完成DataKit安装。

6.png

接下来需要开启DataKit的prometheus监控插件,进入DataKit的promtheus插件目录,即C:\Program Files\datakit\conf.d\prom,根据prom.conf.sample复制出一个prom.conf配置文件。

7.png

打开prom.conf,修改如下参数:

urls=’http://127.0.0.1:9182/metrics’

source=’prom’

8.png

这两个参数的含义是,DataKit会通过该URL来不断采集exporter捕捉到的性能数据,同时指定数据源名称为prom,方便后续在观测云上进行搜索。

修改完成后在powershell中执行datakit monitor -R命令,重启datakit使新的配置生效。

通过datakit monitor命令可以对DataKit的插件状态、数据实时采集状态进行监控,如下图所示,左侧的prom表示DataKit已经打开了prometheus插件,右侧的prom/prom表示正在采集我们需要的指标。

9.png

第四步,在观测云上观察采集到的数据

登录观测云,在“基础设施-主机”可以查看该windows server相关的指标、进程、事件等数据,如下所示:

10.png 对于刚才采集到的AD、Exchange相关数据,可以在“指标-指标管理”中找到。对应指标集为prom,如下所示:

11.png

AD相关指标

 

12.png

Exchange相关指标

 

第五步,采集AD、Exchange相关日志

毫无疑问,AD和Exchange的日志也是运维团队非常关心的内容,Exchange的重要日志包括:

日志类型文件名路径关键字示例
Transport 日志MessageTrackingLog<日期>.logC:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTrackingSender, Recipient, Subject, Message ID, Source IP, Event ID
邮件数据E00.log, E01.log, ...C:\Program Files\Microsoft\Exchange Server\V15\Mailbox<数据库名称>Transaction ID, Database ID, Operation, Error Codes
安全日志Security<日期>.logC:\Program Files\Microsoft\Exchange Server\V15\Logging\DiagnosticsAuthentication, Login Failures, Unauthorized Access

AD的重要日志可参考官网说明

learn.microsoft.com/zh-cn/troub…

例如我们希望采集Exchange的MessageTracking日志,首先找到该日志的文件路径。

C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTracking

13.png

接下来在DataKit的日志插件目录(C:\Program Files\datakit\conf.d\log)下复制出logging.conf文件

14.png

15.png 如上图中的红框,定义好logfiles和source,然后执行datakit service -R重启即可生效。

16.png

第六步,仪表板配置

在windows-exporter的说明文档中,我们可以看到该exporter支持采集的AD、Exchange的相关指标清单。但更重要的是,我们需要将日常需要重点监控的指标展示在仪表板上,以便团队可以实时查看。

例如:Exchange需要重点关注的指标有

指标含义指标意义
windows_exchange_owa_current_unique_usersNumber of unique users currently logged on to Outlook Web App监控使用OWA的活动用户数量
windows_net_packets_outbound_errors_total主机网卡出方向的错误数正常情况下,网卡不应该有错误package数量,这个数如果不为0,意味着网络层面有错误
windows_exchange_workload_active_tasksNumber of active tasks currently running in the background for workload managementWorkload的活动任务数
windows_exchange_workload_queued_tasksNumber of workload management tasks that are currently queued up waiting to be processed显示当前正在排队等待处理的工作负载管理任务数。
usage_totalCPU利用率CPU利用率,反映负载
available可用内存数可用内存数,反映负载

当确定好需要展现的指标后,就可以通过观测云强大的仪表板功能构建自定义的监控看板。观测云提供了30余种图表类型,不需要修改代码,只需要拖拉拽即可快速完成仪表板的编辑,大幅降低了仪表板制作的成本。

17.png

30余种仪表板组件

18.png

指定数据集、数据指标

如下是本次配置的AD、Exchange仪表板:

Exchange仪表板

19.png

AD仪表板

20.png

 

[总结]

通过上述六个步骤,我们很快实现了AD、Exchange的性能指标和日志的采集与分析,相信大家能感受到观测云DataKit优秀的数据接入能力和仪表板快速构建的能力。如果您也希望体验观测云的丰富功能,欢迎点击注册,开始您的可观测之旅。