关于监控:夜莺监控之Categraf监控VMwareVSphere

50次阅读

共计 8375 个字符,预计需要花费 21 分钟才能阅读完成。

  1. 之前始终在应用开源的虚拟化软件 PVE(Proxmox VE), 忽然有一天网桥莫名其妙的出幺蛾子,周末鼓捣了半天,谷歌百度也找不到对应的解决方案,重新安装烦的不行,起初一怒之下就换了 VMwareVSphere7.0,不得不说,VMware 的稳定性与实用性是真的赞,奥利给!
  2. 然而有了虚拟化,怎么监控性能与告警呢?以后的监控产品款式繁多,到底抉择谁好呢?那这里就不得不提以后开源易用性好、扩大能力强、采集插件多、告警通道广的监控零碎:Nightingale(前面简称夜莺监控),这里并不是说其余的监控不好用,众家各有千秋,这里只对夜莺做监控做解说,不喜勿喷哈~

Nightingale 简介

夜莺监控 夜是一款开源云原生观测剖析工具,采纳 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态严密集成,提供开箱即用的企业级监控剖析和告警能力。已有泛滥企业抉择将 Prometheus + AlertManager + Grafana 的组合计划降级为应用夜莺。夜莺于 2020 年 3 月 20 日,在 github 上公布 v1 版本,已累计迭代 100 多个版本。

夜莺最后由滴滴开发和开源,并于 2022 年 5 月 11 日,捐献予中国计算机学会开源倒退委员会(CCF ODC),为 CCF ODC 成立后承受捐献的第一个开源我的项目。夜莺的外围研发团队,也是 Open-Falcon 我的项目原外围研发人员。针对 Nightingale 的更多具体介绍、装置配置都在这里了,请拜访官网文档,在这里就不过多叙述了。

Categraf 简介

Categraf 是一个监控采集 Agent,相似 Telegraf、Grafana-Agent、Datadog-Agent,心愿对所有常见监控对象提供监控数据采集能力,采纳 All-in-one 的设计,岂但反对指标采集,也心愿反对日志和调用链路的数据采集。来自快猫研发团队,和 Open-Falcon、Nightingale 的研发是一拨人。categraf 的代码托管在 github:https://github.com/flashcatcloud/categraf,如果想理解更具体的章节,能够拜访 Categraf 官网文档

后面针对 夜莺监控 与采集器 Categraf 的介绍都是摘自 Flashcat 官网文档中的章节,仅以抛砖引玉,让大家能够对 夜莺监控 Categraf有更多的理解,同时,如果你当初正在稳定性建设、故障发现、故障定位等问题而懊恼,能够分割快猫星云(开源监控引领者,故障定位真帮手),上面是官网公众号:

言归正传:明天解说一下如何应用 Categraf 采集监控 VSphere 的指标数据,上报给夜莺监控 V6,并在夜莺监控 V6 上配置 VSphere 监控仪表盘以及告警;

明天针对 VSphere 监控次要波及到四个环节:

  1. 监控对象装置、配置:VSphere 的装置与简略配置;

针对 VSphere 安装包,官网下载太慢了,能够在后盾回复【VSphere7.0】获取 ESXi 和 vCenter 不百度云下载地址。

  1. 监控组件装置、配置:夜莺监控 V6 的装置与配置

这里仅以 V6 做解说,不对 V5 装置、配置做阐明;

  1. 采集组件装置、配置:Categraf 采集与 VSphere 大盘配置;

装置 Categraf 采集器,应用采集插件 inputs.vsphere 采集 vcenter 指标数据,上报夜莺监控;

  1. 夜莺监控 WEB 页面配置:在 WEB 页面配置监控数据源并导入 VSphere 大盘、配置告警;

在夜莺监控的仪表盘配置数据源、应用导入性能,展现以后采集 VSphere 监控数,配置告警、触发告警;

VSphere 装置、配置

服务器配置:

主板 : 华南 X99-CH8

CPU : E5 2680V3

内存 : 镁光 32G DDR4x4pc4 * 6

硬盘 : SSD 480G & SSD 1T

网卡 : 博通 BCM5720

装置 ESXi

装置之前,确认下你的网卡是否反对 VMware,如果是螃蟹网卡,须要独自加网卡,否则会卡在网卡 no found 的界面,我的就是独自买的 BCM5720 解决的这个问题,如下图:

在后盾获取到下载地址,下载好 7.0ESXi 安装文件烧录到 U 盘,烧录过程自行 Google 吧!

烧录实现后,进入 BIOS 批改为 U 盘启动,会失去如下界面:

至此 ESXi 装置实现,对于如何设置应用域名与替换 SSL 证书以及如何装置操作系统,这里就不叙述了,自行 Google 吧!

装置 vCenter

vCenter 装置就比较简单了,因为反对应用安装包导入镜像,很不便,能够提前把装置 VCSA 的 ISO 上传到 ESXi 上;

