collectd: add iptables uci config
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 17 Sep 2019 08:08:01 +0000 (10:08 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Tue, 17 Sep 2019 08:15:46 +0000 (10:15 +0200)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
utils/collectd/files/collectd.init
utils/collectd/files/collectd.uci
utils/collectd/files/usr/share/collectd/plugin/iptables.json [new file with mode: 0644]

index 845d33975327bbb43b10890ce2e529733572ba58..89715d4c465b4e3ac4e49f3cd35efbb602774003 100644 (file)
@@ -128,6 +128,45 @@ process_network_sections() {
        fi
 }
 
+process_iptables() {
+       local cfg="$1"
+
+       printf "<Plugin iptables>\n" >> "$COLLECTD_CONF"
+       config_foreach process_iptables_sections iptables_match
+       printf "</Plugin>\n\n" >> "$COLLECTD_CONF"
+}
+
+process_iptables_sections() {
+       local cfg="$1"
+
+       local table chain
+
+       config_get table "$cfg" table
+       [ -z "$table" ] && {
+               $LOG notice "No table option in config $cfg defined"
+               return 0
+       }
+
+       config_get chain "$cfg" chain
+       [ -z "$chain" ] && {
+               $LOG notice "No chain option in config $cfg defined"
+               return 0
+       }
+
+       config_get index "$cfg" index
+       [ -z "$index" ] && {
+               $LOG notice "No index option in config $cfg defined"
+               return 0
+       }
+
+       config_get name "$cfg" name
+       if [ -z "$name" ]; then
+               printf "\\tChain %s %s %s\n" "${table}" "${chain}" "${index}" >> "$COLLECTD_CONF"
+       else
+               printf "\\tChain %s %s %s \"%s\"\n" "${table}" "${chain}" "${index}" "${name}">> "$COLLECTD_CONF"
+       fi
+}
+
 CONFIG_LIST=""
 add_list_option() {
        local value="$1"
@@ -231,6 +270,10 @@ process_plugins() {
                        CONFIG_STRING=""
                        process_network "$cfg"
                        ;;
+               iptables)
+                       CONFIG_STRING=""
+                       process_iptables
+                       ;;
                *)
                        CONFIG_STRING=""
                        process_generic "$cfg" "\\t" "/usr/share/collectd/plugin/$cfg.json"
index 5df40728bd5337d1151564b6742a58af0164385c..a04cbc31a2800b18c4f7b287bfeb4fa3403d47bd 100644 (file)
@@ -81,6 +81,15 @@ config globals 'globals'
 #      list Interface 'br-lan'
 #      option IgnoreSelected '0'
 
+#config plugin 'iptables'
+#      option enable '1'
+
+#config iptables_match
+#      option table 'nat'
+#      option chain 'zone_wan_postrouting'
+#      option index '1'
+#      option name 'WLAN-Clients traffic'
+
 #config plugin 'irq'
 #      option enable '0'
 #      list Irq '2'
diff --git a/utils/collectd/files/usr/share/collectd/plugin/iptables.json b/utils/collectd/files/usr/share/collectd/plugin/iptables.json
new file mode 100644 (file)
index 0000000..2c63c08
--- /dev/null
@@ -0,0 +1,2 @@
+{
+}