Deploy Prometheus Stack with Docker Compose
Prometheus 是由 SoundCloud 开源监控告警解决方案,从 2012 年开始编写代码,再到 2015 年 github 上开源以来,已经吸引了 18k+ 关注,以及很多大公司的使用;2016 年 Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成员。
CNCF announced the graduation status of Prometheus at the PromCon 2018 conference.
Prometheus, an open-source monitoring system and time series database, has become the second project after Kubernetes to graduate from the Cloud Native Computing Foundation (CNCF).
2018 年 CNCF 在 PromCon 2018 上宣布 Prometheus 从 CNCF Graduated ,这是继 Kubernetes 后第二个 Graduated 的成员。
Consul 是一个分布式服务网格( service mesh ),用于跨任何运行时平台以及公共云 / 私有云连接的服务发现、服务分割和服务配置。
关键概念:
API-Driven
对服务定义、运行状况检查、服务授权策略、故障转移逻辑等进行编码和自动化。Run and Connect Anywhere
跨任何运行时平台和公共云 / 私有云连接服务。将服务从 Kubernetes 连接到 VM ( Kubernetes to VMs )、容器到无服务器( Containers to Serverless )功能。Extend and Integrate
在任何基础架构上配置群集,通过代理集成连接到TLS上的服务,使用可插拔证书颁发机构提供TLS证书。The open platform for beautiful analytics and monitoring
Grafana 是一个领先的时序数据( time series )分析开源软件,同时提供通用仪表板和告警功能( Grafana4.0 及之后版本)作为 Web 应用程序运行。它支持 graphite , InfluxDB 或 opentsdb 作为后端存储。
创建目录:
/usr/local/prometheus
/usr/local/grafana
/data/nginx/logs
/data/nginx/conf/ssl.d
/data/nginx/conf/stream.d
/data/nginx/conf/conf.d
复制配置文件到指定目录,详见 docker-compose.yml volume 结构
启动服务:
# cd ~/PrometheusStackDockerCompose
# docker-compose up -d
# 完全卸载(删除 volumes )
# cd ~/PrometheusStackDockerCompose
# docker-compose down -v
# 删除容器,保留数据(保留 volumes )
# cd ~/PrometheusStackDockerCompose
# docker-compose down
配置修改:
docker-compose -f ~/PrometheusStackDockerCompose/docker-compose.yml restart <service-name>
注册 Exporter 到 Consul 以供 Prometheus Server 发现并拉取 metrics 数据
比如将
curl -X PUT -d '{"id": "host1-node","name": "host1-node","address": "<host1-ip>","port": 9100,"tags": ["node_exporter"],"checks": [{"http": "http://<host1-ip>:9100/","interval": "5s"}]}' http://<monitor-ip>:8500/v1/agent/service/register
其中 -d
参数 json
数据内容为:
{
"id": "host1-node",
"name": "host1-node",
"address": "<host1-ip>",
"port": 9100,
"tags": [
"node_exporter"
],
"checks": [
{
"http": "http://<host1-ip>:9100/",
"interval": "5s"
}
]
}
cat temp.json|jq -a
cat temp.json|jq -c
# 将 service monitor-node 移除
curl --request PUT http://localhost:8500/v1/agent/service/deregister/monitor-node
*. 访问 grafana
+ 浏览器访问: https://gf.domain.name
+ dashboard 可以浏览器导入,插件安装具体操作见[官方文档](http://docs.grafana.org/plugins/installation/)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型