taosKeeper 是 TDengine 3.0 版本监控指标的导出工具,通过简单的几项配置即可获取 TDengine 的运行状态。
taosKeeper 使用 TDengine RESTful 接口,所以不需要安装 TDengine 客户端即可使用。
从 GitHub 克隆源码:
git clone https://github.com/taosdata/taoskeeper
cd taoskeeper
taosKeeper 使用 GO
语言编写,在构建前需要配置好 GO
语言开发环境。
go mod tidy
go build
如果是自行构建的项目,仅需要拷贝 taoskeeper
文件到你的 PATH
中。
sudo install taoskeeper /usr/bin/
在启动前,应该做好如下配置:
在 /etc/taos/taoskeeper.toml
配置 TDengine 连接参数以及监控指标前缀等其他信息。
# gin 框架是否启用 debug
debug = false
# 服务监听端口, 默认为 6043
port = 6043
# 日志级别,包含 panic、error、info、debug、trace等
loglevel = "info"
# 程序中使用协程池的大小
gopoolsize = 50000
# 查询 TDengine 监控数据轮询间隔
RotationInterval = "15s"
[tdengine]
host = "127.0.0.1"
port = 6041
username = "root"
password = "taosdata"
# 需要被监控的 taosAdapter
[taosAdapter]
address = ["127.0.0.1:6041"]
[metrics]
# 监控指标前缀
prefix = "taos"
# 存放监控数据的数据库
database = "log"
# 指定需要监控的普通表
tables = []
[environment]
# 是否在容器中运行,影响 taosKeeper 自身的监控数据
incgroup = false
现在可以启动服务,输入:
taoskeeper
如果你使用 systemd
,复制 taoskeeper.service
到 /lib/systemd/system/
,并启动服务。
sudo cp taoskeeper.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start taoskeeper
让 taosKeeper 随系统开机自启动。
sudo systemctl enable taoskeeper
如果使用 systemd
,你可以使用如下命令完成安装
go mod tidy
go build
sudo install taoskeeper /usr/bin/
sudo cp taoskeeper.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start taoskeeper
sudo systemctl enable taoskeeper
如下介绍了如何在 docker 中构建 taosKeeper:
在构建前请配置好 ./config/taoskeeper.toml
中合适的参数,并编辑 Dockerfile ,示例如下。
FROM golang:1.17.6-alpine as builder
WORKDIR /usr/src/taoskeeper
COPY ./ /usr/src/taoskeeper/
ENV GO111MODULE=on \
GOPROXY=https://goproxy.cn,direct
RUN go mod tidy && go build
FROM alpine:3
RUN mkdir -p /etc/taos
COPY --from=builder /usr/src/taoskeeper/taoskeeper /usr/bin/
COPY ./config/taoskeeper.toml /etc/taos/taoskeeper.toml
EXPOSE 6043
CMD ["taoskeeper"]
如果已经有 taosKeeper 可执行文件,在配置好 taoskeeper.toml
后你可以使用如下方式构建:
FROM ubuntu:18.04
RUN mkdir -p /etc/taos
COPY ./taoskeeper /usr/bin/
COPY ./taoskeeper.toml /etc/taos/taoskeeper.toml
EXPOSE 6043
CMD ["taoskeeper"]
-
启动报错,显示connection refused
解析:taosKeeper 依赖 restful 接口查询数据,请检查 taosAdapter 是否正常运行或 taoskeeper.toml 中 taosAdapter 地址是否正确。
-
taosKeeper 监控不同 TDengine 显示的检测指标数目不一致?
解析:如果 TDengine 中未创建某项指标,taoskeeper 不能获取对应的检测结果。
-
不能接收到 TDengine 的监控日志。
解析: 修改
/etc/taos/taos.cfg
文件并增加如下参数:monitor 1 // 启用monitor monitorInterval 30 // 发送间隔 (s) monitorFqdn localhost // 接收消息的FQDN,默认为空 monitorPort 6043 // 接收消息的端口号 monitorMaxLogs 100 // 每个监控间隔缓存的最大日志数量