一、Prometheus 简介

gitlab官方地址:https://github.com/prometheus/prometheus

Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。

Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。

Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一。

Prometheus 基础架构


如上图,Prometheus 主要由以下部分组成:

  • Prometheus Server:主要是负责存储、抓取、聚合、查询方面。(服务器端)
  • Alertemanager:主要是负责实现报警功能。
  • Pushgateway:主要是实现接收有 Client-push 过来的指标数据,在指定的时间间隔,有主程序来抓取。
  • *_exporter:主要是负责采集物理机、中间件的信息。(客户端)

二、Prometheus 服务器端安装

准备工作:
服务器端:192.168.152.103 ubuntu
客户端:192.168.152.101 ubuntu

1:下载

在192.168.152.103,服务器端下载地址:https://github.com/prometheus/prometheus/releases

找到自己Linux版本,我这里为Linux-amd64,大多数基本都是这个。

#下载
wget https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
#解压
tar -zxvf  prometheus-2.37.0.linux-amd64.tar.gz
#重命名文件夹,名称太长,方便后续操作
mv prometheus-2.37.0.linux-amd64 prometheus
# 进入文件夹
cd prometheus/

查看文件可看到以下文件。

ubuntu@ubuntu:~/prometheus$ ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool

只需要关注 prometheus(启动文件), prometheus.yml(配置文件),这两个文件即可。

默认配置文件内容为

cat prometheus.yml
# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. 默认情况下,每15s拉取一次目标采样点数据。evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.每15秒评估一次规则。默认值为每1分钟# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# 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"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]

2:启动测试服务器

启动

./prometheus --config.file=prometheus.yml

当启动 Prometheus 后,便可以通过 9090 端口来访问 Prometheus 自带的 UI 界面:

在浏览器打开 http://192.168.152.103:9090/,即可访问UI界面。

三、安装 Node_Exporter客户端

1:下载解压

在192.168.152.101,客户端下载地址:https://github.com/prometheus/node_exporter/releases

同样找到Linux-amd64这个版本,下载解压即可

#下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
#解压
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
#重命名
mv node_exporter-1.3.1.linux-amd64 node_exporter

2:启动Node_Exporter客户端

客户端,没有其他配置文件,默认直接启动即可

./node_exporter

启动后,默认监听端口为9100,在浏览器输入,192.168.152.101:9100可以查看访问 Client 的监控指标。

点击Metrics进入可以看到相关信息。

四、服务器添加连接客户端

只需要在服务器配置文件种,添加 job_name 即可,有几个客户端,就添加几个。名称自己取即可。

更改服务器配置文件

vim prometheus.yml

最后面添加即可。[‘192.168.152.101:9100’]为客户端信息。

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. 默认情况下,每15s拉取一次目标采样点数据。evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.每15秒评估一次规则。默认值为每1分钟# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# 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"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]- job_name: "linux"static_configs:- targets: ['192.168.152.101:9100']

重启服务器端,即可

./prometheus --config.file=prometheus.yml

测试,查看是否添加成功,登录浏览器UI界面,在Status >> Targets 即可查看到所有客户端信息可服务器信息。

状态UP即可正常。

五、第三方界面安装

由于prometheus自带UI界面相对比较简陋,所以我们需要用到第三方工具Grafana在管理,这样更友好,更直观。

这里测试机器有限,所以也安装在192.168.152.103服务器端,你也可以安装在其他机器上面。

1:Grafana安装

官方安装文档:https://grafana.com/docs/grafana/next/setup-grafana/installation/debian/
选择自己合适的系统,可以选择企业版(Enterprise)或者开源版本(OSS),我这里为Ubuntu安装企业版,所以安装如下:

获得最新版key(企业版)

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

添加最新稳定版仓库

echo "deb https://packages.grafana.com/enterprise/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

如果想要安装最新的测试版,添加仓库如下

echo "deb https://packages.grafana.com/enterprise/deb beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

最后更新,安装

sudo apt-get update
sudo apt-get install grafana-enterprise

当然你也可以安装开源版本OSS,文档也有配置,安装一样。

2:启动Grafana,并添加prometheus

启动Grafana,默认端口为3000.

sudo systemctl start grafana-server.service

访问Grafana,登录http://192.168.152.103:3000/,默认账号密码:admin,admin

添加数据 add data source

选择prometheus

添加prometheus的服务器IP地址,默认端口为9090

其他默认,保存即可。

保存完成后,在explore即可看到刚才添加的prometheus数据。
当然这时候,还是看不懂的,这时还需要下一步配置Dashboards界面,更加友好直观。

3:Grafana配置添加Dashboards

官方提供了很多模板,可以自己根据需求喜好来选择。当然只能选择prometheus的模板。

官方模块地址:https://grafana.com/grafana/dashboards/

这里第1个就是prometheus的模板,看下载的人也最多,所以我就选择这个,点击进去。可以看到这个代号,复制即可,这个代号为1860。

回到Grafana,在Dashboards中,选择Import导入即可。

填写1860,load即可完成。

添加完成后,即可按host和时间在选择图形观看了。

这里界面基本就配置完成了。

六、后台启动

配置完成,还需要配置后台启动,直接用nohup就行

服务器端:

#不保存日志
nohup ./prometheus --config.file=prometheus.yml >/dev/null 2>&1 &
#保存日志到/var/log/prometheus.log
nohup ./prometheus --config.file=prometheus.yml >/var/log/prometheus.log 2>&1 &

