-
-
Save fastjack/a0feb792a9655da7aa3e2a7a1d9f812f to your computer and use it in GitHub Desktop.
[[inputs.exec]] | |
commands = ["/usr/local/libexec/telegraf/gateways.py"] | |
timeout = "5s" | |
data_format = "influx" |
#!/usr/local/bin/python2.7 | |
import glob, os, socket | |
DPINGER_SOCK_PATH = "/var/run/" | |
os.chdir(DPINGER_SOCK_PATH) | |
for sock_name in glob.glob("dpinger*.sock"): | |
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | |
sock_path = DPINGER_SOCK_PATH+sock_name | |
s = sock.connect(sock_path) | |
line = sock.recv(1024).split('\n', 1)[0] | |
values = line.split() | |
print "gateways,gateway_name=" + values[0] + " rtt=" + str(int(values[1])/100.0) + \ | |
",rttsd=" + str(int(values[2])/100.0) + ",loss=" + str(int(values[3])) + "i" | |
sock.close() |
#!/usr/local/bin/python3.7 | |
import glob, os, socket | |
DPINGER_SOCK_PATH = "/var/run/" | |
os.chdir(DPINGER_SOCK_PATH) | |
for sock_name in glob.glob("dpinger*.sock"): | |
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | |
sock_path = DPINGER_SOCK_PATH+sock_name | |
s = sock.connect(sock_path) | |
line = sock.recv(1024).decode().split('\n', 1)[0] | |
values = line.split() | |
print("gateways,gateway_name="+values[0]+" rtt="+str(int(values[1])/100.0)+ \ | |
",rttsd="+str(int(values[2])/100.0)+",loss="+str(int(values[3]))+"i") | |
sock.close() |
The script works correctly and the data goes back to grafana. The script stops executing after a while. I have to relaunch the gateway.py script and the data is going up for a while. I just checked my telegraf.conf file. It has not undergone any modification.
This file is automatically generated by pfSense
[agent]
interval = "10s"
round_interval = true
[[inputs.cpu]]
percpu = true
totalcpu = true
fielddrop = ["time_*"]
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.net]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.pf]]
[[outputs.influxdb]]
urls = ["http://grafana:8086"]
database = "influx_db"
username = "xxxxx"
password = "xxxxx"
Additional Raw Options
any idea how to get the gateway data without the dpinger service?
I had to deactivate the gateway lookup, because of some strange conection problems, as discribed here https://be-virtual.net/pfsense-arpresolve-cant-allocate-llinfo-for-x-x-x-x-on-emx/
@corgan2222 You probably could cobble together something with ping. I used dpinger because it already comes configured through pfSense's admin interface.
But if you're having problems pinging your already configured gateway you can choose a custom ping target (the user interfaces calls it a "Monitor IP"). Just go to System -> Routing -> Gateways and then edit your gateway from there.
Why the /100
- the default output is microseconds and that seems fine?
I believe I had my Grafana already set up for seconds instead of microseconds so I added it here.
Ah okay, that would be /1000
but either way thanks for saving me some time with this. Works well on opnsense too
Reading https://forum.netgate.com/topic/152132/grafana-dashboard-using-telegraf-with-additional-plugins/19 I noticed that some people were getting ping times that were orders of magnitude too small. This problem never occurred to me. I had set the unit of my RTT/RTTsd graph to "Time/miliseconds (ms)" in Grafana.