ArcGIS Monitor 10.6管理员基本配置实践

Posted by Keling Ma on 2018-02-09

安装好ArcGIS Monitor10.6的全部组件后,接下来我们需要通过ArcGIS Monitor Administrator 桌面工具进一步完成监控所需的各种配置。这个管理工具非常强大,集成了从连接ArcGIS Monitor Server, 注册collections, 添加monitor services, 添加各个维度的计数器,配置用户权限,使用的端口,到配置 email 通知等各项管理任务。在开始监控前需要首先创建到Monitor Server 的连接,一旦连接被建立,就可以继续创建monitor services和counters用来收集数据和配置实时告警通知。

1,添加到Monitor Server的连接

  • 在开始菜单中启动ArcGIS Monitor Administrator, 点击Add Connection按钮,添加一个新的连接。
  • 输入连接名,起任何名字都可以;
  • hostname:port是要输入安装中Monitor Server的主机名和端口;
  • User, Password 是指Monitor Server访问mongo db库的用户名和密码。要注意用户名和密码是大小写敏感的。
  • 连接创建成功后,会看到下面的结果:

2,注册Collection

Collection 可以理解为收集器的集合。

  • 点击Connection中的Open按钮,进入Collection管理窗口,这时候应该会看到一个空的窗口;
  • 点击File > Register,会弹出Register Collection窗口,输入Collection名称和Email, 点击Add按钮完成添加。

3,添加Monitor service

每个Collection都可以添加一个或多个monitor service, 每个monitor service对应于一个Windows服务。monitor正是通过这些工作进程来采集数据的。

  • 在窗口列表中选择新注册的Collection:conn1, 右键弹出菜单中选择Add Monitor Service选项,进入New Collector配置窗口,给新添加的Collector起个名字,端口默认从8000开始分配,不需要修改,但是要确保这些端口没有被占用。
  • 单击Add, 完成添加,管理器窗口会是下图的样子:
  • 我们再到服务管理器中查看下相应的服务是否创建出来了:

4, 为Monitor service 设置用户权限

Monitor service是收集各种监控数据的工作进程。 既然要收集各种CPU 、内存、硬盘等等操作系统的性能数据,这要求服务的执行用户必须拥有Windows 管理员权限,并且这个用户密码需要设置为“密码永不过期”。

  • 在服务管理窗口中,找到对应的monitor service服务,我以ArcGIS Monitor Service conn1_ms0为例。
  • 右键选择“属性”,切换到“登陆”选项卡,选择“此账户”选项,点击“浏览”按钮,设置“Administrator”账户为服务运行账户,并输入正确的密码。
  • 一路点击确定,关闭所有窗口。
  • 为了让设置生效,服务需要重启。

通常我们是要监控远程服务器的各种性能指标的,为了让monitor service进程拥有访问远程服务器的权限,需要在远程服务器上存在相同的用户,并具备管理员权限。如果你的环境像我一样,所有服务器的管理员用户密码都相同,那就可以直接使用Administrator用户。如果不是,那建议在所有服务器上新建monitor用户,设置密码永久不过期,并将其加入到管理员组。

另外还有一个windows针对Administrator用户的陷阱需要注意,否则后面的环节你可能遭遇无法连接远程服务器的错误。微软系统默认开启了一个非常小众的安全策略叫做“UAC 远程限制”,它会为本地用户账户或Windows账户过滤访问token. 这将限制局域网内用户以管理员用户通过“盘符$”的方式访问共享目录,为了关闭UAC远程限制,可以参考我之前写过的一篇技术文章:《如何为windows文件共享开启“盘符$”访问权限》。

5,添加counters

计数器定义了我们要收集哪些维度的数据,比如包括系统状态、可用性、使用率以及Enterprise GIS的资源使用情况。ArcGIS Monitor 中为我们提供了很多种类型的计数器,包括:

  • System计数器: 用来定义系统性能和资源的使用情况的矩阵;
  • Process计数器:用于聚合命名进程矩阵;
  • ArcGIS计数器:定义针对ArcGIS Server和服务的监控矩阵;
  • Http计数器:定义针对指定URL的响应时间和请求字节数的监控矩阵;
  • Portal计数器:定义portal中桌面,web和所有项目总数的监控矩阵;
  • DB计数器:定义最近一次数据样本被采集的矩阵;
  • RDP计数器:定义对非活动和活动状态的所有远程桌面会话的监控矩阵;
  • Amazon计数器:定义最近一次数据样本被采集的矩阵;
  • Ext计数器: 为自定义监控扩展提供的保留计数器。

再回到我们之前添加好monitor service的Administrator 配置窗口中,展开一个monitor service节点,就可以看到上述的这些counters。这时候我们还没添加任何counter,所以每个counters数组中都是0,为了避免文章过长,接下来我就以添加System counter为例演示下添加计数器的过程。

权限要求:

对于系统和进程各种指标的监控,要求monitor service进程具备访问被监控服务器的管理员权限:

  • 对于Windows , 用户必须具备管理员组权限或者WMI访问权限。关于WMI的配置可以直接点击链接了解更多内容。
  • 对于Linux, 用户需要具备访问cat, awk, ls 和grep 命令的权限,并且对于/proc文件夹有read权限。

添加过程:

  • 回到monitor service的counters列表中,找到System,可以右键选择“Add”,也可以点击窗口上方的Add按钮添加一个counter,这个过程会自动为我们创建一个New counter;

  • 下移点击New,修改配置项,先添加一个windows远程服务器:

由于是要访问远程服务器,因此确保局域网内,从monitor所在机器可以ping通被监控服务器。如果通过域名无法ping通,可以检测hosts文件中是否添加了IP 到域名的映射,另外检测被监控机器是否开启了防火墙并且阻塞了monitor service端口。

  • 填好配置项后,点击Test按钮,确保可以连通。
  • 在Alerts选项卡中可以设置针对各个监测指标的告警域值:

在这个配置中,设置了三个警戒线:当cpu>85%, 可用内存< 10%, 可用硬盘空间< 2G 就会触发告警。如果有进一步细粒度控制的需要,可以通过上面的配置栏继续添加警戒线。

  • 做好配置后,就可以点击"Save"按钮保存配置,按照同样的过程我们再添加一个对Linux服务器的监控。

对Linux服务器的监控,连接用户的权限控制和Windows不同。Windows是使用Monitor Service进程执行账户自动完成远程机器访问授权验证的,对于Linux服务器,当我们把操作系统类型切换为“Linux”时会发现自动增加了认证的设置栏,可以点击Add Credential按钮添加一个全局的认证项,然后配置选择这个认证项就可以了。

从我的实践过程来看Monitor对远程Linux服务器的监控过程更加透明,更不易出错。

6, 配置email通知

配置好Counters , Monitor已经进入监控状态了,会按照我们设置的数据采集间隔来收集数据。一旦监控指标超出警戒值,就会引发告警。我们不能期待管理员打开Monitor控制台,实时的跟踪被监控系统的状态,最理想的方式是一旦出现紧急情况,第一时间通过邮件通知管理员,以便人工介入处理。

接下来我们就来配置email通知:

  • 在Administrator收集窗口中,选择之前创建的收集组节点,单击菜单中的"Notifications"按钮,会显示“Site Notifications”配置窗口。

通知email可以按照不同的监控计数器来配置,也可以笼统的按照全部一致的规则来配置。这里我选择了System Counters, 在Email中添加需要收到通知的业务人员邮件,点击“Add”按钮,就会完成添加。还可以继续添加更多需要收到通知邮件的用户。

Monitor 发送通知邮件基于以下两个规则:

  • 当告警情况发生时,会立即自动触发通知邮件发送;
  • 如果条件一直处于告警或失败状态,Monitor会每4个小时循环发送邮件。

OK,到这儿ArcGIS Monitor的基本配置流程就已经完成了,这篇文章中记录的测试过程只是为了探索ArcGIS Monitor 管理员配置的基本流程,为了保持简洁、清晰,并未包含对各种计数器的配置过程。有了这些基础,配置其它的计数器,大家就放手实践吧。当然,也可以参考Esri官方配置文档(绝对的极简风)来实践。

参考资料:

ArcGIS Monitor Administrator帮助文档