入门指南:使用Prometheus监控Linux服务器

Prometheus介绍

image-20230331095757061

Prometheus是一款开源的监控系统,主要用于收集、存储和查询时间序列数据,以便于对系统进行监控和分析。以下是Prometheus的架构图介绍:

Prometheus的架构由四个主要组件组成:

  1. Prometheus Server(Prometheus服务器) :Prometheus Server是Prometheus的核心组件,主要负责从各个目标(target)中收集指标(metrics)数据,并对这些数据进行存储、聚合和查询。Prometheus Server还提供了一个Web界面,用于展示和查询监控数据。
  2. Client Libraries(客户端库) :Prometheus提供了多种客户端库,用于在应用程序中嵌入Prometheus的指标收集功能。客户端库支持多种编程语言,包括Go、Java、Python等,用户可以根据自己的需求选择合适的客户端库。
  3. Exporters(导出器) :Exporters是用于将第三方系统的监控数据导出为Prometheus格式的组件。Prometheus支持多种Exporters,例如Node Exporter、MySQL Exporter、HAProxy Exporter等,用户可以根据自己的需求选择适合的Exporter。
  4. Alertmanager:Alertmanager是Prometheus的告警组件,用于根据用户定义的规则对监控数据进行告警。Alertmanager支持多种告警方式,例如邮件、Slack、PagerDuty等。用户可以根据自己的需求选择适合的告警方式。

同时Prometheus有以下优点

  1. 灵活的数据模型:Prometheus采用的是key-value对的形式存储指标数据,每个指标都可以包含多个标签(labels),这样可以更加灵活地描述指标数据。例如,可以使用标签来描述不同的机器、不同的应用程序、不同的数据中心等,从而更加细粒度地监控系统。

  2. 高效的存储和查询:Prometheus使用自己的时间序列数据库,可以高效地存储和查询大量的指标数据。同时,Prometheus提供了灵活的查询语言(PromQL),可以对指标数据进行复杂的查询和聚合操作。

  3. 强大的可视化和告警功能:Prometheus提供了Web界面和API,可以方便地展示和查询监控数据。同时,Prometheus还提供了灵活的告警功能,可以根据用户定义的规则对监控数据进行告警,并支持多种告警方式。

  4. 可扩展性强:Prometheus的架构非常灵活,可以根据需要选择合适的组件进行配置。同时,Prometheus还支持多种扩展方式,例如使用Pushgateway将非常规的指标数据推送到Prometheus,使用Federation将多个Prometheus Server进行联合查询等。

  5. CNCF的成员项目:CNCF是一个非营利组织,致力于推广云原生技术,包括容器、服务网格、微服务、不可变基础设施等。Prometheus作为CNCF的项目之一,得到了广泛的关注和支持,并且得到了来自全球各地的贡献者的积极参与和开发。作为一个CNCF的项目,Prometheus不仅具有开源、社区化的特点,而且还受到了CNCF的支持和认可,可以更好地满足云原生环境下的监控需求。

下面就Prometheus基于本地环境进行监控报警进行讲解

下载

docker pull prom/prometheus:v2.43.0

image-20230329170341774

配置

创建文件夹data

image-20230329170516593

创建配置文件prometheus.yml,可以根据需要进行配置

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

因为路径过长,创建一个软链

 ln -s /Users/weizhao.dong/Documents/soft/prometheus /data/prometheus

启动

docker run --name prometheus -d -p 9090:9090 -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml   -v /data/prometheus:/prometheus prom/prometheus:v2.43.0

image-20230330141947743

image-20230330233346072

Grafana安装

下载

docker pull grafana/grafana-enterprise:8.5.22

image-20230330143946592

启动

docker run -d --name=grafana -p 3000:3000 grafana/grafana-enterprise:8.5.22

image-20230330233325310

配置数据源

添加prometheus数据源

image-20230330233452500

image-20230515232307244

Linux服务器资源监控

下载node-exporter

由于我的电脑是arm架构所以使用了arm64的包,如果是其他架构请访问此链接进行下载https://github.com/prometheus/node_exporter/releases

wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-arm64.tar.gz

下载解压执行node_exporter文件暴漏9100端口,即可采集到监控信息

image-20230330233733640

image-20230330233840865

安装node-exporter

由于直接启动node-exporter关闭窗口此进程就会挂掉,所以不是我们想要的,因此可以采用systemctl方式进行配置

  1. /usr/lib/systemd/system/目录,创建node_exporter.service文件,内容如下,ExecStart指向的就是node_exporter执行文件

    [Unit]
    Description=Node Exporter
    
    [Service]
    ExecStart=/usr/local/node_exporter
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target
    
  2. 执行systemctl daemon-reload

  3. 执行 systemctl start node_exporter启动node_exporter

  4. 执行netstat -aon|grep 9100查看9100是否启动成功

    image-20230330234533527

修改prometheus配置文件

增加以下任务,5s采集一次

  - job_name: 'linux'
    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    static_configs:
      - targets: ['10.211.55.4:9100']

image-20230330234805218

重启prometheus

docker restart prometheus

image-20230330234904188

image-20230330234938650

Grafana文件配置

访问官网https://grafana.com/grafana/dashboards/下载node_export配置文件

image-20230330235849765

点击进去,点击右边的DownloadJson文件进行下载

image-20230330235927788

文件下载以后导入到Grafana

image-20230331000109536

导入完成以后,查看可以看到对应的数据采集到

image-20230331000226890

到这Linux监控就告一段落。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值