我已经在服务器上安装了Telegraf,它包含以下networkingconfiguration:
[[inputs.net]] interfaces = ["eth0"]
这将以下指标提供给InfluxDB:
bytes_recv , bytes_sent , drop_in , drop_out , err_in , err_out , icmp_inaddrmaskreps , icmp_inaddrmasks , icmp_incsumerrors , icmp_indestunreachs , icmp_inechoreps , icmp_inechos , icmp_inerrors , icmp_inmsgs , icmp_inparmprobs , icmp_inredirects , icmp_insrcquenchs , icmp_intimeexcds , icmp_intimestampreps , icmp_intimestamps , icmp_outaddrmaskreps , icmp_outaddrmasks , icmp_outdestunreachs , icmp_outechoreps , icmp_outechos , icmp_outerrors , icmp_outmsgs , icmp_outparmprobs , icmp_outredirects , icmp_outsrcquenchs , icmp_outtimeexcds , icmp_outtimestampreps , icmp_outtimestamps , ip_defaultttl , ip_forwarding , ip_forwdatagrams , ip_fragcreates , ip_fragfails , ip_fragoks , ip_inaddrerrors , ip_indelivers , ip_indiscards , ip_inhdrerrors , ip_inreceives , ip_inunknownprotos , ip_outdiscards , ip_outnoroutes , ip_outrequests , ip_reasmfails , ip_reasmoks , ip_reasmreqds , ip_reasmtimeout , packets_recv , packets_sent , tcp_activeopens , tcp_attemptfails , tcp_currestab , tcp_estabresets tcp_estabresets , tcp_incsumerrors , tcp_inerrs , tcp_insegs , tcp_maxconn , tcp_outrsts , tcp_outsegs , tcp_passiveopens , tcp_retranssegs , tcp_rtoalgorithm , tcp_rtomax , tcp_rtomin , udp_ignoredmulti , udp_incsumerrors , udp_indatagrams , udp_inerrors , udp_noports , udp_outdatagrams , udp_rcvbuferrors , udp_sndbuferrors , udplite_ignoredmulti , udplite_incsumerrors , udplite_indatagrams , udplite_inerrors , udplite_noports , udplite_outdatagrams , udplite_rcvbuferrors , udplite_sndbuferrors
然后我使用以下查询在Grafana中创build了一个面板:
SELECT derivative(sum("bytes_sent"), 1s) AS "up",, derivative(sum("bytes_recv"), 1s) AS "down" FROM "autogen"."net" WHERE "interface" = 'eth0' AND $timeFilter GROUP BY time($__interval) fill(null)
(由于bytes_recv和bytes_sent正在累积指标,因此derivative()是必需的。)
我担心的是数据不准确。 作为一个testing,我下载了一些非常大的文件(1GB),并确认( ifconfig eth0 ) RX bytes的数量增加了预期的数量。 但是,图表看起来像这样:
logging的指标没有任何变化。 我究竟做错了什么?
在提出问题之后,我立即意识到问题所在。 (提示头在桌子上)
Docker为容器提供了一个虚拟的以太网适配器,只能看到自己的stream量。 解决scheme是要么:
--net=host标志运行容器