在 ESXi 装置一个 WIN10,把 VCSA 安装包上传到数据存储的目录里,如下图:

而后再 WIN10 外面装置 vCenter,如下图;

至此,vCenter 装置实现里,应用 administrator@vcenter.unixsre.com 用户明码跟明码登录,导入 ESXi 的主机很简略,这里就不叙述了。

夜莺监控装置、配置 Prometheus、VictoriaMetrics 数据源、ES 数据源

操作系统应用的是 Ubuntu18.04,CentOS7.9 也一样,因为只是为了测试,所以应用 docker-compose 启动的,应用 nginx 反向代理,如果是生产环境还是倡议应用二进制部署,如果你对 docker-compose 够相熟,能够疏忽。

下载源码,可能会呈现拜访不了 GitHub 或者 Dockerhub 的状况,能够提前下载好,上传到服务器上。

# 装置一些工具与 docker
apt install  -y vim net-tools vim wget telnet docker-ce docker-compose nginx
cd /opt
wget https://download.flashcat.cloud/n9e-v6.0.0-ga.9.2-linux-amd64.tar.gz
mkdir /opt/nightingale
tar xf n9e-v6.0.0-ga.9.2-linux-amd64.tar.gz -C /opt/nightingale
cd /opt/nightingale/docker
docker-compose up -d 
/opt/nightingale/docker# docker-compose up -d
[+] Building 0.0s (0/0)                                                                                                                          
[+] Running 6/6
 ✔ Container prometheus  Started                           0.9s 
 ✔ Container mysql       Started                           0.9s 
 ✔ Container redis       Started                           0.9s 
 ✔ Container ibex        Started                           1.1s 
 ✔ Container n9e         Started                           1.2s 
 ✔ Container categraf    Started                           1.2s 
# 启动实现能够查看一下启动的容器信息
/opt/nightingale/docker# docker-compose  ps
NAME                IMAGE                              COMMAND                  SERVICE             CREATED              STATUS              PORTS
categraf            flashcatcloud/categraf:latest      "/entrypoint.sh"         categraf            About a minute ago   Up About a minute   
ibex                ulric2019/ibex:0.3                 "sh -c'/wait && /ap…"   ibex                About a minute ago   Up About a minute   
mysql               mysql:5.7                          "docker-entrypoint.s…"   mysql               About a minute ago   Up About a minute   
n9e                 flashcatcloud/nightingale:latest   "sh -c'/wait && /ap…"   n9e                 About a minute ago   Up About a minute   
prometheus          prom/prometheus                    "/bin/prometheus --c…"   prometheus          About a minute ago   Up About a minute   
redis               redis:6.2                          "docker-entrypoint.s…"   redis               3 days ago           Up About a minute

# categraf 采集器,默认不开启端口
# ibex 自愈服务端组件
# n9e 夜莺监控组件(v6 曾经把 webapi 与 server 整合到一起了,更为便捷与不便保护了)# prometheus Prometheus 时序数据库,存储指标;# redis 存储 JWT 等信息

上面进行应用 NGINX 反向代理夜莺监控,SSL 证书能够去申请一年的收费证书即可,而后上传到 /etc/nginx/ssl_certs 上面;

ll /etc/nginx/ssl_certs
-rw-r--r-- 1 root root 1675 Jun  11 17:16 n9e.unixsre.com.key
-rw-r--r-- 1 root root 3801 Jun  11 17:17 n9e.unixsre.com.pem
cat /etc/nginx/sites-available/n9e.unixsre.com
upstream N9E_Node {
    # n9e app upstream
    server 127.0.0.1:17000;
    keepalive 64;
}
server {
    listen 80;
    server_name n9e.unixsre.com;
    rewrite ^(.*)$ https://${server_name}$1 permanent; 
}

server {
        listen 443;
        server_name n9e.unixsre.com;
        ssl on;
        ssl_certificate   /etc/nginx/ssl_certs/n9e.unixsre.com.pem;
        ssl_certificate_key  /etc/nginx/ssl_certs/n9e.unixsre.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                # try_files $uri $uri/ =404;
                proxy_pass http://N9E_Node/;
        }
}

至此,夜莺监控装置实现了,这里仅做测试,如果你是生产的话,依据本人的理论状况进行架构设计,比方采纳风行的时序库 VictoriaMetrics,进行集群部署,上面是逻辑架构图:

当初登录夜莺 WEB 页面:https://n9e.unixsre.com 进行配置数据源,账号密码:root/root.2020,明码自行批改,切记!!!

数据源页面

Prometheus 数据源配置

VictoriaMetrics 数据源配置

ES 数据源配置

至此,夜莺监控的 V6 到此就装置实现了,这外面有很多新性能,请浏览官网 V6 文档:https://flashcat.cloud/docs/content/flashcat-monitor/nighting… 理解详情;

Categraf 采集器装置、配置采集 VSphere 指标

Categraf 的配置绝对简略,没那么简单,就 config.toml 跟 inputs.vsphere 插件的配置,主配置文件参数:https://flashcat.cloud/docs/content/flashcat-monitor/categraf…

