forked from zentralwerk/network
collectd: add dhcpcount for *-gw
This commit is contained in:
parent
c3e3eadfb3
commit
88b011772f
|
@ -0,0 +1,5 @@
|
||||||
|
collectd:
|
||||||
|
network: client
|
||||||
|
interface: True
|
||||||
|
conntrack: True
|
||||||
|
dhcpcount: True
|
|
@ -14,10 +14,13 @@ base:
|
||||||
- dhcp
|
- dhcp
|
||||||
- bird.radv
|
- bird.radv
|
||||||
- bird.ospf
|
- bird.ospf
|
||||||
|
- collectd.gw
|
||||||
'pub-gw or serv-gw or radio-gw':
|
'pub-gw or serv-gw or radio-gw':
|
||||||
- dhcp
|
- dhcp
|
||||||
- bird.radv
|
- bird.radv
|
||||||
- bird.ospf
|
- bird.ospf
|
||||||
|
'pub-gw':
|
||||||
|
- collectd.gw
|
||||||
'c3d2-gw or c3d2-anon or mgmt-gw':
|
'c3d2-gw or c3d2-anon or mgmt-gw':
|
||||||
- bird.ospf
|
- bird.ospf
|
||||||
'c3d2-gw':
|
'c3d2-gw':
|
||||||
|
|
|
@ -38,6 +38,12 @@ LoadPlugin ping
|
||||||
Interval 10
|
Interval 10
|
||||||
</Plugin>
|
</Plugin>
|
||||||
|
|
||||||
|
{%- elif plugin == 'dhcpcount' and conf is True %}
|
||||||
|
LoadPlugin exec
|
||||||
|
<Plugin exec>
|
||||||
|
Exec "collectd" "/usr/bin/dhcpcount.rb"
|
||||||
|
</Plugin>
|
||||||
|
|
||||||
{%- elif conf is mapping %}
|
{%- elif conf is mapping %}
|
||||||
LoadPlugin {{ plugin }}
|
LoadPlugin {{ plugin }}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
require 'date'
|
||||||
|
|
||||||
|
hostname = `hostname`.strip
|
||||||
|
|
||||||
|
loop do
|
||||||
|
starts = nil
|
||||||
|
ends = nil
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
IO::readlines("/var/lib/dhcp/dhcpd.leases").each do |line|
|
||||||
|
if line =~ /^lease/
|
||||||
|
starts = nil
|
||||||
|
ends = nil
|
||||||
|
elsif line =~ /starts \d+ (.+?);/
|
||||||
|
starts = DateTime.parse $1
|
||||||
|
elsif line =~ /ends \d+ (.+?);/
|
||||||
|
ends = DateTime.parse $1
|
||||||
|
elsif line =~ /^\}/
|
||||||
|
now = DateTime.now
|
||||||
|
if starts and ends and
|
||||||
|
starts <= now and ends >= now
|
||||||
|
count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
puts "PUTVAL #{hostname}/dhcpd/leases N:#{count}"
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
end
|
|
@ -15,3 +15,10 @@ collectd:
|
||||||
file.managed:
|
file.managed:
|
||||||
- source: salt://collectd/collectd.conf
|
- source: salt://collectd/collectd.conf
|
||||||
- template: 'jinja'
|
- template: 'jinja'
|
||||||
|
|
||||||
|
{%- if pillar['collectd'].get('dhcpcount') %}
|
||||||
|
/usr/bin/dhcpcount.rb:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://collectd/dhcpcount.rb
|
||||||
|
- mode: 755
|
||||||
|
{%- endif %}
|
||||||
|
|
|
@ -13,6 +13,7 @@ base:
|
||||||
- forwarding
|
- forwarding
|
||||||
- bird
|
- bird
|
||||||
- dhcp
|
- dhcp
|
||||||
|
- collectd
|
||||||
'priv13-gw':
|
'priv13-gw':
|
||||||
- firewall.priv-stateful
|
- firewall.priv-stateful
|
||||||
'pub-gw or serv-gw':
|
'pub-gw or serv-gw':
|
||||||
|
@ -20,6 +21,8 @@ base:
|
||||||
- forwarding
|
- forwarding
|
||||||
- bird
|
- bird
|
||||||
- dhcp
|
- dhcp
|
||||||
|
'pub-gw':
|
||||||
|
- collectd
|
||||||
'c3d2-gw or c3d2-anon or mgmt-gw':
|
'c3d2-gw or c3d2-anon or mgmt-gw':
|
||||||
- no-ssh
|
- no-ssh
|
||||||
- forwarding
|
- forwarding
|
||||||
|
|
Loading…
Reference in New Issue