14 Commits

9 changed files with 92 additions and 8 deletions

View File

@ -37,3 +37,5 @@ echo
read md5 _ < <(md5sum "$FILE")
echo "MD5 of the resulting file for the plugin file: $md5"
echo "Run this tool again to validate the MD5 value from the plugin file."
echo
echo "Please remember to fill the changelog in zabbix_agent.plg."

View File

@ -19,6 +19,8 @@ AllowKey=vfs.fs.*[*]
AllowKey=vm.memory.size[*]
AllowKey=unraid.*
AllowKey=unraid.*[*]
AllowKey=custom.*
AllowKey=custom.*[*]
DenyKey=*
@ -27,4 +29,7 @@ UserParameter=unraid.disk[*],/usr/local/emhttp/plugins/zabbix_agent/scripts/disk
UserParameter=unraid.disks.totals,/usr/local/emhttp/plugins/zabbix_agent/scripts/disks.totals.sh
UserParameter=unraid.qemu.discovery,/usr/local/emhttp/plugins/zabbix_agent/scripts/qemu.discovery.sh
UserParameter=unraid.qemu[*],/usr/local/emhttp/plugins/zabbix_agent/scripts/qemu.sh "$1"
UserParameter=unraid.temperatures,/usr/local/emhttp/plugins/zabbix_agent/scripts/temperatures.sh
UserParameter=unraid.temperatures,/usr/local/emhttp/plugins/zabbix_agent/scripts/temperatures.sh
UserParameter=unraid.ups,/usr/local/emhttp/plugins/zabbix_agent/scripts/ups.sh
Include=/boot/config/plugins/zabbix_agent/*.custom.conf

View File

@ -9,7 +9,7 @@ while read line; do
if [ $found = 1 ]; then
[ $fsFree -ge 0 ] && [ $fsSize -ge 0 ] && fsUsed=$(( $fsSize - $fsFree ))
echo -n '{"device":"'$device'", "name":"'$name'", "status":"'$status'", "temp":'$temp', "size":'$size', "num_reads":'$num_reads', '
echo -n '"num_writes":'$num_writes', "num_errors":'$num_errors', "type":"'$type'", "fs_size":'$fsSize', "fs_free":'$fsFree', "fs_used":'$fsUsed', '
echo -n '"num_writes":'$num_writes', "num_errors":'$num_errors', "type":"'$type'", "fs_size":'$fsSize', "fs_free":'$fsFree', "fs_used":'$fsUsed', "running":'$running', '
break
else
device=''
@ -24,6 +24,7 @@ while read line; do
fsSize=-1
fsFree=-1
fsUsed=-1
running=-1
fi
else
while IFS="=" read key value; do
@ -41,6 +42,12 @@ while read line; do
[ $key = "type" ] && type="$value"
[ $key = "fsSize" ] && fsSize=$(( $value * 1024 ))
[ $key = "fsFree" ] && fsFree=$(( $value * 1024 ))
if [ $key = "color" ]; then
case "$value" in
green-on) running=1;;
green-blink) running=0;;
esac
fi
done <<< "$line"
fi
done < <(cat /var/local/emhttp/disks.ini ; echo "[empty]")

View File

@ -0,0 +1,15 @@
#!/bin/bash
echo -n '{"connected":true'
apcaccess | while read key _ value unit _; do
#echo $key - $value - $unit
case "$key" in
"STATUS") echo -n ", \"status\":\"$value\"" ;;
"LOADPCT") echo -n ", \"loadpct\":$value" ;;
"BCHARGE") echo -n ", \"bcharge\":$value" ;;
"TIMELEFT") echo -n ", \"timeleft\":$value" ;;
"BATTV") echo -n ", \"battv\":$value" ;;
"LINEV") echo -n ", \"linev\":$value" ;;
esac
done
echo "}"

Binary file not shown.

Binary file not shown.

View File

@ -4,18 +4,35 @@
<!ENTITY name "zabbix_agent">
<!ENTITY author "fabianonline">
<!ENTITY plgauthor "fabianonline">
<!ENTITY baseURL "https://git.schle.nz/fabian/unraid-zabbix_agent/raw/branch/main">
<!ENTITY baseURL "https://git.schle.nz/fabian/unraid-zabbix_agent/raw/branch/stable">
<!ENTITY pluginURL "&baseURL;/zabbix_agent.plg">
<!ENTITY version "2020.08.22.1">
<!ENTITY version "2020.11.25.1">
<!ENTITY packageName "zabbix_agent-&version;-x86_64-1.txz">
<!ENTITY packageURL "&baseURL;/&packageName;">
<!ENTITY packageMD5 "1aae2b12fb6827c934d1e70c9c7ab15a">
<!ENTITY packageMD5 "461b54aefdcad0e23d9da9c0047cb6c7">
]>
<PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" packageMD5="&packageMD5;">
<CHANGES>
##&name;
## &name;
### &version;
- You can now add a custom zabbix agent configuration file at /boot/config/plugins/zabbix_agent/zabbix_agentd.custom.conf.
It won't be overwritten by a future update of this plugin. Please note that the list of usable keys is heavily restricted
in zabbix_agentd.conf. To have your custom UserParameters accessible, you can either:
- Name them custom.$whatever.
- Add the key to the whitelist via AllowKey.
- Updated zabbix_agentd from 5.0.3 to 5.2.1.
### 2010.10.31.1
- Updated zabbix_agentd from 5.0.2 to 5.0.3
- Download updated plugins from stable instead of main.
- Fixed removal of old plugin packages during updates.
- Added new zabbix endpoint unraid.ups
### 2020.09.05.1
- Added a new field 'running' to qemu.disk
### 2020.08.11
- Added system temperature metrics. Note: These will only work if you have the Dynamix System Temperature plugin installed.
@ -38,7 +55,7 @@ if [ -e /boot/config/plugins/zabbix_agent/&packageName; ]; then
echo "Package already exists."
else
echo "Current &packageName; not found; removing old packages (if existing)."
rm /boot/config/plugins/zabbix_agent/*.package.tgz
rm /boot/config/plugins/zabbix_agent/*.txz
echo "Downloading current package..."
fi
</INLINE></FILE>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.0</version>
<date>2020-08-28T19:01:50Z</date>
<date>2020-09-05T12:40:25Z</date>
<groups>
<group>
<name>Templates</name>
@ -592,6 +592,29 @@
<key>unraid.disk[{#ID}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>Disk {#ID} running</name>
<type>DEPENDENT</type>
<key>unraid.disk[{#ID},running]</key>
<delay>0</delay>
<applications>
<application>
<name>Disks</name>
</application>
</applications>
<valuemap>
<name>Yes/No</name>
</valuemap>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.running</params>
</step>
</preprocessing>
<master_item>
<key>unraid.disk[{#ID}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>Disk {#ID} size</name>
<type>DEPENDENT</type>
@ -903,4 +926,19 @@ return j.cpu_time / j.cpus * 100;</params>
</discovery_rules>
</template>
</templates>
<value_maps>
<value_map>
<name>Yes/No</name>
<mappings>
<mapping>
<value>0</value>
<newvalue>No</newvalue>
</mapping>
<mapping>
<value>1</value>
<newvalue>Yes</newvalue>
</mapping>
</mappings>
</value_map>
</value_maps>
</zabbix_export>