cd /opt
wget https://download.flashcat.cloud/categraf-v0.3.12-linux-amd64.tar.gz
tar xf categraf-v0.3.12-linux-amd64.tar.gz
mv categraf-v0.3.12-linux-amd64 categraf
cd categraf/
cat conf/config.toml
# 因为测试环境,这里次要调整的就 3 个参数,1. 上报的指标 label 为主机名
2. 写入地址为 n9e 地址,默认端口为 17000;3. 心跳配置默认也是开启的,这会管制基础设施中的上报实例的心跳工夫、资源监控
[global]
hostname = "$hostname"
[[writers]]
url = "http://127.0.0.1:17000/prometheus/v1/write"
[heartbeat]
enable = true
url = "http://127.0.0.1:17000/v1/n9e/heartbeat"

上面的配置插件 vsphere 的配置,categraf 曾经集成好了,间接能够监控以后的 ESXi 主机曾经 vm 资源的 CPU、内存、负载、磁盘,只须要改如下 5 个参数就实现监控配置了:

  1. vcenter = https://vcenter.unixsre.com/sdk
  2. username = administrator
  3. password = 1234456780@.123#
  4. use_tls = true
  5. insecure_skip_verify = true
  6. 增加实例标签、集群标签上报给夜莺,仪表会应用到集群的这个 label;

其余的能够放弃默认就能够。

cat /opt/categraf/conf/input.vsphere/vsphere.toml
[[instances]]
  labels = {instance="192.168.11.111", clustername="Datacenter"}
  ##  vCenter URLs to be monitored. These three lines must be uncommented
  ## and edited for the plugin to work.
  vcenter = "https://vcenter.unixsre.com/sdk"
  username = "administrator@vcenter.unixsre.com"
  password = "1234456780@.123#"
...
  use_tls = true
  # tls_ca = "/path/to/cafile"
  # tls_cert = "/path/to/certfile"
  # tls_key = "/path/to/keyfile"
  ## Use SSL but skip chain & host verification
  insecure_skip_verify = true
...
# 启动 categraf
cp /opt/categraf/conf/categraf.service /lib/systemd/system/categraf.service
systemctl enable categraf.service
systemctl start categraf.service
6:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 metrics_agent.go:273: I! input: local.self_metrics started
Jun 12 16:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 metrics_agent.go:273: I! input: local.sockstat started
Jun 12 16:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 metrics_agent.go:273: I! input: local.system started
Jun 12 16:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 client.go:268: W! Option query for maxQueryMetrics failed. Using default
Jun 12 16:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 client.go:278: I! vCenter version is:  7.0.3
Jun 12 16:10:55 vm-177 categraf[28170]: 2023/06/12 16:10:55 endpoint.go:321: D! Running initial discovery
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(Datacenter, /*) returned 1 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(ClusterComputeResource, /*/host/**) returned 0 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(ResourcePool, /*/host/**) returned 1 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(HostSystem, /*/host/**) returned 1 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(VirtualMachine, /*/vm/**) returned 6 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(ResourcePool, /*/host/**) returned 1 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 finder.go:78: I! Find(Datastore, /*/datastore/**) returned 2 objects
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 metrics_agent.go:273: I! input: local.vsphere started
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 agent.go:47: I! [*agent.MetricsAgent] started
Jun 12 16:10:56 vm-177 categraf[28170]: 2023/06/12 16:10:56 agent.go:50: I! agent started
# 如果启动有报错问题能够应用如下命令进行排查,查看上报指标是否失常。/opt/categraf/categraf --test --debug --inputs vsphere

登录夜莺监控查看上报指标:

查看基础设施中的心跳上报与性能监控:

到这里就装置实现了,vpshere 参数能够参考 categraf 仓库:vsphere.toml

夜莺监控配置数据源与导入大盘

大盘地址:vsphere.json

在页面创立业务组跟用户组,复制 JSON 内容导入大盘:

告警配置能够在大盘里依据本人的需要,选取指标进行配置,我这里盘使用率来做例子,其余也一样的配置;

复制进去当前,删除变量,在时序指标外面查问一下,确保能够查问到数据;

sum(vsphere_datastore_disk_used_latest{vcenter=~".+"}/vsphere_datastore_disk_capacity_latest{vcenter=~".+"}) by(source)*100 > 40

在告警规定外面增加一个磁盘使用率大于 70% 的告警;

能够先用磁盘使用率大于 40% 测试一下,在沉闷告警里查看到告警信息。

对于 VMware VSphere 更多告警规定,请查看夜莺监控的 Github

结束语

到此,夜莺监控基于 categraf 采集 VSphere 监控到此就完结了,这个文章仅给小白指路,大佬能够疏忽,后续针对夜莺监控 v6 的告警自愈这块出一个抛砖引玉的文章~

更多的夜莺监控动静信息,请关注官方网站

正文完
 0