介绍
随着容器技术的迅速发展,Kubernetes 已然成为大家追捧的容器集群管理系统。Prometheus 作为CNCF中的重要一员,其活跃度仅次于 Kubernetes,现已广泛用于 Kubernetes 集群的监控系统中。
Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。
更详细的介绍和配置,请参考:Prometheus官方文档、IBM Prometheus 入门与实践
安装
镜像 Tag:
Prometheus Server: prom/prometheus:latest
Alerting Server: prom/alertmanager:latest
- docker pull
- docker run
Docker 真的太香了
扩展
监控数据持久化
docker run -d -p 9090:9090 -u root \
-v /home/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /home/prometheus/data:/etc/prometheus/data \
prom/prometheus:latest \
--storage.tsdb.path=/etc/prometheus/data \
--storage.tsdb.retention.time=30d \
--config.file=/etc/prometheus/prometheus.yml
-
通过
storage.tsdb.retention.time将数据持久化时间设置为30天(默认15d) -
通过
storage.tsdb.path将数据持久化到/etc/prometheus/data(容器内部)中 -
将容器内部的持久化数据挂载至宿主机的目录
(/home/prometheus/data),这才是真的持久化,因为是容器启动~~;那么设置持久化时间还有意义吗? -
通过 -u 指定容器的用户,以至于容器有权限操作宿主机的挂载目录
(/home/prometheus/data ),不指定用户会启动报错(Permission denied)。
此处偷懒采用了 root,生产环境不建议使用~
至于 K8s 上的普罗米修斯数据持久化,配置是与 Docker 一致的 (I guess,懒得写 yaml 文件~~)……