9点面试...9点05面试结果就出来... 面试官问我什么是Prometheus...

9点面试…9点05面试结果就出来… 面试官问我什么是Prometheus…

Prometheus是一个开源的系统监控和警报工具,它在云原生环境中非常流行。它使用Go语言编写,具有高度的可扩展性和可靠性。本文将详细介绍如何使用Prometheus来监控主机资源以及如何配置node节点监控。

1. 安装Prometheus

在开始之前,确保你已经在你的主机上安装了Prometheus。你可以从Prometheus官方网站下载对应平台的二进制文件,或使用包管理器安装。

2. 使用Node Exporter监控主机

Node Exporter是Prometheus的一个官方工具,用于从主机操作系统收集指标。它能够提供有关CPU、内存、磁盘、网络和其他硬件资源的统计信息。

安装Node Exporter

在Linux上,可以使用以下命令安装Node Exporter:

wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz
cd node_exporter-1.3.1.linux-amd64

在Windows上,可以从GitHub releases页面下载对应的二进制文件。

启动Node Exporter

启动Node Exporter非常简单,只需运行一个命令:

./node_exporter

默认情况下,Node Exporter会在端口9100上暴露指标。

配置Prometheus监控Node Exporter

接下来,你需要配置Prometheus来抓取Node Exporter提供的指标。在Prometheus的配置文件中添加以下内容:

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['<node_exporter_ip>:9100']

替换<node_exporter_ip>为你的Node Exporter所在主机的IP地址。

3. 配置Node节点监控

如果你正在使用Kubernetes,并且想要监控集群中的节点,你需要部署并配置Prometheus以监控每个节点。这通常涉及两个步骤:部署Prometheus和部署节点级别的监控组件。

部署Prometheus

你可以使用Helm chart、Operator或者手动方式部署Prometheus。这里我们展示一个简单的手动部署方法。

首先,创建一个名为prometheus-config.yaml的配置文件:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'kubernetes-nodes'
    kubernetes_sd_configs:
      - role: node
    relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - target_label: __address__
        replacement: kubernetes.default.svc:443
      - source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        target_label: __metrics_path__
        replacement: /api/v1/nodes/${1}/proxy/metrics/resource

然后,启动Prometheus容器:

docker run 
  --name prometheus 
  -p 9090:9090 
  -v $PWD/prometheus-config.yaml:/etc/prometheus/prometheus.yml 
  -v $PWD/prometheus-data:/prometheus 
  -d prom/prometheus

这将启动一个Prometheus实例,它会开始抓取Kubernetes节点的指标。

部署节点级别监控组件

为了获取更详细的节点级别指标,你可能需要部署额外的监控组件,如cAdvisor或node_exporter。这些组件可以直接在每个节点上运行,或者通过DaemonSet在集群范围内部署。

例如,使用以下命令部署cAdvisor:

kubectl apply -f https://raw.githubusercontent.com/google/cadvisor/master/deploy/kubernetes/cadvisor.yaml

然后,更新Prometheus的配置文件以包含cAdvisor的指标:

scrape_configs:
  - job_name: 'kubernetes-nodes'
    kubernetes_sd_configs:
      - role: node
    relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - target_label: __address__
        replacement: kubernetes.default.svc:443
      - source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        target_label: __metrics_path__
        replacement: /api/v1/nodes/${1}/proxy/metrics/cAdvisor

4. 查看监控数据

一旦你的监控组件开始收集数据,你就可以使用Prometheus的内置Web界面查看这些数据。访问http://<prometheus_ip>:9090,其中<prometheus_ip>是你的Prometheus服务器的IP地址。

在Prometheus的Web界面中,你可以执行PromQL查询来获取特定指标的数据。例如,要查看所有节点的CPU使用率,可以执行以下查询:

sum by (instance) (rate(container_cpu_usage_seconds_total{container!="", container!~"POD|pause", container!~"^kubelet|kubeproxy|kube-proxy|kube-state-metrics|kube-router|weave|flanneld$", pod=~"^(?!kube-state-metrics).*", namespace!="kube-system", instance!="<node_exporter_ip>:9100"}[5m])) * 100

此外,你还可以将Grafana等可视化工具与Prometheus集成,以便更直观地查看和分析指标数据。

总结

通过使用Prometheus和Node Exporter,你可以有效地监控你的主机资源。同时,通过配置节点级别的监控组件,你可以更深入地了解Kubernetes集群的性能和健康状况。希望本文能帮助你了解如何配置和使用Prometheus进行主机和节点监控。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值