telegraf + TDengine 实现服务器实时监控

大数据平台XSailboat简介_OkGogooXSailboat的博客-CSDN博客

1、服务器集群规划

主机名

IP

安装软件

XCloud150

192.168.0.150

TDengine、Telegraf

XCloud151

192.168.0.151

TDengine、Telegraf

XCloud152

192.168.0.152

TDengine、Telegraf

XCloud153

192.168.0.153

TDengine、Telegraf

XCloud154

192.168.0.154

TDengine、Telegraf

2、安装准备

  1. 修改服务器主机名(/etc/hostname)。
  2. 添加主机名与IP的映射关系(/etc/hosts)。
  3. 关闭防火墙。
  4. jdk1.8

3、安装TDengine

        3.1 简介

        TDengine 是一款产品开源、云原生的时序数据库(Time Series Database),具有高性能、高可靠、可伸缩、零管理、简单易学等技术特点。提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度。

        在本文的场景中,我们使用 TDengine 来存储 Telegraf 采集的实时监控数据。

        3.2 下载安装包

        官网地址:TDengine 产品 - TDengine | 涛思数据

        从官网下载TDengine的安装包,选择社区稳定版。

        客户端:TDengine-client-2.4.0.0-Linux-x64.tar.gz;

        服务端:TDengine-server-2.4.0.0-Linux-x64.tar.gz

        3.3 服务端安装

  • 将TDengine的服务端安装包拷贝到安装目录,解压。

  • 解压后,进入解压目录,使用root用户,执行“./install.sh”命令,安装客户端。安装过程中,会提示输入端口和邮箱,跳过即可。端口会在后续的配置文件中配置。

  • 安装后,在/etc/taos目录下,修改taos.cfg配置。

  • 在服务端的taos.cfg文件中,需添加firstEp、secondEp、fqdn配置。firstEp是集群中第一个启动的服务器节点的主机名和端口;secondEp是firstEp的备用服务器节点;fqdn是当前节点的主机名。注意区分。

  •  指定数据文件、日志文件位置:

配置虚拟管理节点数量(约第46行):

        注意:mnode负责所有节点运行状态的监控和维护,以及节点之间的负载均衡。同时,虚拟管理节点也负责元数据(包括用户、数据库、表、静态标签等)的存储和管理,因此也称为Meta Nodemnode间采用master/slave的机制进行管理,而且采取强一致方式进行数据同步。如果不配置mnode数量,集群中默认只有一个mnode,一旦这个mnode所在节点死机,集群将不可用。

  • 配置数据副本数量(约第136行):

  • 在服务器集群的其它节点,重复执行以上步骤。

        3.4 启动及验证

  • 按配置,首先启动XCloud152节点,之后再启动其余节点。root用户启动命令:systemctl start taosd;验证命令:systemctl status taosd

  • 启动后,执行“taos -h XCloud152”命令,连接第一个启动的服务器节点。

  • 连接后,执行“show dnodes;”命令,查看集群中的服务器节点。此时集群中,只有第一个启动的服务器节点,其余的服务器节点需手动添加到集群,如create dnode "XCloud153"。

        3.5 非root用户启动

        tdengine 安装指定root用户,产品目录、启动方式都是默认的,所有者都是root。如果需要改为非root用户启动,修改方式如下:

============================root用户操作

        3.5.1 关闭服务

        首先使用root用户,关闭tdengine,命令如下:

        systemctl stop taosadapter

        systemctl stop taosd

        3.5.2 删除默认数据库及日志

        TDengine 默认的数据库、日志文件夹,均不在产品目录下。产品目录下,通过软连接指向数据库、日志。

        注意:在安装的时候,我们通过配置文件,重新指定了数据库和日志的存放目录。换言之,此时的TDengine有两个数据库、两个日志文件,实际使用的是配置文件中的数据库和日志,但默认生成的数据库和日志依旧会对Tdengine产生影响,因此我们需要将默认的数据库和日志清理掉。

        为方便管理,以及权限设置,这里直接删除TDengine的默认数据库和日志文件夹,之后按实际需要配置。

        操作截图如下:

        修改TDengine产品目录、配置目录、以及数据库文件夹的所有者。如下:

