Merge pull request #474 from hnyman/entropy-1505

for-15.05 statistics: Backport entropy support, config cleanup, init scripts cleanup
This commit is contained in:
Hannu Nyman 2015-09-15 10:51:42 +03:00
commit 30f6fe82af
7 changed files with 166 additions and 144 deletions

View file

@ -30,6 +30,7 @@ function index()
disk = _("Disk Usage"),
dns = _("DNS"),
email = _("Email"),
entropy = _("Entropy"),
exec = _("Exec"),
interface = _("Interfaces"),
iptables = _("Firewall"),
@ -53,7 +54,7 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
system = { "cpu", "df", "disk", "email", "exec", "irq", "load", "memory", "nut", "processes", "uptime" },
system = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "uptime" },
network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "ping", "splash_leases", "tcpconns", "iwinfo" }
}

View file

@ -0,0 +1,14 @@
-- Copyright 2015 Hannu Nyman <hannu.nyman@iki.fi>
-- Licensed to the public under the Apache License 2.0.
m = Map("luci_statistics",
translate("Entropy Plugin Configuration"),
translate("The entropy plugin collects statistics about the available entropy."))
s = m:section( NamedSection, "collectd_entropy", "luci_statistics" )
enable = s:option( Flag, "enable", translate("Enable this plugin") )
enable.default = 0
return m

View file

@ -0,0 +1,19 @@
-- Copyright 2015 Hannu Nyman <hannu.nyman@iki.fi>
-- Licensed to the public under the Apache License 2.0.
module("luci.statistics.rrdtool.definitions.entropy", package.seeall)
function rrdargs( graph, plugin, plugin_instance, dtype )
return {
title = "%H: Available entropy",
vlabel = "bits",
number_format = "%4.0lf",
data = {
types = { "entropy" },
options = { entropy = { title = "Entropy %di" } }
}
}
end

View file

