当我们透过前一篇所介绍的 Heartbeat 收集资料後,接下来我们要将介绍如何透过 Kibana 的 Uptime 功能,来检视这些资料。
进入 Kibana 的主画面後,点选主选单,并从 Observability 的区块,可以找到 Uptime 的进入点。
点选进入後,我们可以看到 Uptime 的主要 Dashboard,画面蛮单纯,直接列出监控的汇总结果,包含多少个 Monitors 其中有哪些目前是 Down
以及过去指定的时间区间中,Up
与 Down
的 Histogram 图表。
在底下的监控总览的区块,会条列出每一项我们所设定的 Monitor,并且包含这些 Monitor 的主要状态资讯。
点选其中一个 Monitor 之後,可以进入 ES Cluster Monitor 的页面,如下图。
这个 Monitor 的画面会包含几个重点,以上图我的情境为例进行说明:
100.00%
、监控这组服务的 URL http://training.onedoggo.com
,监控的类型 HTTP
、有哪些 Tags onedoggo
training
web
、以及 TLS Certificate 多久之後会到期 Expires in 9 monthes
。taipei
与 tokyo
,以及这些地区各自在这段时间的可性用 (availability) 比例及最後检查的时间。Up
或 Down
、检查的时间、从哪个 Geo Location 执行、HTTP status,花了多少时间 (Duration)、如果有错误的话,错误的内容是什麽 (如下图),另外如果有开启记录 HTTP response 的话,包含 HTTP Response Headers 与 Body 都会被详细的记录下来,在追查问题时很方便。Kibana Uptime 会协助我们将所有 Monitors 之中有包含 SSL/TLS 的 Certificate 汇总起来,在 TLS Certificates 这里可以看到所有的凭证列表及状态,这个功能很方便,可以直接一览所有凭证的状态。
另外也能透过 Settings 的画面,指定 Certificate 的过期通知的期限设定。
若要使用 Elastic 替 Uptime 建立的 Dashboard,要另外到 Github (https://github.com/elastic/uptime-contrib) 下载,并且使用 Kibana > Stack Management > Saved Objects 的功能,使用 Import 将对应 Github 里的 http_dashboard.ndjson
档案汇入,汇入完成後,就可以到 Dashboard 选择开启 Heartbeat HTTP monitoring
的 Dashboard。
当有异常发生时,我们想要主动收到通知,这时就要使用到 Elastic Alert 的功能,我们首先要建立 Connector 来设定通知发送到哪边,再透过 Uptime 进行 Alert 的设定。
这边要注意 Alert 的功能有蛮多会是需要使用到进阶的授权,不是免费的。
如果是第一次使用 Alerting 的功能,在进入 Stack Management 的 Connectors 设定中要建立 Connectors 时,会看到以下的画面,提示我们会需要先设定好 xpack.encryptedSavedObjects.encryptionKey
。
要产生这个 EncryptionKey 可以透过 kibana-encryption-keys
的指令来协助产生,这个指令就放在 kibana 的 bin
资料夹里面。[1]
./bin/kibana-encryption-keys generate
执行指令後,就会产生 encryption keys。
这个指令只会协助我们产生 key,我们需要将产生出来的设定,添加到 config/kibana.yml
里面。
一但设定完成、重新启动 kibana 之後,我们回到 Connectors 的设定页面,就可以建立新的 Connector 了。
这边使用 Slack Connector 为例。
请注意:要使用 Slack Connector 会需要拥有 Gold License 以上的授权。
选择 Slack
之後,在建立 Connector 的画面,会出现 Create a Slack Webhook URL
的连结,点选下去之後,会导到 Elastic 的官方文件,里面有完整的设定教学,当中有提到要进入 Slack WebHook 的设定页面 https://my.slack.com/services/new/incoming-webhook 去建立 WebHook。
指定 Alert 要通知的 Channel 之後,建立 WebHook integration,就可以拿到 WebHook URL
。
接着在 Add Connector 的地方,把这些资讯填写完成,并且建立 Connector。
接下来,我们可以在 Uptime 设定 Default Connectors,让之後 Uptime 有异常发生时,透过这些 Connectors 发送通知。
一但我们设定好 Alert 的 Connectors 之後,我们就可以到 Monitors 的页面,启动 Status alert,接下来有异常发生时,就会通知到我们指定的 Connecters 了。
如果我们想在 TLS Certificate 快要过期时收到通知,我们要在 Uptime 设定 Alert。
接着从 Slack 的画面可以看到有发生问题、或是状态恢复时通知的内容。
以上的介绍,是透过 Kibana 针对 Uptime 所提供的功能,让我们能迅速的掌握系统的可用性状态,以及能在异常时发送通知提醒,除了 Kibana Uptime 所提供的画面之外,我们也能自己透过 Virtualize 等工具,从 Heartbeat 所记录并存放在 Elasticsearch 里的资料,建立我们自己想要检视的图表与仪表版 (Dashboard),这部份就不在这里介绍,有兴趣的可以从官方 Kibana 的说明文件参考做法。
查看最新 Elasticsearch 或是 Elastic Stack 教育训练资讯: https://training.onedoggo.com
欢迎追踪我的 FB 粉丝页: 乔叔 - Elastic Stack 技术交流
不论是技术分享的文章、公开线上分享、或是实体课程资讯,都会在粉丝页通知大家哦!
工厂模式主要有三种不同的实作: Simple Factory Pattern Factory Met...
1.建立一个新的React 专案 npx create-react-app first-app cd...
27 - Concern 最後整理的方式再来讲到 Rails 提供功能,主要目的在把相同逻辑 cod...
在前几天接触新的工具、新的方法,使用不同的套件,现在终於要回到side project 最初的目标-...
...