=============================root用户操作

        3.5.3 修改配置

        安装时已修改过配置,这里重新写一遍,主要是为了强调将数据库、日志指定到非root用户方便管理的位置。

        3.5.4 新建数据库软连接及log文件夹

        按配置创建数据库、日志的真实文件夹,并在产品目录下,创建数据库、日志真实位置的软连接,软链接是为了方便用户访问,并不影响TDengine的运行。

        3.5.5 启动服务

        在bin目录下,使用非root用户启动taosd 和 taosadapter 服务。命令:

nohup ./taosd &

nohup ./taosadapter &

        操作截图:

        3.6 卸载及升级

        升级请遵循前述安装和卸载的步骤先卸载旧版本再安装新版本。

        卸载命令:rmtaos

        操作截图:

        3.6.1 升级具体操作

  • 备份数据库,防止升级过程中,数据丢失

        首先进入产品目录的bin目录下,命令:cd /usr/local/taos/bin

        找到备份工具taosdump,执行命令:./taosdump -o /备份数据的存放目录 -A

        -A表示备份所有数据库,

        操作截图:

   

        关闭TDengine,直接杀死进程即可

        切换root用户,执行rmtaos命令卸载tdengine

        卸载后,产品目录/usr/local/taos会整个删除,这个不用管;配置目录/etc/taos仍在,不用删,改个名字,后面参照它配置新版本的配置文件;数据目录仍存在,不用删,试试新版本能不能直接使用它,如果不能,再删掉重建

        从上文3.3开始,重新安装新版本的TDengine,但安装完成后,不要直接启动,直接参考 3.5,改为非root用户启动,这期间,TDengine的data目录直接指向旧版的data目录

        最终非root用户启动后,登录数据库,发现旧版的数据库依旧可用,因此不需要再手动恢复数据。

        3.6.2 遇到的问题

  •   XCloud154节点不可用

        查看日志提示: ” WARN NOT ordered input timestamp“,检查各节点时间,发现时间不同步。同步时间后,重新启动即可。

        重新启动后,节点起来了,但是没加入到集群。

        登录其余节点,执行show dnodes命令,发现154节点不在集群之中。

        执行create dnode "XCloud154"命令,将154加入集群。再执行show dnodes,发现有154节点了,但连接失败。这是因为”/home/hadoop/data/taos/dnode“目录下的dnodeCfg.json文件中的集群id是旧的,而154重新加入集群,会分配一个新的id,新旧id不匹配,就无法真正加入集群。

        解决办法是,关掉154上的taos进程,删掉旧的dnodeCfg.json文件,然后重新启动taos。

 4、安装Telegraf

         4.1 安装流程

  • 下载安装包

        命令:wget https://dl.influxdata.com/telegraf/releases/telegraf-1.20.4-1.x86_64.rpm

  • 执行安装

        切换root用户,安装命令:yum localinstall telegraf-1.20.4-1.x86_64.rpm

  • 修改配置

        在/etc/telegraf目录下,修改telegraf.conf配置文件。

        注意:telegraf.conf 配置是安装 telegraf 的重点。在这个配置中,我们将具体指定需要采集的服务器监控指标。

        配置示例:

[global_tags]

[agent]

 interval = "10s"

 round_interval = true

 metric_batch_size = 30

 metric_buffer_limit = 10000

 collection_jitter = "0s"

 flush_interval = "10s"

 flush_jitter = "0s"

 precision = "ms"

 debug = true

# 当前主机的主机名,与下文url中的数据库地址不一定是同一个主机

 hostname = "XCloud150"

 omit_hostname = false

[[outputs.http]]

# url = "http://XCloud150:6041/influxdb/v1/write?db=udb"      这种配置,指定了单独的节点,如果该节点死机,连接将不可用

