Docker可视化与监控
Docker可视化与监控1. PortainerPortainer 是一个开源、轻量级Docker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群。安装docker volume create portainer_datadocker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docke...
·
Docker可视化与监控
1. Portainer
Portainer 是一个开源、轻量级Docker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群。
安装
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
2.Prometheus
监控的目的
对系统不间断实时监控
实时反馈系统当前状态
保证业务持续性运行
监控的对象
硬件监控
温度、硬件故障等
系统监控
CPU,内存,硬盘,网卡流量,TCP状态,进程数
应用监控
Nginx、Tomcat、PHP、MySQL、Redis等
日志监控
系统日志、服务日志、访问日志、错误日志
安全监控
WAF,敏感文件监控
API监控
可用性,接口请求,响应时间
业务监控
例如电商网站,每分钟产生多少订单、注册多少用户、多少活跃用户、推广活动效果
流量分析
根据流量获取用户相关信息,例如用户地理位置、某页面访问状况、页面停留时间等
Prometheus概述
Prometheus(普罗米修斯)是一个最初在SoundCloud上构建的监控系统。自2012年成为社区开源项目,拥有非常活跃的开发人员和用户社区。为强调开源及独立维护,Prometheus于2016年加入云原生云计算基金会(CNCF),成为继Kubernetes之后的第二个托管项目。
https://prometheus.io
https://github.com/prometheus
特点:
• 多维数据模型:由度量名称和键值对标识的时间序列数据
• PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询
• 不依赖分布式存储,单个服务器节点可直接工作
• 基于HTTP的pull方式采集时间序列数据
• 推送时间序列数据通过PushGateway组件支持
• 通过服务发现或静态配置发现目标
• 多种图形模式及仪表盘支持(grafana)
基于Prometheus监控系统的架构图
• Prometheus Server:收集指标和存储时间序列数据,并提供查询接口
• ClientLibrary:客户端库
• Push Gateway:短期存储指标数据。主要用于临时性的任务
• Exporters:采集已有的第三方服务监控指标并暴露metrics
• Alertmanager:告警
• Web UI:简单的Web控制台
Prometheus关键字
实例:可以抓取的目标称为实例(Instances)
作业:具有相同目标的实例集合称为作业(Job)
Prometheus 部署
Prometheus全部的监控配置来自 prometheus.yml
docker run -p 9090:9090 -v /usr/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
prometheus.yml
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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']
prometheus配置文件说明
3. cAdvisor
监控信息收集应用
cAdvisor(Container Advisor)用于收集正在运行的容器资源使用和性能信息。
在被监控端启动cAdvisor
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
4.Grafana
信息展示WEB
开源的度量分析和可视化系统
安装
docker run -d --name=grafana -p 3000:3000 grafana/grafana
关于 Prometheus + cAdvisor + Grafana + (mySql + ES) 的监控应用还需进一步消化吸收
更多推荐
已为社区贡献1条内容
所有评论(0)