背景
prometheus是一个开源的流行监控报警系统,使用go语言开发,在docker社区使用非常多,是google borgMon的开源版本,也是k8s后CNCF第二大开源项目。
内容介绍
本期将依次按照过程搭建一个grafana+prometheus的服务器监控,内容偏向实操,主要有如下的内容:
1.下载需要的各项组件。
2.部署和配置
3.添加监控指标
安装环境介绍
本地环境是linux,所以都使用tar.gz安装,以避免各种依赖问题和方便配置。
部署prometheus
在https://prometheus.io/download/
下载适当版本的安装包,解压部署到机器上,可以使用./prometheus
启动,然后访问默认9090端口,查看结果。如下图:
部署node_exporter
prometheus使用各种exporter来采集数据,这里的node_exporter
用来记录服务器运行的基础指标,如CPU,内存等等。在https://prometheus.io/download/#node_exporter
下载合适的node_exporter
安装包,解压并安装,如上执行./node_exporter
启动服务,默认端口9100,访问9100端口,正常的话可以获得指标。
部署grafana
在https://grafana.com/grafana/download
下载合适的安装包,建议使用tar.gz包。下载完成后解压,进入到bin/
目录,执行./grafana-server
启动,默认端口3000,首次访问会要求输入密码(默认admin/admin)。
添加监控配置
到此需要的组件部署完毕,这里我们将node_exporter
和prometheus
串起来,让数据流通。修改prometheus的配置文件prometheus.yml
,在job部分添加targets
,如下添加host:port
,建议添加ip。
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','localhost:9100']
设置完成后记得重启prometheus
添加grafana控制台
再回到grafana,包括两个步骤:添加数据源和导入控制台。
-
添加prometheus数据源
data sources
在configuration->data sources
中添加,选择prometheus,端口默认9090
。保存即可,如下图。
-
添加控制台
load
控制台可以通过json文件的形式导入,社区已经有非常多样式控制台给我们选择。在添加部分选择import
,然后在https://grafana.com/grafana/dashboards
找合适的控制台模板。这里是node_exporter
相关的,使用了https://grafana.com/grafana/dashboards/11074
。由于json比较大,加上可能网络的问题,建议将json下载到本地,然后从文件导入。完成后可以在dashboards板块开到了,如下就是最终的效果,刚开始可能没有数据,需要稍后一段时间。
dashboard
总结
以上就是本期的所有内容,可以看到相对容易搭建了一个基础设施的监控,且没有其他特殊依赖,grafana的控制台展现也比较美观大气,更重要的是,根据不同业务需求,可以很容易找到合适的exporter
和控制台模板,即便自己开发exporter,也比较容易入门。
prometheus等的监控数据是存储在本地的,而且我们看到如果要添加监控实例,需要修改文件并重启服务。对于前一个问题,prometheus支持远程的存储,当然这会涉及到更多关于稳定性,可用性,一致性等分布式部署的挑战;而第二个问题,有提到使用etcd+confd等做配置的动态加载,prometheus支持file_sd_configs选项。
参考
[1]. prometheus
[2]. grafana
[3]. 多种dashboar模板
[4]. 多种exporter
[5]. Complete MySQL dashboard with Grafana & Prometheus
网友评论