icinga2 写入
icinga2 是一款开源主机、网络监控软件,最初由 Nagios 网络监控应用发展而来。目前,icinga2 遵从 GNU GPL v2 许可协议发行。
只需要将 icinga2 的配置修改指向 taosAdapter 对应的服务器和相应端口即可将 icinga2 采集的数据存在到 TDengine 中,可以充分利用 TDengine 对时序数据的高效存储查询性能和集群处理能力。
前置条件
要将 icinga2 数据写入 TDengine 需要以下几方面的准备工作。
- TDengine 集群已经部署并正常运行
- taosAdapter 已经安装并正常运行。具体细节请参考taosAdapter 的使用手册
- icinga2 已经安装。安装 icinga2 请参考官方文档
配置步骤
配置 taosAdapter
配置 taosAdapter 接收 icinga2 数据的方法:
- 在 taosAdapter 配置文件(默认位置 /etc/taos/taosadapter.toml)中使能配置项
...
[opentsdb_telnet]
enable = true
maxTCPConnections = 250
tcpKeepAlive = false
dbs = ["opentsdb_telnet", "collectd", "icinga2", "tcollector"]
ports = [6046, 6047, 6048, 6049]
user = "root"
password = "taosdata"
...
其中 taosAdapter 默认写入的数据库名称为 icinga2
,也可以修改 taosAdapter 配置文件 dbs 项来指定不同的名称。user 和 password 填写实际 TDengine 配置的值。修改过 taosAdapter 需重新启动。
- 也可以使用 taosAdapter 命令行参数或设置环境变量启动的方式,使能 taosAdapter 接收 icinga2 数据功能,具体细节请参考 taosAdapter 的使用手册
配置 icinga2
- 使能 icinga2 的 opentsdb-writer(参考链接 https://icinga.com/docs/icinga-2/latest/doc/14-features/#opentsdb-writer)
- 修改配置文件
/etc/icinga2/features-enabled/opentsdb.conf
填写 <taosAdapter’s host> 为运行 taosAdapter 的服务器的域名或 IP 地址,<port for icinga2> 填写 taosAdapter 支持接收 icinga2 数据的相应端口(默认为 6048)
object OpenTsdbWriter "opentsdb" {
host = "<taosAdapter's host>"
port = <port for icinga2>
}
示例文件:
object OpenTsdbWriter "opentsdb" {
host = "127.0.0.1"
port = 6048
}
验证方法
重启 taosAdapter:
sudo systemctl restart taosadapter
重启 icinga2:
sudo systemctl restart icinga2
等待 10 秒左右后,使用 TDengine CLI 查询 TDengine 验证是否创建相应数据库并写入数据:
taos> show databases;
name |
=================================
information_schema |
performance_schema |
icinga2 |
Query OK, 3 row(s) in set (0.001867s)
taos> use icinga2;
Database changed.
taos> show stables;
name |
=================================
icinga.service.users.state_... |
icinga.service.users.acknow... |
icinga.service.procs.downti... |
icinga.service.users.users |
icinga.service.procs.procs_min |
icinga.service.users.users_min |
icinga.check.max_check_atte... |
icinga.service.procs.state_... |
icinga.service.procs.procs_... |
icinga.service.users.users_... |
icinga.check.latency |
icinga.service.procs.procs_... |
icinga.service.users.downti... |
icinga.service.users.users_... |
icinga.service.users.reachable |
icinga.service.procs.procs |
icinga.service.procs.acknow... |
icinga.service.procs.state |
icinga.service.procs.reachable |
icinga.check.current_attempt |
icinga.check.execution_time |
icinga.service.users.state |
Query OK, 22 row(s) in set (0.002317s)
note
- TDengine 默认生成的子表名是根据规则生成的唯一 ID 值。