一、Premotheus介绍
Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。使用Go语言开发,是GoogleBorgMon监控系统的开源版本。它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。
特点:
多维数据模型(时序列数据由metric名和一组key/value组成)
在多维度上灵活的查询语言(PromQl)
不依赖分布式存储,单主节点工作.
通过基于HTTP的pull方式采集时序数据
可以通过pushgateway进行时序列数据推送(pushing)
可以通过服务发现或者静态配置去获取要采集的目标服务器
多种可视化图表及仪表盘支持
详细介绍见:https://prometheus.io/
二、Premotheus组件架构
Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。
-
PrometheusServer
主要负责数据采集和存储,提供PromQL查询语言的支持。
-
客户端SDK
官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。
-
PushGateway
支持临时性Job主动推送指标的中间网关。
-
PromDash
使用Rails开发可视化的Dashboard,用于可视化指标数据。
-
Exporter
Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。
Prometheus提供多种类型的Exporter用于采集各种不同服务的运行状态。目前支持的有数据库、硬件、消息中间件、存储系统、HTTP服务器、JMX等。
-
alertmanager
警告管理器,用来进行报警。
-
prometheus_cli
命令行工具。
-
其他辅助性工具
多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式。
三、Premotheus+Grafana安装
-
No.1 安装Go语言环境:(每个被监控机器均需安装)
如果是离线安装,国内下载地址:https://www.golangtc.com/download
]# tar -C /usr/local -xzf go1.9.4.linux-amd64.tar.gz
]# vim /etc/profile
在文件的最后添加如下内容:
exportPATH=$PATH:/usr/local/go/bin
保存退出后,接着让配置文件立刻生效:
]# source /etc/profile
验证一下是否成功,用goversion 来验证
]# go version
若网络畅通,直接在线安装 ]#yum install golang
-
No.2安装Prometheus&Node_exporter
下载地址:https://prometheus.io/download/
下载Prometheus和Node_exporter
下载好之后解压文件到安装目录。
配置prometheus监控配置文件:prometheus.yml
配置完成后启动Prometheus和node_exporter。
]# ./Prometheus
]# nohup ./node_exporter & //每个监控机器上必须要装,Prometheus服务主机也需要
通过如下URL可以打开prometheus的自带监控界面: IP:9090,点击targets 跳转到监控目标,这里展现了多个监控对象。
-
No3安装Prometheus面板:Grafana
下载地址:https://grafana.com/grafana/download
下载之后直接解压到安装目录启动。
]# servicegrafana-server start
启动后,打开URL,端口采用默认的3000,默认用户密码:admin/admin
进去后会要求修改密码,然后点击add datasource,选中 Prometheus 2.0 Stats后,就可以呈现如下的监控面板了:
在https://grafana.com/dashboards这里有很多实用的模板下载,下载好之后在Grafana里面加载上就可以使用了。
-End-
@Cooper_73 @gjs_73archer
更多精彩内容请关注微信公众号“73号弓箭手”
博客主页链接: https://www.cnblogs.com/cooper-73/
来源:oschina
链接:https://my.oschina.net/u/4291709/blog/3279488