@ -1,143 +1,153 @@
config 'statistics' 'rrdtool'
option 'default_timespan' '1hour'
option 'image_width' '600'
option 'image_path' '/tmp/rrdimg'
# general settings
config 'statistics' 'collectd'
option 'BaseDir' '/var/run/collectd'
option 'Include' '/etc/collectd/conf.d'
option 'PIDFile' '/var/run/collectd.pid'
option 'PluginDir' '/usr/lib/collectd'
option 'TypesDB' '/usr/share/collectd/types.db'
option 'Interval' '30'
option 'ReadThreads' '2'
config statistics 'collectd'
option BaseDir '/var/run/collectd'
option Include '/etc/collectd/conf.d'
option PIDFile '/var/run/collectd.pid'
option PluginDir '/usr/lib/collectd'
option TypesDB '/usr/share/collectd/types.db'
option Interval '30'
option ReadThreads '2'
config 'statistics' 'collectd_ping'
option 'enable' '0'
option 'TTL' '127'
option 'Interval' '30'
option 'Hosts' '127.0.0.1'
config statistics 'rrdtool'
option default_timespan '1hour'
option image_width '600'
option image_path '/tmp/rrdimg'
config 'statistics' 'collectd_csv'
option 'enable' '0'
option 'StoreRates' '0'
option 'DataDir' '/tmp'
# output plugins
config 'statistics' 'collectd_df'
option 'enable' '0'
option 'Devices' '/dev/mtdblock/4'
option 'MountPoints' '/jffs'
option 'FSTypes' 'tmpfs'
option 'IgnoreSelected' '0'
config statistics 'collectd_rrdtool'
option enable '1'
option DataDir '/tmp/rrd'
option RRARows '100'
option RRASingle '1'
option RRATimespans '1hour 1day 1week 1month 1year'
config 'statistics' 'collectd_disk'
option 'enable' '0'
option 'Disks' 'hda1 hdb'
option 'IgnoreSelected' '0'
config statistics 'collectd_csv'
option enable '0'
option StoreRates '0'
option DataDir '/tmp'
config 'statistics' 'collectd_dns'
option 'enable' '0'
option 'Interfaces' 'ffdhcp ff br-lan'
option 'IgnoreSources' '127.0.0.1'
config statistics 'collectd_email'
option enable '0'
option SocketFile '/var/run/collectd/email.sock'
option SocketGroup 'nogroup'
config 'statistics' 'collectd_email'
option 'enable' '0'
option 'SocketFile' '/var/run/collectd/email.sock'
option 'SocketGroup' 'nogroup'
config statistics 'collectd_logfile'
option enable '0'
option LogLevel 'notice'
option File '/var/log/collectd.log'
option Timestamp '1'
config 'statistics' 'collectd_exec'
option 'enable' '0'
config statistics 'collectd_network'
option enable '0'
config 'statistics' 'collectd_interface'
option 'enable' '1'
option 'Interfaces' 'br-lan br-ff'
option 'IgnoreSelected' '0'
config statistics 'collectd_unixsock'
option enable '0'
option SocketFile '/var/run/collectd/query.sock'
option SocketGroup 'nogroup'
config 'statistics' 'collectd_iptables'
option 'enable' '1'
# input plugins
config 'collectd_iptables_match'
option 'table' 'nat'
option 'chain' 'luci_fw_postrouting'
option 'target' 'MASQUERADE'
option 'source' '192.168.1.0/24'
option 'outputif' 'br-ff'
option 'name' 'Verkehr LAN-Clients'
config statistics 'collectd_conntrack'
option enable '0'
config 'collectd_iptables_match'
option 'chain' 'luci_fw_postrouting'
option 'table' 'nat'
option 'target' 'MASQUERADE'
option 'source' '10.61.230.0/24'
option 'outputif' 'br-ff'
option 'name' 'Verkehr WLAN-Clients'
config statistics 'collectd_cpu'
option enable '0'
config 'statistics' 'collectd_irq'
option 'enable' '0'
option 'Irqs' '2 3 4 7'
config statistics 'collectd_df'
option enable '0'
option Devices '/dev/mtdblock/4'
option MountPoints '/jffs'
option FSTypes 'tmpfs'
option IgnoreSelected '0'
config 'statistics' 'collectd_load'
option 'enable' '1'
config statistics 'collectd_disk'
option enable '0'
option Disks 'hda1 hdb'
option IgnoreSelected '0'
config 'statistics' 'collectd_logfile'
option 'enable' '0'
option 'LogLevel' 'notice'
option 'File' '/var/log/collectd.log'
option 'Timestamp' '1'
config statistics 'collectd_dns'
option enable '0'
option Interfaces 'br-lan'
option IgnoreSources '127.0.0.1'
config 'statistics' 'collectd_netlink'
option 'enable' '0'
option 'IgnoreSelected' '0'
option 'VerboseInterfaces' 'br-lan br-ff'
option 'QDiscs' 'br-lan br-ff'
config statistics 'collectd_entropy'
option enable '0'
config 'statistics' 'collectd_network'
option 'enable' '0'
config statistics 'collectd_exec'
option enable '0'
config 'statistics' 'collectd_processes'
option 'enable' '1'
option 'Processes' 'uhttpd dnsmasq dropbear'
config statistics 'collectd_interface'
option enable '1'
option Interfaces 'br-lan'
option IgnoreSelected '0'
config statistics 'collectd_splash_leases'
option enable '1'
config statistics 'collectd_iptables'
option enable '0'
config 'statistics' 'collectd_tcpconns'
option 'enable' '1'
option 'ListeningPorts' '0'
option 'LocalPorts' '22 80'
config collectd_iptables_match
option table 'nat'
option chain 'luci_fw_postrouting'
option target 'MASQUERADE'
option source '192.168.1.0/24'
option outputif 'br-ff'
option name 'LAN-Clients traffic'
config 'statistics' 'collectd_unixsock'
option 'enable' '0'
option 'SocketFile' '/var/run/collectd/query.sock'
option 'SocketGroup' 'nogroup'
config collectd_iptables_match
option chain 'luci_fw_postrouting'
option table 'nat'
option target 'MASQUERADE'
option source '10.61.230.0/24'
option outputif 'br-ff'
option name 'WLAN-Clients traffic'
config 'statistics' 'collectd_cpu'
option 'enable' '1'
config statistics 'collectd_irq'
option enable '0'
option Irqs '2 3 4 7'
config 'statistics' 'collectd_rrdtool'
option 'enable' '1'
option 'DataDir' '/tmp/rrd'
option 'RRARows' '100'
option 'RRASingle' '1'
option 'RRATimespans' '1hour 1day 1week 1month 1year'
config statistics 'collectd_iwinfo'
option enable '1'
config 'statistics' 'collectd_memory'
option 'enable' '1'
config statistics 'collectd_load'
option enable '1'
config 'statistics' 'collectd_conntrack'
option 'enable' '1'
config statistics 'collectd_memory'
option enable '0'
config 'statistics' 'collectd_olsrd'
option 'enable' '1'
option 'Port' '2006'
option 'Host' '127.0.0.1'
config statistics 'collectd_netlink'
option enable '0'
option IgnoreSelected '0'
option VerboseInterfaces 'br-lan'
option QDiscs 'br-lan'
config 'statistics' 'collectd_iwinfo'
option 'enable' '1'
config statistics 'collectd_nut'
option enable '0'
option UPS 'myupsname'
config 'statistics' 'collectd_nut'
option 'enable' '0'
option 'UPS' 'myupsname'
config statistics 'collectd_olsrd'
option enable '0'
option Port '2006'
option Host '127.0.0.1'
config statistics 'collectd_ping'
option enable '0'
option TTL '127'
option Interval '30'
option Hosts '127.0.0.1'
config statistics 'collectd_processes'
option enable '0'
option Processes 'uhttpd dnsmasq dropbear'
config statistics 'collectd_splash_leases'
option enable '0'
config statistics 'collectd_tcpconns'
option enable '0'
option ListeningPorts '0'
option LocalPorts '22 80'
config statistics 'collectd_uptime'
option enable '0'
config 'statistics' 'collectd_uptime'
option 'enable' '1'

