-
-
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() |
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
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