Additional comments, now I tested your UserParameters.
> Index: files/network
> ===================================================================
> --- files/network (révision 0)
> +++ files/network (révision 0)
> @@ -0,0 +1,8 @@
> +#tested with ath9k/zabbix 2.0.3-2.0.4/openwrt AA rc1
> +#see http://wiki.openwrt.org/doc/howto/zabbix for ready to use templates
> +
> +#
> +UserParameter=netowrt.discovery,lua -l uci -e 'x = uci.cursor(nil,
> "/var/state");list = "{\"data\":[";x:foreach("network", "interface",
> function(s) list=list.."{\"{#IF}\":\""..s.ifname.."\",
> \"{#NET}\":\""..s[".name"].."\", \"{#DEV}\":\""..s.device.."\"}," end);
> list=string.gsub(list,",$",""); print(list.."]}")'
I get:
{"data":[{"{#IF}":"lo", "{#NET}":"loopback",
"{#DEV}":"lo"},{"{#IF}":"br-lan", "{#NET}":"lan", "{#DEV}":"eth0
eth1"}]}
In the last entry the wifi device wlan0 is missing.
# brctl show
bridge name bridge id STP enabled interfaces
br-lan 8000.f4ec38f0f1c8 no eth0
eth1
wlan0
> +
> +
> +
> Index: files/mac80211
> ===================================================================
> --- files/mac80211 (révision 0)
> +++ files/mac80211 (révision 0)
> @@ -0,0 +1,26 @@
> +#tested with ath9k/zabbix 2.0.3-2.0.4/openwrt AA rc1
> +#see http://wiki.openwrt.org/doc/howto/zabbix for ready to use templates
> +
> +# If you want to know the exact meaning of an UserParameter, you can search
> in the ieee80211 standard:
> +# http://standards.ieee.org/getieee802/download/802.11-2012.pdf
> +# exemple: for mac80211.ACKFailureCount search for dot11ACKFailureCount
> (page 2145)
> +
> +#automatically discover mac80211 phy (phy0 ...)
> +UserParameter=mac80211.phydiscovery,for phy in $(ls
> /sys/kernel/debug/ieee80211/); do list="$list,"'{"{#PHY}":"'$phy'"}'; done;
> echo '{"data":['${list#,}']}'
> +
> +#phy statistics (you need #PHY as parameter)
> +#by default /sys/kernel/debug/ieee80211/ files are readable by root only
> +UserParameter=mac80211.ACKFailureCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/dot11ACKFailureCount
> +UserParameter=mac80211.FCSErrorCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/dot11FCSErrorCount
> +UserParameter=mac80211.RTSFailureCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/dot11RTSFailureCount
> +UserParameter=mac80211.RTSSuccessCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/dot11RTSSuccessCount
> +UserParameter=mac80211.FailedCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/failed_count
> +UserParameter=mac80211.FrameDuplicateCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/frame_duplicate_count
> +UserParameter=mac80211.MulticastReceivedFrameCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/multicast_received_frame_count
> +UserParameter=mac80211.MulticastTransmittedFrameCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/multicast_transmitted_frame_count
> +UserParameter=mac80211.MultipleRetryCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/multiple_retry_count
> +UserParameter=mac80211.ReceivedFragmentCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/received_fragment_count
> +UserParameter=mac80211.RetryCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/retry_count
> +UserParameter=mac80211.TransmittedFragmentCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/transmitted_fragment_count
> +UserParameter=mac80211.TransmittedFrameCount[*],cat
> /sys/kernel/debug/ieee80211/$1/statistics/transmitted_frame_count
All ok!
> Index: files/wifi
> ===================================================================
> --- files/wifi (révision 0)
> +++ files/wifi (révision 0)
> @@ -0,0 +1,23 @@
> +#tested with ath9k/zabbix 2.0.3-2.0.4/openwrt AA rc1
> +#see http://wiki.openwrt.org/doc/howto/zabbix for ready to use templates
> +
> +#
> +UserParameter=wifi.discovery,lua -l uci -l iwinfo -e 'x = uci.cursor(nil,
> "/var/state");list = "{\"data\":[";x:foreach("wireless", "wifi-iface",
> function(s) list=list.."{\"{#IF}\":\""..s.ifname.."\",
> \"{#SSID}\":\""..s.ssid.."\", \"{#NET}\":\""..s.network.."\",
> \"{#DEV}\":\""..s.device.."\",
> \"{#TYPE}\":\""..x:get("wireless",s.device,"type").."\",
> \"{#PHY}\":\""..x:get("wireless",s.device,"phy").."\",
> \"{#HWMODE}\":\""..x:get("wireless",s.device,"hwmode").."\",
> \"{#CHANNEL}\":\""..x:get("wireless",s.device,"channel").."\",
> \"{#BSSID}\":\""..iwinfo[iwinfo.type(s.ifname)].bssid(s.ifname).."\"}," end);
> list=string.gsub(list,",$",""); print(list.."]}")'
I had to enlarge CONFIG_BUSYBOX_CONFIG_FEATURE_EDITING_MAX_LEN to test
this on the console, but then I get this error:
# lua -l uci -l iwinfo -e 'x = uci.cursor(nil, "/var/state");list =
"{\"data\":[";x:foreach("wireless", "wifi-iface", funct
ion(s) list=list.."{\"{#IF}\":\""..s.ifname.."\",
\"{#SSID}\":\""..s.ssid.."\", \"{#NET}\":\""..s.network.."\",
\"{#DEV}\":\""..s.device.."\
", \"{#TYPE}\":\""..x:get("wireless",s.device,"type").."\",
\"{#PHY}\":\""..x:get("wireless",s.device,"phy").."\",
\"{#HWMODE}\":\""..x:get(
"wireless",s.device,"hwmode").."\",
\"{#CHANNEL}\":\""..x:get("wireless",s.device,"channel").."\",
\"{#BSSID}\":\""..iwinfo[iwinfo.type(s.if
name)].bssid(s.ifname).."\"}," end); list=string.gsub(list,",$","");
print(list.."]}")'
lua: (command line):1: attempt to concatenate a nil value
stack traceback:
[C]: in function 'foreach'
(command line):1: in main chunk
[C]: ?
Can you check this? my config:
# uci show wireless
wireless.radio0=wifi-device
wireless.radio0.type=mac80211
wireless.radio0.channel=1
wireless.radio0.macaddr=f4:ec:38:f0:f1:c9
wireless.radio0.hwmode=11ng
wireless.radio0.htmode=HT20
wireless.radio0.ht_capab=SHORT-GI-40 TX-STBC RX-STBC1 DSSS_CCK-40
wireless.radio0.country=DE
wireless.radio0.log_level=3
wireless.@wifi-iface[0]=wifi-iface
wireless.@wifi-iface[0].device=radio0
wireless.@wifi-iface[0].network=lan
wireless.@wifi-iface[0].mode=ap
wireless.@wifi-iface[0].ssid=myssid
wireless.@wifi-iface[0].rsn_preauth=1
wireless.@wifi-iface[0].encryption=psk2
wireless.@wifi-iface[0].key=[deleted]
> +
> +
> +#iwinfo info (you need #IF as parameter)
> +UserParameter=iwinfo.channel[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].channel('$1'))"
> +UserParameter=iwinfo.frequency[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].frequency('$1'))"
> +UserParameter=iwinfo.txpower[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].txpower('$1'))"
I get nil here
> +UserParameter=iwinfo.bitrate[*],lua -l iwinfo -e "local b =
> iwinfo[iwinfo.type('$1')].bitrate('$1'); print(b or '0')"
what does 0 mean?
> +UserParameter=iwinfo.signal[*],lua -l iwinfo -e "local s =
> iwinfo[iwinfo.type('$1')].signal('$1'); print(s or '-255')"
okay, this is an AP without clients, so this is expected to be unavailable
> +UserParameter=iwinfo.noise[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].noise('$1'))"
nil again?
> +UserParameter=iwinfo.quality[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].quality('$1'))"
0? is there some documentation about this values?
> +UserParameter=iwinfo.quality_max[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].quality_max('$1'))"
> +UserParameter=iwinfo.mode[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].mode('$1'))"
result is "unknown". It should be AP.
> +UserParameter=iwinfo.ssid[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].ssid('$1'))"
nil again, should be "myssid"
> +UserParameter=iwinfo.bssid[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].bssid('$1'))"
another nil
> +UserParameter=iwinfo.country[*],lua -l iwinfo -e
> "print(iwinfo[iwinfo.type('$1')].country('$1'))"
> +UserParameter=iwinfo.nbusers[*],lua -l iwinfo -e
> "print(#iwinfo[iwinfo.type('$1')].assoclist('$1'))"
0, this is expected, haven't tried with connected clients.
> +UserParameter=iwinfo.encryption[*],lua -l iwinfo -e "local e =
> iwinfo[iwinfo.type('$1')].encryption('$1'); print(e and e.description or
> 'None')"
result: "None". This is wrong, it should be psk2
> +UserParameter=iwinfo.hwmode[*],lua -l iwinfo -e "local
> x=iwinfo[iwinfo.type('$1')].hwmodelist('$1'); print((x.a and 'a' or '')..(x.b
> and 'b' or '')..(x.g and 'g' or '')..(x.n and 'n' or ''))"
> Index: Makefile
> ===================================================================
> --- Makefile (révision 34787)
> +++ Makefile (copie de travail)
> @@ -9,7 +9,7 @@
>
> PKG_NAME:=zabbix
> PKG_VERSION:=2.0.3
> -PKG_RELEASE:=1
> +PKG_RELEASE:=2
>
> PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
> PKG_SOURCE_URL:=@SF/zabbix
> @@ -41,6 +41,24 @@
> TITLE+= agentd
> endef
>
> +define Package/zabbix-extra-mac80211
> + $(call Package/zabbix/Default)
> + TITLE+= discovery/userparameters for mac80211
> + DEPENDS += +zabbix-agentd @PACKAGE_MAC80211_DEBUGFS
I tried this, but without CONFIG_KERNEL_DEBUG_FS=y set it does not
work. I think PACKAGE_MAC80211_DEBUGFS should select
CONFIG_KERNEL_DEBUG_FS automatically.
Regards,
Stefan Hellermann
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel