diff --git a/utils/collectd/files/collectd.init b/utils/collectd/files/collectd.init index 845d33975..89715d4c4 100644 --- a/utils/collectd/files/collectd.init +++ b/utils/collectd/files/collectd.init @@ -128,6 +128,45 @@ process_network_sections() { fi } +process_iptables() { + local cfg="$1" + + printf "\n" >> "$COLLECTD_CONF" + config_foreach process_iptables_sections iptables_match + printf "\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" diff --git a/utils/collectd/files/collectd.uci b/utils/collectd/files/collectd.uci index 5df40728b..a04cbc31a 100644 --- a/utils/collectd/files/collectd.uci +++ b/utils/collectd/files/collectd.uci @@ -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 index 000000000..2c63c0851 --- /dev/null +++ b/utils/collectd/files/usr/share/collectd/plugin/iptables.json @@ -0,0 +1,2 @@ +{ +}