监控选型考虑:全国各节点主机的监控数据能整合在一起,进行统一观测、告警、管理;监控的数据要保存一段时间,便于查看历史数据,进行对比,同比等;同时其它系统可调用供分析使用;工具需轻量化、可视化、可告警、模块化监控等功能。基本上述的需求选型telegraf + influxdb + grafana的组合方案,其基本特征如下:
监控选型 | 部署于主机 | 部署于SAAS | 采集信息 | 资源占用(理论值) | 选型说明 |
Grafana 、Telegraf、 InfluxDB | Telegraf | Grafana、InfluxDB | 主机:CPU、内存、硬盘、网络、中间件、未容器化的应用 | 单核1~3%、25~80兆内存 | Telegraf工程类开源监控,轻量化模块化工具,除基础资源监控外,还支持mobus等IOT各协议,可灵活定义采集频率,采集范围等,资源的占用根据实际采集需求增减 |
容器:运行于容器中的所有或指定的部份应用 | 5个容器实例:单核1~3%,30~80兆内存 |
部署架构:

Telegraf Agent 配置细节
配置信息 | 作用 或 说明 | 备注 |
系统模块 | 收集CPU,内存,硬盘等使用率 | |
网络模块 | 收集网络使用率 | |
进程模块 | 收集中间件进程、未容器化应用内存与CPU使用率 | |
容器模块 | 收集各容器或指定容器内存与CPU使用率 | |
数据存储时长 | 3个月 | 时间可自由定义 |
信息收集间隔 | 60秒一次 | 最小单位1秒、可自由定义 |
1、数据网关本地存储一段时间,分析数据结果,按不同等级值进行不同频率的数据上传;如3天、上报数据(4G 网卡每月流量300兆) 2、应用异常日志(现在只存1小时) |
资源需求
名称 | 作用 或 说明 | 备注 |
服务器 | 1台8c16G1.5T主机 部署: inflxudb、grafana | 后续可根据实际使用情况、再部署influxdb集群 或 扩容服务器配置;单台主机成本 1260元/月 |
公网入口 | 公网域名 1个、带宽10兆 | 按每个网关30k的速率,200台,预计6兆左右 复用现有一个域名,新增带宽成本约 560元/月 |
二、具体部署
下载包wget https://repos.influxdata.com/rhel/7/x86_64/stable/influxdb-1.11.8.x86_64.rpm
# 安装
rpm -ivh influxdb-1.11.8.x86_64.rpm
# 配置,主要修改数据存储与开启安全认证
vi /etc/influxdb/influxdb.conf
[meta]
# Where the metadata/raft database is stored
dir = "/data/influxdb/meta" #原目录为 /var/lib/influxdb/meta
[data]
# The directory where the TSM storage engine stores TSM files.
dir = "/data/influxdb/data" #原目录为 /var/lib/influxdb/data
# The directory where the TSM storage engine stores WAL files.
wal-dir = "/data/influxdb/wal" #原目录为 /var/lib/influxdb/wal
[http]
# Determines whether HTTP endpoint is enabled.
enabled = true
# Determines whether the Flux query endpoint is enabled.
# flux-enabled = false
# Determines whether the Flux query logging is enabled.
# flux-log-enabled = false
# The bind address used by the HTTP service.
bind-address = ":18086" #修改端口,默认为 8086
# Determines whether user authentication is enabled over HTTP/HTTPS.
auth-enabled = true # 开启帐号认证,默认为fasle
## 配置开机自启动 与 启动服务
systemctl enable inflxudb
systemctl restart inflxudb
2、grafana 部署 (常见略)
3、telegraf部署
其版本有amd和arm,具体按服务器的实际情况进行下载,但conf的配置文件不需区分版本
#以debian系统安装为例
dpkg -i /home/snzk/telegraf_1.34.2-1_amd64.deb
#配置
vi /etc/telegraf/telegraf.conf
#修改两个地方,一是加一个标识,用于区别设备 二是存储influxdb,其余配置是监控哪些选项,开启哪些模块即可,默认网络模块是关的 outputs.net
#示例
[global_tags]
env = "生产"
domain = "爱分享"
group = "数据组"
sn/IP = "192.168.1.2"
aname: = "**公司"
[[outputs.influxdb]]
urls = ["http://127.0.0.1:18086"] # InfluxDB 1.0 的 HTTP API 地址
database = "snzk_log" # InfluxDB 1.0 的数据库名称
retention_policy = ""
write_consistency = "any"
timeout = "5s"
## HTTP Basic Auth
username = "yewu001"
password = "密码"
新增温度监控在opt目录下存放一个文件
cpu_wendu.sh,内容为
#!/bin/bash
# 读取 CPU 温度,通常从 /sys 文件系统获取
# 注意:温度值可能需要除以1000,单位可能是毫摄氏度
cpu_temp=$(cat /sys/class/thermal/thermal_zone0/temp)
wendu=$(echo "$cpu_temp" | awk '{printf "%.2f", $1/1000}')
echo "cpu_temperature,host=$(hostname) value=$wendu"
#加执行权限
chmod +x /opt/cpu_wendu.sh
通过上述部署就完成了监控agent的安装
agent重启命令,配置文件修改后要生效,都需要重启
systemctl restart inflxudb
agent查看运行状态命令
systemctl status inflxudb
在配置文件修改完成后,如果有监控docker,启动前需要查看docker是以什么帐号启动
ps -ef | grep docker
如果是以root 帐号启动,执行下面命令来启动 telegraf
usermod -aG root telegraf && systemctl restart telegraf
如果是docker帐号启动,搪行下面命令来启动
usermod -aG docker telegraf && systemctl restart telegraf