微服务监控实践(一)- Prometheus的安装及配置

引子:最近在学golang,又碰巧项目组需要做微服务监控,搜索之后最终选定prometheus+grafana+springcloud(eureka)作为技术框架。

本篇文章主要讲解prometheus服务端的安装及配置


1. Prometheus的下载

官网: https://prometheus.io/

下载地址: https://prometheus.io/download/

官方文档: https://prometheus.io/docs/prometheus/latest/getting_started/

Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 。

更多信息请参考官网介绍: https://prometheus.io/docs/introduction/overview/

当然,更多的时候由于访问外网的速度过慢,你是无法直接从官网上下载的,这里推荐一个镜像站点:http://cactifans.hi-www.com/
1


2. Prometheus的安装

由于使用的是二进制压缩文件,所以安装方式非常简单。

  • 首先,打开xshell连接服务器;
  • 使用 rz 命令上传压缩包(如果找不到rz命令的,请使用yum install lrzsz 安装)
    2
  • 使用tar -zvxf prometheus-2.14.0.linux-amd64.tar.gz 解压
    3
  • 使用 mv prometheus-2.14.0.linux-amd64 /usr/local/prometheus 移动文件夹到 /usr/local 目录下,便于管理
    4
  • 使用./prometheus --help查看启动配置项,复制--config.file="prometheus.yml"后构成最基本启动项,执行./prometheus --config.file="prometheus.yml"启动prometheus
    5
  • 查看是否启动成功,浏览器访问ip:port。我这里是http://192.168.13.101:9090
    6

这样,prometheus的基本安装就已ok,接下来我们研究一下prometheus的配置。


3. Prometheus的配置

3.1 配置后台启动

  • CentOS7下,采用systemd配置后台启动,首先使用 cd /usr/lib/systemd/system 进入目录
  • 拷贝一个现有的service作为prometheus的service cp sshd.service prometheus.service
  • 修改service文件 vi prometheus.service
[Unit]
Description=prometheus.io

[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • 生效系统systemd配置文件,systemctl daemon-reload
  • 启动prometheus systemctl start prometheus
  • 查看进程 ps -ef|grep prometheus
    7

3.2 配置文件说明

prometheus的大部分功能可以通过配置实现,因此这里介绍一下其默认配置文件。

详细的配置说明请参考官方文档:prometheus.config.doc, 这里只介绍一下关键配置项

  • 全局配置项(global):
global:
  # 监控采集周期
  [ scrape_interval: <duration> | default = 1m ]

  # 采集超时时长
  [ scrape_timeout: <duration> | default = 10s ]

  # 告警周期
  [ evaluation_interval: <duration> | default = 1m ]

  # 外部标签
  external_labels:
    [ <labelname>: <labelvalue> ... ]

# 告警规则
rule_files:
  [ - <filepath_glob> ... ]

# 被监控端配置
scrape_configs:
  [ - <scrape_config> ... ]

# AlertManager告警组件配置
alerting:
  alert_relabel_configs:
    [ - <relabel_config> ... ]
  alertmanagers:
    [ - <alertmanager_config> ... ]

# 远程存储,用于替代默认TSDB,推荐采用InfluxDB
remote_write:
  [ - <remote_write> ... ]

# 远程读取
remote_read:
  [ - <remote_read> ... ]
  • 被监控端配置项(scrape_config部分):
# 各种服务发现配置项
# List of Azure service discovery configurations.
azure_sd_configs:
  [ - <azure_sd_config> ... ]

# Spring Cloud Consul,该项可以在EUREKA中集成,实现EUREKA的服务发现
consul_sd_configs:
  [ - <consul_sd_config> ... ]

# List of DNS service discovery configurations.
dns_sd_configs:
  [ - <dns_sd_config> ... ]

# List of EC2 service discovery configurations.
ec2_sd_configs:
  [ - <ec2_sd_config> ... ]

# List of OpenStack service discovery configurations.
openstack_sd_configs:
  [ - <openstack_sd_config> ... ]

# 文件
file_sd_configs:
  [ - <file_sd_config> ... ]

# List of GCE service discovery configurations.
gce_sd_configs:
  [ - <gce_sd_config> ... ]

# 用于k8s的服务发现,也是prometheus最大的优势
kubernetes_sd_configs:
  [ - <kubernetes_sd_config> ... ]

# List of Marathon service discovery configurations.
marathon_sd_configs:
  [ - <marathon_sd_config> ... ]

# 爱彼迎的注册中心
nerve_sd_configs:
  [ - <nerve_sd_config> ... ]

# 大名鼎鼎的ZK
serverset_sd_configs:
  [ - <serverset_sd_config> ... ]

# List of Triton service discovery configurations.
triton_sd_configs:
  [ - <triton_sd_config> ... ]

# 静态配置被监控端
static_configs:
  [ - <static_config> ... ]

# 配置项重载,使用率很高
relabel_configs:
  [ - <relabel_config> ... ]

# List of metric relabel configurations.
metric_relabel_configs:
  [ - <relabel_config> ... ]

至此,Prometheus的安装及配置已经完成,下一节讲解如何在Spring Cloud中集成Prometheus

发布了21 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/fIsh1220Fish/article/details/104231542