客户端:

#不保存日志
nohup ./node_exporter >/dev/null 2>&1 &
#保存日志到/var/log/node_exporter.log
nohup ./node_exporter >/var/log/node_exporter.log 2>&1 &

当然还可以把服务写进systemd,设置开机自启,可以自行研究。

下一步是告警发送的配置,会在下一篇文章介绍。

普罗米修斯Prometheus+Grafana,监控搭建与界面基础配置相关推荐

  1. metrics类型 普罗米修斯_使用普罗米修斯和Grafana监控Flink运行状态

    Pushgateway pushgateway 是一个Prometheus 生态中重要工具,因为Prometheus采用Pull模式,可能由于一些原因,Prometheus无法直接拉取各个target ...

  2. 监控神器-普罗米修斯Prometheus的安装

    最近看了些AIOPS的资料,对于里面提及的一个普罗米修斯Prometheus起了兴趣,首先是联想到异形,哈哈.去看了一下,普罗米修斯还真是厉害,而且还是开源的,真是搬砖党的福音. 功能: 在业务层用作 ...

  3. 监控神器普罗米修斯Prometheus安装配置

    一.基础环境 环境/组件 版本 下载地址 操作系统 CentOS 7.3 http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/Cen ...

  4. 监控之星-普罗米修斯Prometheus搭建

    监控之星-普罗米修斯Prometheus搭建 导图 #mermaid-svg-JxDWZpg7w4fUYZee {font-family:"trebuchet ms",verdan ...

  5. 普罗米修斯prometheus的安装与监控linux

    golang的安装 普罗米修斯是go开发的,所以需要安装go环境. 先下载golang,下载地址:https://studygolang.com/dl, 这里选择的是:https://studygol ...

  6. 普罗米修斯 mysql监控_普罗米修斯Prometheus监控MySQL

    普罗米修斯Prometheus监控MySQL 添加数据库用户 CREATE USER monitor_prometheus@'192.168.245.%' IDENTIFIED BY 'Abcde@1 ...

  7. 普罗米修斯Prometheus监控神器

    文章目录 一.普罗米修斯Prometheus监控系统 1.1实验环境 1.2安装普罗米修斯 1.3访问prometheus界面(web) 1.4主机数据显示 1.5普罗米修斯监控图像 1.6普罗米修斯 ...

  8. 普罗米修斯Prometheus的安装及Grafana使用

    首先安装运行环境go 如果有网络 使用命令 yum install go -y 如果没有网络使用离线安装包 下载:Linux :go1.8.3.linux-amd64.tar.gz [root@bob ...

  9. 普罗米修斯java_springboot集成普罗米修斯(Prometheus)的方法

    Prometheus 是一套开源的系统监控报警框架.它由工作在 SoundCloud 的 员工创建,并在 2015 年正式发布的开源项目.2016 年,Prometheus 正式加入 Cloud Na ...

最新文章

  1. 计算机专业英语已经出版,欢迎关注
  2. 11岁美国男孩用玩具熊“黑”了国际网络安全大会
  3. 如何找到在SAP社区上经过SAP官方认可比较有影响力的SAP从业者
  4. android 屏幕旋转不重新加载,Android webview旋转屏幕导致页面重新加载问题解决办法...
  5. 小程序 富文本自适应屏幕_自适应文本:跨屏幕尺寸构建可读文本
  6. 这个十八线品牌火了!直言后置三摄里有两个摄像头是装饰用的
  7. 新春牛年迎春PSD分层模板!最全设计素材都在这了
  8. Android报错:java.lang.ClassCastException: com.github.mikephil.charting.charts.PieChart cannot be cast
  9. 计算机不能打印图片,win7系统电脑连接打印机可以打印文档不能打印图片的解决方法...
  10. epoll监听文件_Go 文件监控怎么实现?
  11. android 远程控制windows,Android手机远程控制Windows系统教程
  12. 计算机电源+3c认证,电源适配器要不要做3C认证?怎么做
  13. jh锂电保护电路_锂电池保护电路工作原理
  14. java 骑士飞行棋_C#实现骑士飞行棋
  15. Win7系统服务优化攻略
  16. Python numpy实现二维数组和一维数组拼接
  17. 网站域名未备案可以使用奇安信网站卫士吗?
  18. HCIA-H12-811(1-50)
  19. 计算机win7卡顿如何解决方法,win7电脑运行很慢很卡怎么办
  20. 数据库访问层中间件Zebra

热门文章

  1. 分布式服务框架Dubbo/Dubbox入门示例
  2. 用vim编辑时怎么复制粘贴外部内容(在ubuntu操作系统中)
  3. 手机沙盒隔离软件_x8沙箱官网下载-X8沙箱(隔离运行双开助手)下载v0.6.8.8-cn 安卓版-西西软件下载...
  4. 大数据告诉你何时何地买手机最划算!
  5. SMETA验厂辅导,对于已经通过了审核公司的ETI标准验厂,如何将验厂结果上传到SEDEX上
  6. Flex for .NET platform
  7. vue-cli 原理分析
  8. 空间坐标转化——三维转二维
  9. Convolutional Neural Networks for Sentence Classification用于句子分类的卷积神经网络
  10. 【0022】没办法,你只能从“糟糕的”产品经理做起