Icinga 2将指标写入VictoriaMetrics数据库时出现的问题

前端开发 2026-07-11

我在我的电脑上用icinga2和 Victoria Metrics数据库来存储主机指标,使用Docker容器来搭建开发环境。

但我无法让它工作。

这是我配置文件中相关的部分。

docker-compose

networks:
  default:
    name: icinga-playground

services:
    icinga2:
        command: ["sh", "-c", "sleep 5 ; icinga2 daemon"]
        depends_on:
          - icingadb-redis (not shown)
          - init-icinga2 (not shown)
          - victoriametrics
        environment: *icinga2-environment
        image: icinga/icinga2
        logging: *default-logging
        ports:
          - 5665:5665
        volumes:
          - icinga2:/data
          - ./icinga2.conf.d:/custom_data/custom.conf.d

      victoriametrics:
        image: victoriametrics/victoria-metrics:latest
        ports:
          - "8428:8428"
        volumes:
          - vm_data:/victoria-metrics-data
        command:
          - "--storageDataPath=/victoria-metrics-data"

这是在icinga中配置Graphite写入器以实现向Victoria Metrics数据库写入的文件。

object GraphiteWriter "graphite" {
  host = "victoriametrics"
  port = 8428
}

我尝试用一个类似的配置来和InfluxDB搭配使用,它工作得很好。但使用Victoria Metrics时就不管用。我在日志里一直看到这条信息

critical/GraphiteWriter: Cannot write to TCP socket on host 'victoriametrics' port '8428'.

看起来icinga2找不到Victoria Metrics的主机。不过如果我用浏览器打开该端口,它就能显示出来。

怎么让它工作起来?

解决方案

Graphite数据采集协议通过纯TCP传输,而不是HTTP。VictoriaMetrics在 8428端口监听HTTP请求。因此它不能在该端口接收通过Graphite发送的指标。这也是你需要显式开启一个专门用于Graphite样本监听的端口的原因——通常是TCP端口 2003。可以通过向VictoriaMetrics传入 -graphiteListenAddr=:2003 命令行标志来开启。有关详情,请参阅 这些文档

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章