1、概述linux
Prometheus 是什么?
Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,愈来愈多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,而且有公司来运做。google SRE的书内也曾提到跟他们BorgMon监控系统类似的实现是Prometheus。如今最多见的Kubernetes容器管理系统中,一般会搭配Prometheus进行监控。web
Prometheus 的优势
很是少的外部依赖,安装使用超简单
已经有很是多的系统集成 例如:docker HAProxy Nginx JMX等等
服务自动化发现
直接集成到代码
设计思想是按照分布式、微服务架构来实现的docker
Prometheus 的特性
自定义多维度的数据模型
很是高效的存储 平均一个采样数据占 ~3.5 bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。
强大的查询语句
轻松实现数据可视化
等等数据库
相对于Graphite这种产品,仍是有很多优势的。最让我以为不错的是很是优秀的写性能和读取性能,它数据结构实现和OpenTSDB是有类似之处,有兴趣能够看看这个文档浏览器
2、安装Prometheus
下载http://cactifans.hi-www.com/prometheus/prometheus-2.1.0.linux-amd64.tar.gz
prometheus安装比较简单,下载编译好的二进制文件,修改好配置文件,直启动便可
下载以后解压bash
tar zxvf prometheus-2.1.0.linux-amd64.tar.gz数据结构
mv prometheus-2.1.0.linux-amd64 /usr/local/rometheus架构
解压以后,会有一个默认的配置文件,能够直接使用这个配置文件启动分布式
cd /usr/local/prometheus
./prometheus --config.file=prometheus.yml
便可启动prometheus,默认端口为9090.经过浏览器能够看到以下页面,表示prometheus启动正常。微服务
prometheus自带的绘图功能比较弱,如何才能使展现效果高大上呢?这里就要使用Grafana.借助与Grafana能够彻底自定义属于本身的Dashboard监控视图。
使用Yum安装Grafana
yum install https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm
这将以包安装期间建立grafana-server
的grafana
用户身份启动进程。默认HTTP端口是3000
,默认用户和组是admin
。
默认登陆名和密码admin
/admin
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
#!/bin/bash
#stop prometheus
pidnum=$(sudo ps -ef|grep prometheus|grep -v grep|awk -F " " '{print $2}')
sudo kill -9 ${pidnum}
#start prometheussudo nohup /opt/prometheus-2.8.0/prometheus --config.file /data/prometheus/conf/prometheus.yml --storage.tsdb.path /data --storage.tsdb.retention 30d --web.console.templates /opt/prometheus-2.8.0/consoles/ --web.console.libraries /opt/prometheus-2.8.0/console_libraries &