Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包。
主要具有如下功能:
多维 数据模型(时序由 metric 名字和 k/v 的 labels 构成)。
灵活的查询语句(PromQL)。
无依赖存储,支持 local 和 remote 不同模型。
采用 http 协议,使用 pull 模式,拉取数据,简单易懂。
监控目标,可以采用服务发现或静态配置的方式。
支持多种统计数据模型,图形化友好。
3.prometheus的优点
1.非常少的外部依赖,安装使用简单
2.已经有非常多的系统集成,例如:docker haproxy nginx jmx等等
3.服务自动化发现
4.直接集成到代码
5.设计思想是按照分布式,微服务架构来实现的
4.prometheus的特性
1.自定义多维度的数据模型
2.非常高效的存储,平均一个采样数据占~3.5bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。
3.强大的数据查询
4.轻松实现数据可视化
5.prometheus架构图
6.prometheus架构说明
7.prometheus的适用场景
Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。
Prometheus,它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息。 如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统。
8.go环境搭建
1.使用rz命令上传
[root@localhost datas]# rz
2.解压到local下
[root@localhost datas]# tar -zxvf go1.11.9.linux-amd64.tar.gz -C /usr/local/
3.查看路径
[root@localhost go]# pwd
/usr/local/go
4.环境配置
[root@localhost go]# vim /etc/profile
#go
export GO_HOME=/usr/local/go
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JMETER_HOME/lib:$ANT_HOME/lib:$GO_HOME/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$PATH:$JMETER_HOME/bin:$ANT_HOME/bin:$GO_HOME/bin
6.立即生效
[root@localhost go]# source /etc/profile
7.验证环境
[root@localhost go]# go version
go version go1.11.9 linux/amd64
9.prometheus环境搭建
1.上传prometheus
[root@localhost datas]# rz
或者在线安装:
wget https://github.com/prometheus/prometheus/releases/download/v2.8.0/prometheus-2.8.0.linux-amd64.tar.gz
2.解压prometheus
[root@localhost datas]# tar -zxvf prometheus-2.9.2.linux-amd64.tar.gz -C /usr/local/
3.查看路径
[root@localhost prometheus-2.9.2.linux-amd64]# pwd
/usr/local/prometheus-2.9.2.linux-amd64
4.配置yml
[root@localhost prometheus-2.9.2.linux-amd64]# vim prometheus.yml
[root@localhost prometheus-2.9.2.linux-amd64]# ./prometheus &
1.访问prometheus
在浏览器中输入:http://192.168.102.130:9090/graph 进行访问
错误1:无法访问
分析1:是否网络通,ping一下
分析2:防火墙问题
分析3:yml文件配置问题
看报错信息:
问题1:level=error ts=2018-11-19T06:01:05.697957445Z caller=main.go:625
err="opening storage failed: lock DB directory: resource temporarily unavailable
解决:删除 lock 文件
rm -f /opt/prometheus/data/lock
问题2:level=error ts=2018-11-19T06:04:47.83421089Z caller=main.go:625
err="error starting web server: listen tcp 0.0.0.0:9090: bind: address already in use"
解决:查找使用9090端口的PID并删掉
lsof -i :9090
kill -9
问题3:-bash: netstat: 未找到命令
解决:执行安装命令
yum install net-tools
[root@localhost ~]# netstat -tln
[root@localhost ~]# netstat -tln |grep 9090
tcp6 0 0 :::9090 :::* LISTEN
[root@localhost ~]# lsof -i :9090
提示:lsof:未找到命令 去安装 yum install lsof
[root@localhost ~]# lsof -i :9090
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
prometheu 9504 root 6u IPv6 32578 0t0 TCP *:websm (LISTEN)
prometheu 9504 root 7u IPv4 32580 0t0 TCP localhost:55048->localhost:websm (ESTABLISHED)
prometheu 9504 root 8u IPv6 32581 0t0 TCP localhost:websm->localhost:55048 (ESTABLISHED)
prometheu 9504 root 9u IPv4 30618 0t0 TCP localhost.localdomain:46854->localhost.localdomain:websm (ESTABLISHED)
prometheu 9504 root 10u IPv6 32616 0t0 TCP localhost.localdomain:websm->localhost.localdomain:46854 (ESTABLISHED)
[root@localhost ~]# kill -9 9504
再次启动,依旧无法访问,去查看防火墙状态
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
去关闭防火墙,关闭防火墙命令:systemctl stop firewalld.service
再次启动
[root@localhost prometheus-2.9.2.linux-amd64]# ./prometheus &
成功打开
去点击targets,未显示zookeeper的,why?
原因:需要重启prometheus,配置才会生效,但是未配置prometheus的自定义启动服务,无法重启,只能手动杀掉进行,再次启动,才能看到配置的zookeeper
11.prometheus的关闭
关闭需要关闭prometheus 的进程
查看是否启动状态:netstat -tln |grep 9090
查看端口的pid :lsof -i :9090
杀掉进程:kill -9 pid
杀掉进程后,再次启动服务,看到变化
如何让zookeeper服务的状态为up?
12.zookeeper配置
1.上传zookeeper-exporter到 /usr/local/bin 下
[root@localhost bin]# rz
[root@localhost bin]# ll
总用量 10776
-rw-r--r--. 1 root root 11033305 11月 20 16:28 zookeeper_exporter
赋予权限:chmod 775 /usr/local/bin/zookeeper_exporter
启动zookeeper:/usr/local/bin/zookeeper_exporter
[root@localhost bin]# /usr/local/bin/zookeeper_exporter
INFO[0000] zookeeper_exporter, version v1.0.2 (branch: HEAD, revision: d6e929223f6b3bf5ff25dd0340e8194cbd4d04fc)
build user: @bd731f434d23
build date: 2018-05-01T20:40:14+0000
go version: go1.10.1
INFO[0000] Starting zookeeper_exporter
INFO[0000] Starting metric http endpoint on :9141
刷新后查看服务:
点击/metrics,可查看数据
prometheus自带的监控,界面观看数据不美观,不方便,所以可以采用grafana去更好的监控数据