prometheus安装较为简单,下面会省略安装步骤:node
一.服务器启动
- Prometheus启动
./prometheus --config.file=prometheus.yml
- Grafana启动
service grafana-server start
- 设置自启动
如需自启动某些服务,只需使用chkconfig 服务名 on便可,若想关闭,将on改成off ,如 chkconfig grafana-server on
二.访问服务器
1.Prometheus:部署ip:9090(默认端口号);
2.Grafana:部署ip:3000(默认端口号),访问Grafana服务器的时候会要求输入帐号密码,这里使用默认帐号密码,帐号:admin,密码:admin
3.设置Grafana管理Prometheus
三.配置exporter(监控不一样的对象须要不一样的导出器)
- 下载exporter tar.gz并上传至服务器
- 解压
./node_exproter
安装
curl 127.0.0.1:9100 验证,curl 127.0.0.1:9100/metrics,会返回一大推性能指标
- 在
prometheus
中的yml文件中,配置exporter导出器
四.问题
至此全部安装已完成,可是还存在如下问题,这些问题咱们放在下面的配置,可视化段落处理。数据库
- Prometheus server并无配置被监控端的IP地址,即没有取指定的机器取数据
- 启动的方式太不人性化了,没有启动脚本。
- grafana没有可用的dashboard用于展现
五.Exporter的来源
从Exporter的来源上来说,主要分为两类:编程
- 社区提供的
Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的监控功能。这些Exporter能够实现大部分通用的监控需求。下表列举一些社区中经常使用的Exporter:
- 数据库 MySQL Exporter, Redis Exporter, MongoDB Exporter, MSSQL Exporter等
- HTTP服务 Apache Exporter, HAProxy Exporter, Nginx Exporter等
- 用户自定义的
除了直接使用社区提供的Exporter程序之外,用户还能够基于Prometheus提供的Client Library建立本身的Exporter程序,目前Promthues社区官方提供了对如下编程语言的支持:Go、Java/Scala、Python、Ruby。同时还有第三方实现的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust等。
六.Exporter的运行方式
- 独立使用的
以咱们已经使用过的Node Exporter为例,因为操做系统自己并不直接支持Prometheus,同时用户也没法经过直接从操做系统层面上提供对Prometheus的支持。所以,用户只能经过独立运行一个程序的方式,经过操做系统提供的相关接口,将系统的运行状态数据转换为可供Prometheus读取的监控数据。 除了Node Exporter之外,好比MySQL Exporter、Redis Exporter等都是经过这种方式实现的。 这些Exporter程序扮演了一个中间代理人的角色。
- 集成到应用中的
为了可以更好的监控系统的内部运行状态,有些开源项目如Kubernetes,ETCD等直接在代码中使用了Prometheus的Client Library,提供了对Prometheus的直接支持。这种方式打破的监控的界限,让应用程序能够直接将内部的运行状态暴露给Prometheus,适合于一些须要更多自定义监控指标需求的项目。
七.总体流程
1.使用合适的exporter导出器,配置监控目标对象
2.配置prometheus中的yml文件,配置exporter
3.grafana中配置数据源为prometheus