Telegraf 是运行在服务器中的一个探针程序,它可以从数据库、系统和 IoT 传感器收集并发送指标和事件。 它是由 Go 语言编写,编译成单个二进制文件,没有外部依赖项,运行时仅需要非常少的内存。
先来干货,下面是如何配置 Telegraf 的日志输出。如果不进行任何配置的话日志仅能在启动 Telegraf 的命令窗口中查看。如果是以 Windows 服务方式启动,那么就只能去 Windows 的事件查看器查看,相当的不方便。
不过可通过对 agent
进行配置,把日志以文件方式输出日志到指定位置,下面看这个详细的配置说明吧:
[agent]
## 记录为调试级别。
# debug = false
## 仅记录错误级别消息。
# quiet = false
## 记录目标控制日志的目的地,可以是 "file"、"stderr" 或在 Windows 上是 "eventlog"。当设置为 "file" 时,输出文件由 "logfile" 设置确定。
logtarget = "file"
## 当使用 "file" 记录目标时,要记录到的文件的名称。如果设置为空字符串,则日志将写入 stderr。
## 如果是使用 Windows 服务的方式运行 Telegraf,那么建议使用绝对路径。
logfile = "./telegraf.log"
## 当指定的时间间隔后,日志文件将被轮转。当设置为 0 时,不执行基于时间的轮转。日志只在写入时轮转,如果没有日志活动,轮转可能会延迟。
# logfile_rotation_interval = "0d"
## 当日志文件大小超过指定大小时,日志文件将被轮转。当设置为 0 时,不执行基于大小的轮转。
# logfile_rotation_max_size = "0MB"
## 保留的轮转归档的最大数量,任何旧的日志都将被删除。如果设置为 -1,则不删除归档。
# logfile_rotation_max_archives = 5
## 选择在记录时使用的时区,或输入 'local' 以使用本地时间。示例:America/Chicago
log_with_timezone = "local"
为什么以 Windows 服务方式运行的时候建议使用绝对路径呢。因为,使用相对路径,这个路径应该对应的是启动服务的那个程序,这可能是在 Windows 的某个路径下吧。之前研究过的,现在忘了,回头再看下补充回来。