本文介绍在VPC网络下的ECS实例接入阿里云Prometheus监控后,如何监控ECS实例中的Node节点。

前提条件

说明 本文中的参数取值均为示例,您可以根据实际情况进行修改。

操作步骤

  1. 下载Node Exporter。
    • 通过Prometheus官网下载。
    • 通过命令下载。
      wget https://github.com/prometheus/node_exporter/releases/download/v1.2.0/node_exporter-1.2.0.linux-amd64.tar.gz
  2. 安装Node Exporter。
    1. 解压下载的Node Exporter。
      tar -zvxf node_exporter-1.2.0.linux-amd64.tar.gz -C /usr/local/
    2. 重命名解压后的文件。
      mv /usr/local/node_exporter-1.2.0.linux-amd64 /usr/local/node_exporter
    3. 启动Node Exporter。
      cd /usr/local/node_exporter
      nohup ./node_exporter &
    4. 检查9100端口是否被占用。
      ss -naltp | grep 9100

      返回信息如下时,表示9100端口未被占用。

      LISTEN 0      4096               *:9100             *:*    users:(("node_exporter",pid=1420**,fd=3))    

      如果9100端口被占用,则执行以下命令调整启动参数中的端口。例如,端口可以调整为9999。

      nohup ./node_exporter  --web.listen-address=":9999"&
  3. 检查服务。
    启动Node后通过命令访问以下地址。
    curl http://localhost:9100/metrics
    说明
    • 请根据实际情况替换命令中的localhost和端口。
    • 建议在其他ECS实例上也进行地址访问测试(http://[ECS IP]:9100/metrics),检查连接是否通畅,避免被安全组限制。

    预计可得到以下返回结果。

    # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
    # TYPE go_gc_duration_seconds summary
    go_gc_duration_seconds{quantile="0"} 0
    go_gc_duration_seconds{quantile="0.25"} 0
    go_gc_duration_seconds{quantile="0.5"} 0
    go_gc_duration_seconds{quantile="0.75"} 0
    go_gc_duration_seconds{quantile="1"} 0
    go_gc_duration_seconds_sum 0
    go_gc_duration_seconds_count 0
    # HELP go_goroutines Number of goroutines that currently exist.
    # TYPE go_goroutines gauge
    go_goroutines 7
    # HELP go_info Information about the Go environment.
    # TYPE go_info gauge
    go_info{version="go1.16.6"} 1
    # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
    # TYPE go_memstats_alloc_bytes gauge
    go_memstats_alloc_bytes 1.386192e+06
    # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
    # TYPE go_memstats_alloc_bytes_total counter
    go_memstats_alloc_bytes_total 1.386192e+06
    # HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
    # TYPE go_memstats_buck_hash_sys_bytes gauge
    go_memstats_buck_hash_sys_bytes 4562
    # HELP go_memstats_frees_total Total number of frees.
    # TYPE go_memstats_frees_total counter
    go_memstats_frees_total 754
  4. 添加服务发现。
    1. 登录Prometheus控制台
    2. Prometheus监控页面的顶部菜单栏,选择Prometheus实例所在的地域,单击目标VPC类型的Prometheus实例的名称。
    3. 在左侧导航栏单击设置,在右侧页面单击服务发现页签。
    4. 服务发现页签可以通过以下两种方式添加服务发现。

      方法一:修改默认服务发现。

      1. 默认服务发现页签,单击vpc-ecs-service-discovery右侧的详情
      2. YAML配置对话框中修改以下内容,然后单击确认

        将默认的端口8888改为实际的端口,例如:9100。

        Node监控默认服务发现修改

        此处会采集当前VPC网络下所有ECS实例上的9100/metrics端点。

        如果您只希望采集部分ECS实例,则可以通过配置tag_filters来对ECS实例按标签进行过滤。
        #格式如下   
           tag_filters: 
               - key: 'testKey'
                 values: ['testValue']
        Node监控增加标签过滤
        然后在ECS管理控制台中为ECS实例添加对应的标签。具体操作,请参见编辑实例标签ECS控制台中添加标签

      方法二:自定义服务发现。

      1. 自定义服务页签,单击新增
      2. 新增对话框,输入采集的指标参数,然后单击确定Node应用自定义服务发现
  5. 创建Grafana大盘。
    1. 在控制台左侧导航栏单击大盘列表
    2. 大盘列表页面单击右上角的创建大盘
    3. 在左侧导航栏选择+ > Import
    4. Import页面的Import via grafana.com文本框,输入Prometheus提供的Node大盘模板的ID12844,然后在其右侧单击Load
      说明 如需获取其他Grafana大盘模板,请参见Dashboards
      Node大盘模板
    5. Prometheus下拉列表,选择您的VPC网络下的数据源,然后单击Import

      VPC网络下的数据源名称格式为:vpc-****

      Node大盘模板Import
      导入成功后即可查看Grafana大盘。Node大盘