文章目录
rak小编为您整理发布RAKsmart服务器部署Docker环境教程系列文章:监控与日志管理。以下是具体内容。
容器监控方案
容器监控是保障应用稳定性的核心环节,需覆盖资源利用率(CPU、内存、磁盘、网络)及容器健康状态。以下是基于 cAdvisor + Prometheus + Grafana 的完整方案:
1. 使用cAdvisor收集容器指标
cAdvisor(Container Advisor)是Google开源的容器资源监控工具,自动采集容器指标并暴露为Prometheus格式。
- 部署cAdvisor(通过Docker一键启动):bash复制下载docker run -d –name=cadvisor \ -v /:/rootfs:ro -v /var/run:/var/run:ro \ -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro \ -p 8080:8080 \ google/cadvisor:latest
- 验证:访问
http://<RAKsmart服务器IP>:8080
,查看容器实时指标。 - 注意:若服务器安全组限制,需开放8080端口。
- 验证:访问
2. 集成Prometheus + Grafana可视化看板
Prometheus 负责存储时序数据,Grafana 提供可视化仪表盘。
- 步骤1:部署Prometheus
创建prometheus.yml
配置文件:yaml复制下载global: scrape_interval: 15s scrape_configs: – job_name: ‘cadvisor’ static_configs: – targets: [‘:8080′] # 替换为cAdvisor的IP启动Prometheus容器:bash复制下载docker run -d –name=prometheus \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:latest - 验证:访问
http://<Prometheus_IP>:9090
,输入container_cpu_usage_seconds_total
查询CPU指标。
- 验证:访问
- 步骤2:部署Grafanabash复制下载docker run -d –name=grafana -p 3000:3000 grafana/grafana:latest
- 访问
http://<Grafana_IP>:3000
,默认账号admin/admin
。 - 添加数据源:选择Prometheus,填写URL
http://<Prometheus_IP>:9090
。 - 导入Dashboard:在Grafana中搜索ID
893
(官方Docker监控模板),一键导入。
- 访问
日志集中化处理(ELK栈)
集中管理容器日志,便于快速检索与分析,推荐使用 Elasticsearch + Logstash + Kibana(ELK)。
1. 配置ELK栈
- 部署Elasticsearch:bash复制下载docker run -d –name=elasticsearch \ -p 9200:9200 -p 9300:9300 \ -e “discovery.type=single-node” \ elasticsearch:8.7.0
- 部署Logstash:
创建logstash.conf
配置日志输入输出:conf复制下载input { tcp { port => 5000 type => “docker” } } output { elasticsearch { hosts => [“<Elasticsearch_IP>:9200”] } }启动Logstash:bash复制下载docker run -d –name=logstash \ -p 5000:5000 \ -v /path/to/logstash.conf:/etc/logstash.conf \ logstash:8.7.0 \ -f /etc/logstash.conf - 部署Kibana:bash复制下载docker run -d –name=kibana \ -p 5601:5601 \ -e “ELASTICSEARCH_HOSTS=http://
:9200″ \ kibana:8.7.0 - 验证:访问
http://<Kibana_IP>:5601
,创建索引模式logstash-*
,查看日志。
- 验证:访问
2. Docker日志驱动对比与配置
Docker支持多种日志驱动,常用两种:
- json-file(默认):
- 日志存储于本地:
/var/lib/docker/containers/<容器ID>/<容器ID>-json.log
- 适合单机环境,但不利于集中管理。
- 日志存储于本地:
- syslog:
- 将日志转发至远程syslog服务器(如Logstash)。
- 配置方法:修改Docker配置文件
/etc/docker/daemon.json
:json复制下载{ “log-driver”: “syslog”, “log-opts”: { “syslog-address”: “udp://<Logstash_IP>:5000”, “tag”: “{{.Name}}” } } - 重启Docker生效:
systemctl restart docker
RAKsmart资源监控与报警
1. 利用RAKsmart控制台监控服务器负载
- 操作步骤:
- 登录RAKsmart控制台,进入目标服务器管理页面。
- 导航至 “监控” 或 “资源使用” 选项卡。
- 查看实时CPU、内存、磁盘IO、网络流量等指标。
2. 报警规则配置
- 场景:当CPU使用率≥80%或内存≥90%时触发通知。
- 配置步骤:
- 进入 “告警设置” > “新建规则”。
- 选择监控指标(CPU/内存),设置阈值与持续时间。
- 配置通知方式(邮件、短信、Webhook)。
- 保存后模拟高负载测试报警触发。
常见问题排查
问题 | 解决方案 |
---|---|
Prometheus无法连接cAdvisor | 检查防火墙是否放行8080/9090端口;确认cAdvisor容器IP正确。 |
Kibana无日志数据 | 验证Logstash输入配置,确保Docker日志驱动指向Logstash的IP和端口。 |
Grafana仪表盘无数据 | 检查Prometheus数据源配置;确认时间范围设置为最近。 |
总结
通过本教程,您已完成:
- 使用cAdvisor+Prometheus+Grafana构建容器监控看板。
- 通过ELK栈实现日志集中化存储与分析。
- 配置Docker日志驱动(syslog)实现日志远程传输。
- 利用RAKsmart控制台监控服务器资源并设置报警规则。
关键注意事项:
- 生产环境中建议为Elasticsearch配置持久化存储与安全认证。
- 监控组件需定期维护(如清理Prometheus旧数据)。
- RAKsmart报警规则可结合第三方工具(如Prometheus Alertmanager)实现更灵活的通知策略。
通过以上方案,可全面掌握RAKsmart服务器上Docker环境的运行状态,快速响应异常,保障业务稳定性。
Rak部落小编温馨提示:以上是小编为您整理发布的RAKsmart服务器部署Docker环境教程系列文章:监控与日志管理,更多知识分享可持续关注我们,raksmart机房更有多款云产品免费体验,助您开启全球上云之旅。