爱分享

telegraf基础监控实现

监控选型考虑:全国各节点主机的监控数据能整合在一起,进行统一观测、告警、管理;监控的数据要保存一段时间,便于查看历史数据,进行对比,同比等;同时其它系统可调用供分析使用;工具需轻量化、可视化、可告警、模块化监控等功能。基本上述的需求选型telegraf + influxdb + grafana的组合方案,其基本特征如下:

监控选型

部署于主机

部署于SAAS

采集信息

资源占用(理论值)

选型说明

Grafana 、Telegraf、 InfluxDB

Telegraf

Grafana、InfluxDB

主机:CPU、内存、硬盘、网络、中间件、未容器化的应用

单核1~3%、25~80兆内存

Telegraf工程类开源监控,轻量化模块化工具,除基础资源监控外,还支持mobus等IOT各协议,可灵活定义采集频率,采集范围等,资源的占用根据实际采集需求增减

容器:运行于容器中的所有或指定的部份应用

5个容器实例:单核1~3%,30~80兆内存

部署架构:

image.png

  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元/月




二、具体部署

1、influxdb 

下载包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  



nyx
nyx
这个人很神秘