# 高可用性配置,首先在hosts文件中为tdengine集群配置域名,通过域名连接,即可自动选择局域网中的可用节点,如

# 192.168.0.184   test

# 192.168.0.185   test

# 192.168.0.186   test

# url = "http://test:6041/influxdb/v1/write?db=udb"

url = "http://域名:6041/influxdb/v1/write?db=udb"

data_format = "influx"

influx_max_line_bytes = 1024

method = "POST"

timeout = "5s"

username = "root"

password = "taosdata"

# 输出到tdengine的同时,输出到本地文件

[[outputs.file]]

files = ["stdout", "/xcloud/telegraf.out"]

        data_format = "influx"

#以下是默认的采集对象,可按需配置,不需要采集的,注释掉即可

[[inputs.cpu]]

  percpu = true

  totalcpu = true

  collect_cpu_time = false

  report_active = false

[[inputs.disk]]

  ignore_fs = ["tmpfs", "devtmpfs",  "iso9660", "overlay", "aufs", "squashfs"]     # 忽略,不采集的分区类型

      interval = "2h"          # 采集间隔,覆盖agent里的全局间隔,即在同一个采集进程,使用不同的采集间隔

[[inputs.diskio]]

[[inputs.kernel]]

[[inputs.mem]]

[[inputs.processes]]

[[inputs.swap]]

[[inputs.system]]

[[inputs.net]]

      interfaces = ["enp0s3"]                 # 网卡接口

   ignore_protocol_stats = true           # 是否忽略协议指标
  • 启动telegraf

        命令:systemctl start telegraf.service

        以后台方式启动:nohup telegraf --config telegraf.conf > /dev/null 2>&1 &

        调试启动:如果启动报错,可按提示以 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d 命令启动,可输出详细的错误信息。

        4.2 踩过的坑

        容易忽视细节,容易混淆的参数项等。

  1. telegraf配置中,默认启用 [[outputs.influxdb]] ,而我们要启用的是 [[outpts.http]] ,所以配置时,要先将  [[outputs.influxdb]] 注释掉;
  2. telegraf配置中,[[outpts.http]] 默认是被注释掉的,启用时,不要忘了去掉 [[outpts.http]] 前的注释符 #”;
  3. url 中的tdengine端口号,是指http模块的端口号,默认6041,不是/etc/taos/taos.cfgfirstEP 的端口号,一定不要弄错;
  4. 用户密码是tdengine的用户密码,默认root/taosdata,可通过taos -u root -p 登录tdengine数据库来验证;
  5. url中的udbtdengine的数据库,理论上会自动创建,但没测试过,建议提前建好,命令:create databas udb;

        4.3 问题记录

  • 采集的数据在tdengine中显示null

        解决方法:将 ”influx_max_line_bytes = 250“的值改为1024

  • disk监控,/home/hadoop/data没有采集数据

        解决方法:在[[inputs.disk]]配置里,去掉 ignore_fs参数的“devfs”值。

  • 原数据库删除后,重新创建同名数据库,无法连接

        解决方案:重启taosadapter,命令 systemctl restart taosadapter

  • disk监控,/home/hadoop/data没有采集数据,后续

        在inputs.disk 配置中,添加采集的时间间隔配置(覆盖agent中的采集间隔),添加后,以“systemctl start telegraf.service”命令启动,启动后发现,/home/hadoop/data挂载的分区没有采集数据。

        解决方案:测试发现,以“systemctl start telegraf.service”命令启动,不会采集/home/hadoop/data挂载的分区,而以调试命令启动,则正常采集,因此改为后台命令启动,命令如“nohup telegraf --config telegraf.conf > /dev/null 2>&1 &”底层原因不明。为避免开机自动以“systemctl start telegraf.service”命令启动,关闭自启动“systemctl disable telegraf.service”,开启自启动“systemctl enable telegraf.service”

大数据平台XSailboat简介_OkGogooXSailboat的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值