尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Docker监控实战:夜莺监控与Categraf配置指南
1. 项目概述最近在帮客户部署一套基于Docker容器的监控系统选择了夜莺监控Nightingale简称n9e作为监控平台搭配Categraf作为数据采集器。这套组合在实际生产环境中表现相当稳定今天就把完整的配置过程整理出来尤其针对Docker监控这个专项场景。先说说为什么选这个方案n9e作为国产开源监控系统相比PrometheusGrafana的组合更轻量内置了告警规则管理和事件中心特别适合中小规模场景。而Categraf作为All-in-One的采集器一个进程就能搞定指标、日志、事件等多种数据采集资源占用只有Telegraf的1/3左右。2. 环境准备2.1 组件版本选择当前稳定版本组合n9e v5.8.1前端后端Categraf v0.2.38Docker 20.10.17建议在测试环境先用相同版本验证避免兼容性问题。我遇到过Categraf 0.3.0的alpha版采集Docker指标时会出现标签丢失的情况所以生产环境还是建议用稳定版。2.2 基础环境配置所有节点需要预先配置# 设置系统参数 echo vm.max_map_count262144 /etc/sysctl.conf sysctl -p # 创建专用数据目录 mkdir -p /data/n9e/{data,logs} chmod 777 /data/n9e/logs重要提示如果监控的Docker主机超过50台建议将n9e的时序数据库TSDB单独部署默认内置的TSDB适合小规模场景。3. n9e服务部署3.1 使用Docker-Compose部署准备docker-compose.yml文件version: 3 services: n9e: image: flashcatcloud/n9e:v5.8.1 container_name: n9e ports: - 18000:18000 volumes: - /data/n9e/data:/home/n9e/data - /data/n9e/logs:/home/n9e/logs environment: - TZAsia/Shanghai restart: always启动命令docker-compose up -d3.2 初始配置访问http://服务器IP:18000初始账号/密码root/root.2020进入【系统配置】→【数据源】添加默认的时序数据库名称default类型prometheus地址http://localhost:9090使用内置TSDB配置SMTP告警可选但建议SMTP服务器smtp.xxx.com 端口465 发件人monitoryourdomain.com 认证账号monitoryourdomain.com 密码******4. Categraf配置详解4.1 Docker部署Categraf准备配置文件目录结构mkdir -p /etc/categraf/{conf,logs}docker-compose配置示例categraf: image: flashcatcloud/categraf:v0.2.38 container_name: categraf volumes: - /etc/categraf/conf:/etc/categraf/conf - /etc/categraf/logs:/var/log/categraf - /var/run/docker.sock:/var/run/docker.sock restart: always4.2 核心配置文件主配置文件config.toml[global] hostname docker-node-01 # 必须唯一 interval 15 # 采集间隔(秒) [writer_opt] batch 2000 # 每次上报数据批大小 conn_timeout 5000 # 毫秒 writers [http://n9e-server:18000/prometheus/v1/write] [heartbeat] enable true url http://n9e-server:18000/v1/n9e/heartbeat interval 10 # 心跳间隔(秒)Docker监控配置conf/input.docker/docker.toml[[instances]] endpoint unix:///var/run/docker.sock # 监控的容器标签可选 container_label_include [com.docker.*, io.kubernetes.*] # 采集的指标过滤 metric_filter [ container_cpu_*, container_memory_*, container_network_*, container_fs_* ] # 额外标签 extra_tags { region shanghai, env prod }4.3 高级配置技巧针对特定容器单独配置[[instances.containers]] names [nginx, mysql] extra_tags { service_type critical } [[instances.containers]] names [redis*] metric_filter [container_memory_*]排除系统容器container_exclude [ name^/k8s_.*, name^/ecs_.* ]5. 监控指标解析5.1 核心监控指标Categraf采集的Docker指标主要分为几类CPU相关container_cpu_usage_seconds_total容器CPU使用时间(秒)container_cpu_system_seconds_total系统CPU时间container_cpu_user_seconds_total用户CPU时间内存相关container_memory_usage_bytes内存使用量container_memory_rss常驻内存集container_memory_swap交换内存使用量网络相关container_network_receive_bytes_total接收字节数container_network_transmit_bytes_total发送字节数5.2 关键指标计算公式CPU使用率sum(rate(container_cpu_usage_seconds_total[1m])) by (container_name) / container_spec_cpu_quota * 100内存使用率container_memory_usage_bytes / container_spec_memory_limit_bytes * 100网络吞吐量(字节/秒)rate(container_network_receive_bytes_total[1m]) rate(container_network_transmit_bytes_total[1m])6. 告警规则配置6.1 常用Docker告警规则在n9e的【告警规则】页面创建CPU过载告警{ name: Docker容器CPU过载, query: sum(rate(container_cpu_usage_seconds_total{container_name!\\}[1m])) by (container_name) / on(container_name) container_spec_cpu_quota * 100 90, duration: 3m, severity: critical }内存泄漏检测{ name: Docker容器内存持续增长, query: predict_linear(container_memory_usage_bytes{container_name!\\}[1h], 3600) / container_spec_memory_limit_bytes * 100 120, duration: 30m, severity: warning }6.2 告警模板优化建议在告警信息中加入容器标签容器 {{$labels.container_name}} ({{$labels.image}}) 在 {{$labels.host}} 上 {{$value}}% CPU使用率超过阈值为不同环境设置不同阈值{{ if eq $labels.env prod }} 阈值: 85% {{ else }} 阈值: 95% {{ end }}7. 常见问题排查7.1 数据采集问题现象n9e上看不到Docker指标检查Categraf日志docker logs categraf | grep -i docker验证Docker socket权限ls -l /var/run/docker.sock现象部分容器指标缺失检查容器是否有--read-only参数确认容器没有处于paused状态7.2 性能优化建议大规模环境调整参数[global] interval 30 # 调大采集间隔 precision 1000 # 降低数据精度 [writer_opt] batch 5000 # 增大批处理量 workers 8 # 增加写入并发数使用黑名单过滤不必要指标metric_filter [ !container_blkio_*, !container_fs_inodes_* ]8. 监控面板配置8.1 内置Docker仪表盘n9e已经内置了Docker监控面板位置在 【仪表盘】→【内置仪表盘】→【Docker】包含以下关键视图容器列表运行状态、资源占用排名单容器详情CPU/Memory/Network历史趋势主机维度汇总容器数量、资源总量8.2 自定义面板技巧添加容器启动时间统计time() - container_start_time_seconds可视化配置为「状态列表」类型设置颜色阈值1h绿色1-24h蓝色24h黄色制作容器重启告警面板changes(container_start_time_seconds[1h])配合「智能图表」的阈值标记功能突出显示异常节点9. 生产环境经验9.1 部署架构建议对于超过100节点的环境推荐采用这种架构[ Categraf Agent ] - [ N9e Server ] - [ 独立TSDB集群 ] / \ [ MySQL ] [ Redis ]关键配置调整n9e增加缓存层[redis] address redis-server:6379 db 1使用远程MySQL[mysql] host mysql-server port 3306 user n9e password yourpassword9.2 安全加固措施Categraf通信加密[writer_opt] basic_auth_user categraf basic_auth_pass securepasswordn9e API访问控制# 在nginx反向代理后添加 location /api/ { auth_basic Restricted; auth_basic_user_file /etc/nginx/.htpasswd; }Docker socket代理方案socat UNIX-LISTEN:/proxy/docker.sock,fork \ UNIX-CONNECT:/var/run/docker.sock 然后让Categraf连接代理socket这套配置方案已经在多个客户生产环境稳定运行半年以上单个n9e实例能轻松处理500 Docker节点的监控数据。最关键的是要合理设置采集频率和指标过滤避免产生过多非必要数据。
RELATED

相关推荐

PotPlayer百度翻译插件终极指南:三步实现视频字幕实时翻译

PotPlayer百度翻译插件终极指南:三步实现视频字幕实时翻译

PotPlayer百度翻译插件终极指南:三步实现视频字幕实时翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为外语视频的…

📅 2026/9/7 22:42:20
大厂AI故障预测架构解析与实战经验

大厂AI故障预测架构解析与实战经验

1. 大厂AI故障预测架构的核心逻辑与行业背景在互联网和云计算领域,系统稳定性直接关系到企业的生死存亡。以电商平台为例,大促期间每秒交易量可达数十万笔,任何系统故障都会造成巨额经济损失。传统基于阈值的监控系统(如CPU使用率…

📅 2026/8/22 20:32:00
YOLO系列目标检测技术演进与工业实践

YOLO系列目标检测技术演进与工业实践

1. 目标检测技术演进概述在计算机视觉领域,目标检测技术经历了从传统方法到深度学习的革命性转变。早期基于手工特征的算法(如HOGSVM)逐渐被以YOLO系列为代表的深度学习模型所取代。YOLO(You Only Look Once)系列因其出色的实时性能&#xff…

📅 2026/8/22 20:32:02
MORE NEWS

更多资讯

📰

单片机计算机毕设之基于 STM32 或 51 单片机的可语音播报的货物称重终端设计 基于 STM32 或 51 单片机的手机蓝牙控制智能电子秤设计(021107)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

📰

2026年靠谱的旧衣服回收平台怎么找?主流平台实测对比来了

换季时节,天气转冷,当冬装夏装堆在一起,衣柜早已爆满,收纳空间告急;搬家的时候,清理出几大袋旧衣服,带走超重、扔掉又实在可惜;想开展一场断舍离,清理闲置衣物&#xff0…

📰

Glance 主题系统完全指南:内置配色预设、HSL 颜色配置与主题切换原理

Glance 主题系统完全指南:内置配色预设、HSL 颜色配置与主题切换原理 【免费下载链接】glance A self-hosted dashboard that puts all your feeds in one place 项目地址: https://gitcode.com/GitHub_Trending/gla/glance Glance 是一款自托管的信息聚合面…

📰

TradingAgents-CN 基本面分析报告深度解读:以贵州茅台(600519)为例

TradingAgents-CN 基本面分析报告深度解读:以贵州茅台(600519)为例 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN…

📰

Remix UI 的 mix 宿主元素编程:行为、样式与事件 Mixin 完全指南

Remix UI 的 mix 宿主元素编程:行为、样式与事件 Mixin 完全指南 【免费下载链接】remix The fully-stacked web framework 项目地址: https://gitcode.com/GitHub_Trending/re/remix 导读 mix 是 Remix UI(packages/ui)中面向宿主元…

📰

昇腾CANN/GE编译图摘要类简介

简介 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端的友好…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