* ffluci/statistics: updated menu, added collectd interface and iptables cbi models

This commit is contained in:
Jo-Philipp Wich 2008-05-20 19:15:47 +00:00
parent 9b4386e0f1
commit b878aa8ced
3 changed files with 172 additions and 5 deletions

View file

@ -0,0 +1,41 @@
--[[
Luci configuration model for statistics - collectd interface plugin configuration
(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]--
m = Map("luci_statistics", "Interface Plugin",
[[Das Interface-Plugin sammelt Informationen zum Netzwerkverkehr auf den einzelnen Schnittstellen.]])
-- collectd_interface config section
s = m:section( NamedSection, "collectd_interface", "luci_statistics", "Pluginkonfiguration" )
-- collectd_interface.enable
enable = s:option( Flag, "enable", "Plugin aktivieren" )
enable.default = 0
-- collectd_interface.interfaces (Interface)
interfaces = s:option( MultiValue, "Interfaces", "Überwachte Schnittstellen", "mehrere Einträge mit Strg selektieren" )
interfaces.widget = "select"
interfaces:depends( "enable", 1 )
for k, v in pairs(ffluci.model.uci.sections("network")) do
if v[".type"] == "interface" and k ~= "loopback" then
interfaces:value(k)
end
end
-- collectd_interface.ignoreselected (IgnoreSelected)
ignoreselected = s:option( Flag, "IgnoreSelected", "Alle Schnittstellen außer ausgewählte überwachen" )
ignoreselected.default = 0
ignoreselected:depends( "enable", 1 )
return m

View file

@ -0,0 +1,126 @@
--[[
Luci configuration model for statistics - collectd iptables plugin configuration
(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]--
require("ffluci.sys.iptparser")
ip = ffluci.sys.iptparser.IptParser()
chains = { }
targets = { }
for i, rule in ipairs( ip:find() ) do
chains[rule.chain] = true
targets[rule.target] = true
end
m = Map("luci_statistics", "Iptables Plugin",
[[Das Iptables-Plugin ermöglicht die Überwachung bestimmter Firewallregeln um
Werte wie die Anzahl der verarbeiteten Pakete oder die insgesamt erfasste Datenmenge
zu speichern.]])
-- collectd_iptables config section
s = m:section( NamedSection, "collectd_iptables", "luci_statistics", "Pluginkonfiguration" )
-- collectd_iptables.enable
enable = s:option( Flag, "enable", "Plugin aktivieren" )
enable.default = 0
-- collectd_iptables_match config section (Chain directives)
rule = m:section( TypedSection, "collectd_iptables_match", "Regel hinzufügen",
[[Hier werden die Kriterien festgelegt, nach welchen die Firewall-Regeln zur Überwachung
ausgewählt werden.]])
rule.addremove = true
rule.anonymous = true
-- collectd_iptables_match.name
rule_table = rule:option( Value, "name", "Name der Regel", "wird im Diagram verwendet" )
-- collectd_iptables_match.table
rule_table = rule:option( ListValue, "table", "Firewall-Tabelle" )
rule_table.default = "filter"
rule_table.rmempty = true
rule_table.optional = true
rule_table:value("")
rule_table:value("filter")
rule_table:value("nat")
rule_table:value("mangle")
-- collectd_iptables_match.chain
rule_chain = rule:option( ListValue, "chain", "Firewall-Kette (Chain)" )
rule_chain.rmempty = true
rule_chain.optional = true
rule_chain:value("")
for chain, void in pairs( chains ) do
rule_chain:value( chain )
end
-- collectd_iptables_match.target
rule_target = rule:option( ListValue, "target", "Firewall-Aktion (Target)" )
rule_target.rmempty = true
rule_target.optional = true
rule_target:value("")
for target, void in pairs( targets ) do
rule_target:value( target )
end
-- collectd_iptables_match.protocol
rule_protocol = rule:option( ListValue, "protocol", "Netzwerkprotokoll" )
rule_protocol.rmempty = true
rule_protocol.optional = true
rule_protocol:value("")
rule_protocol:value("tcp")
rule_protocol:value("udp")
rule_protocol:value("icmp")
-- collectd_iptables_match.source
rule_source = rule:option( Value, "source", "Quell-IP-Bereich", "Bereich in CIDR Notation" )
rule_source.default = "0.0.0.0/0"
rule_source.rmempty = true
rule_source.optional = true
-- collectd_iptables_match.destination
rule_destination = rule:option( Value, "destination", "Ziel-IP-Bereich", "Bereich in CIDR Notation" )
rule_destination.default = "0.0.0.0/0"
rule_destination.rmempty = true
rule_destination.optional = true
-- collectd_iptables_match.inputif
rule_inputif = rule:option( Value, "inputif", "eingehende Schnittstelle", "z.B. eth0.0" )
rule_inputif.default = "0.0.0.0/0"
rule_inputif.rmempty = true
rule_inputif.optional = true
-- collectd_iptables_match.outputif
rule_outputif = rule:option( Value, "outputif", "ausgehende Schnittstelle", "z.B. eth0.1" )
rule_outputif.default = "0.0.0.0/0"
rule_outputif.rmempty = true
rule_outputif.optional = true
-- collectd_iptables_match.options
rule_options = rule:option( Value, "options", "Optionen", "z.B. reject-with tcp-reset" )
rule_options.default = "0.0.0.0/0"
rule_options.rmempty = true
rule_options.optional = true
return m

View file

@ -4,13 +4,13 @@ add( "admin", "statistics", "Statistiken", 70 )
--act( "ascent", "Ascent" ) --act( "ascent", "Ascent" )
--act( "cpufreq", "Cpufreq" ) --act( "cpufreq", "Cpufreq" )
act( "csv", "CSV" ) act( "csv", "CSV" )
--act( "df", "Speicher" ) act( "df", "Speicher" )
--act( "disk", "Festplatte" ) act( "disk", "Festplatte" )
act( "dns", "DNS" ) act( "dns", "DNS" )
--act( "email", "E-Mail" ) act( "email", "E-Mail" )
act( "exec", "Exec" ) act( "exec", "Exec" )
--act( "hddtemp", "Festplattentemperatur" ) --act( "hddtemp", "Festplattentemperatur" )
act( "interface", "Netzwerkschnittstellen" ) act( "interface", "Schnittstellen" )
act( "iptables", "Firewall" ) act( "iptables", "Firewall" )
--act( "irq", "Interrupts" ) --act( "irq", "Interrupts" )
--act( "libvirt", "Virtualisierung" ) --act( "libvirt", "Virtualisierung" )
@ -26,7 +26,7 @@ act( "iptables", "Firewall" )
--act( "perl", "Perl" ) --act( "perl", "Perl" )
act( "ping", "Ping" ) act( "ping", "Ping" )
--act( "powerdns", "Powerdns Server" ) --act( "powerdns", "Powerdns Server" )
act( "processes", "Prozessüberwachung" ) act( "processes", "Prozesse" )
--act( "rrdtool", "RRD Tool" ) --act( "rrdtool", "RRD Tool" )
--act( "sensors", "Sensoren" ) --act( "sensors", "Sensoren" )
--act( "snmp", "SNMP Datenquellen" ) --act( "snmp", "SNMP Datenquellen" )