View file

@ -3,23 +3,15 @@ START=79
start() {
### replace shipped config with symlink
mkdir -p /var/etc
if [ ! -L /etc/collectd.conf ]; then
test -f /etc/collectd.conf && mv /etc/collectd.conf /etc/collectd.conf.bak
ln -s /var/etc/collectd.conf /etc/collectd.conf
fi
### create config
mkdir -p /var/etc
/usr/bin/stat-genconfig > /var/etc/collectd.conf
### prepare rrdimg directory
if [ -f /etc/config/lucid ] && [ -x /etc/init.d/lucid ] && /etc/init.d/lucid enabled && \
[ "$(uci get luci_statistics.rrdtool.image_path 2>/dev/null)" != "$(uci get lucid.statistics.physical 2>/dev/null)" ]; then
uci set lucid.statistics.physical=$(uci get luci_statistics.rrdtool.image_path)
uci commit lucid
/etc/init.d/lucid restart
fi
### workaround broken permissions on /tmp
chmod 1777 /tmp
}

View file

@ -8,29 +8,9 @@ uci -q batch <<-EOF >/dev/null
commit ucitrack
EOF
# register LuCId virtual path handler
[ -f /etc/config/lucid ] && \
uci -q batch <<-EOF >/dev/null
delete lucid.statistics
set lucid.statistics=DirectoryPublisher
set lucid.statistics.name='RRDTool Image Cache'
set lucid.statistics.physical=/tmp/rrdimg
set lucid.statistics.virtual=/rrdimg
set lucid.statistics.domain=''
add_list lucid.http.publisher=statistics
add_list lucid.https.publisher=statistics
commit lucid
EOF
# symlink for busybox httpd
[ -x /usr/sbin/httpd ] && [ ! -h /www/rrdimg ] && \
ln -s /tmp/rrdimg /www/rrdimg
# restart LuCId service
[ -x /etc/init.d/lucid ] && /etc/init.d/lucid enabled && /etc/init.d/lucid restart
rm -f /tmp/luci-indexcache
exit 0

View file

@ -303,6 +303,12 @@ plugins = {
{ }
},
entropy = {
{ },
{ },
{ }
},
exec = config_exec,
interface = {