diff --git a/monitoring/collectd/collectd.conf b/monitoring/collectd/collectd.conf
new file mode 100644
index 0000000..f3efc2b
--- /dev/null
+++ b/monitoring/collectd/collectd.conf
@@ -0,0 +1,239 @@
+##############################################################################
+# Global #
+#----------------------------------------------------------------------------#
+# Global settings for the daemon. #
+##############################################################################
+
+#Hostname "localhost"
+FQDNLookup false
+#BaseDir "/var/lib/collectd"
+#PluginDir "/usr/lib/collectd"
+TypesDB "/usr/share/collectd/types.db" "/etc/collectd/openwrt.db"
+
+#----------------------------------------------------------------------------#
+# Interval at which to query values. This may be overwritten on a per-plugin #
+# base by using the 'Interval' option of the LoadPlugin block: #
+# #
+# Interval 60 #
+# #
+#----------------------------------------------------------------------------#
+Interval 30
+
+#Timeout 2
+#ReadThreads 5
+# avoid race conditions if multiple datapoints are packed in a single packet
+WriteThreads 1
+
+# Logging
+LoadPlugin syslog
+
+ LogLevel info
+
+
+# now start collecting
+LoadPlugin cpu
+
+# free space
+LoadPlugin df
+
+ # Ignore listed filesystems
+ IgnoreSelected true
+ # and select all virtual crap
+ FSType bdev
+ FSType binfmt_misc
+ FSType cgroup
+ FSType cpuset
+ FSType debugfs
+ FSType devpts
+ FSType devtmpfs
+ FSType hugetlbfs
+ FSType mqueue
+ FSType pipefs
+ FSType proc
+ FSType pstore
+ FSType ramfs
+ FSType rootfs
+ FSType rpc_pipefs
+ FSType securityfs
+ FSType sockfs
+ FSType sysfs
+ FSType tmpfs
+
+
+# IOPS
+LoadPlugin disk
+
+# LOADAVG
+LoadPlugin load
+
+# Ram utilisation
+LoadPlugin memory
+
+# SWAP
+LoadPlugin swap
+
+# Logged in
+LoadPlugin users
+
+# traffic
+LoadPlugin interface
+
+# temp, voltage, current, fans via ipmi
+# all sensors monitored by default
+LoadPlugin ipmi
+
+ # disable some sensors collection
+ IgnoreSelected true
+ Sensor "VRM 2 processor_module (9.2)"
+ Sensor "VRM 1 processor_module (9.1)"
+ Sensor "Power Supply 1 power_supply (10.1)"
+ Sensor "Power Supply 2 power_supply (10.2)"
+ Sensor "Power Supplies power_supply (10.3)"
+ Sensor "UID Light system_chassis (23.1)"
+ Sensor "Int. Health LED system_chassis (23.2)"
+ Sensor "Ext. Health LED system_chassis (23.3)"
+
+
+# pick up the lm_sensors stuff
+LoadPlugin sensors
+
+# IRQ
+LoadPlugin irq
+
+# nginx stats
+LoadPlugin nginx
+
+ URL "http://localhost/of2016status"
+
+
+# now lets listen/send some data here and there
+# def port 25826
+LoadPlugin network
+
+ # multicast
+ Listen "239.192.74.66"
+ Listen "ff18::efc0:4a42"
+ # All local interfaces
+ #Listen "0.0.0.0"
+ # listen on test vlans
+ #Listen "10.200.0.1"
+ #Listen "10.203.0.1"
+ #Listen "10.204.0.1"
+
+ # listen on prod vlans
+ #Listen "10.100.0.1"
+ #Listen "10.103.0.1"
+ #Listen "10.104.0.1"
+ Listen "*"
+ ReportStats true
+
+
+# entropy statistics
+LoadPlugin entropy
+
+# and finaly save the data in graphite
+LoadPlugin write_graphite
+
+
+ Host "localhost"
+ Port "10001"
+ Protocol "tcp"
+ Prefix "received."
+ LogSendErrors true
+ # store raw numbers and let frontend deal with them
+ StoreRates false
+ # be verbose with metrics store
+ AlwaysAppendDS true
+
+
+
+LoadPlugin ConnTrack
+LoadPlugin ContextSwitch
+
+
+### try to monitor the switches too (SNMP)
+LoadPlugin snmp
+
+ # data points
+
+ Type "if_octets"
+ Table true
+ Instance "IF-MIB::ifName"
+ Values "IF-MIB::ifHCInOctets" "IF-MIB::ifHCOutOctets"
+
+
+
+ Type "if_errors"
+ Table true
+ Instance "IF-MIB::ifName"
+ Values "IF-MIB::ifInErrors" "IF-MIB::ifOutErrors"
+
+
+ # now gather my minnion
+
+ Address "10.20.0.11"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+ Address "10.20.0.21"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+ Address "10.20.0.22"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+ Address "10.20.0.26"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+ Address "10.20.0.23"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+ Address "172.31.42.64"
+ Version 2
+ Community "password"
+ Collect "std_traffic" "std_errors"
+ Interval 60
+
+
+
+# monitor unbound by exec
+####LoadPlugin exec
+####
+#### Exec "unbound" "/usr/local/bin/unbound-collectd.sh"
+####
+
+# See collectd.conf(5)
+LoadPlugin unixsock
+
+
+ SocketFile "/tmp/collectd.sock"
+ SocketGroup "nagios"
+ SocketPerms "0770"
+
+
+LoadPlugin uptime
+LoadPlugin processes
+
diff --git a/monitoring/collectd/openwrt.db b/monitoring/collectd/openwrt.db
new file mode 100644
index 0000000..be918b6
--- /dev/null
+++ b/monitoring/collectd/openwrt.db
@@ -0,0 +1,4 @@
+stations value:GAUGE:0:256
+signal_noise_mw value:GAUGE:0:U
+signal_power_mw value:GAUGE:0:U
+