Compare commits
22 Commits
cfbcdb0869
...
stable
Author | SHA1 | Date | |
---|---|---|---|
55cc07022a | |||
1d982b26d2 | |||
81b295f4a3 | |||
c49e905391 | |||
71e652c94f | |||
3259126b5f | |||
6f4dc0fead | |||
b4c2718f5b | |||
bd89975596 | |||
3de70efa44 | |||
864d4385c3 | |||
5f64422efd | |||
26f3a29a61 | |||
04fc38f69a | |||
046fc6daa6 | |||
a1f6fa71a8 | |||
bc40534bce | |||
d5329a3919 | |||
7f0033742c | |||
55b487627b | |||
44865c93ba | |||
838e80fa22 |
7
build.sh
7
build.sh
@ -5,19 +5,22 @@ echo "Version in plugin file: $VERSION"
|
||||
echo "Generated file will be: $FILE"
|
||||
|
||||
if [ -e "$FILE" ]; then
|
||||
echo
|
||||
echo "File already exists."
|
||||
|
||||
givenMD5=`xpath -q -e 'string(//PLUGIN/@packageMD5)' zabbix_agent.plg`
|
||||
read currentMD5 _ < <(md5sum "$FILE")
|
||||
|
||||
if [ "$givenMD5" = "$currentMD5" ]; then
|
||||
echo "MD5 value matches."
|
||||
echo "MD5 value is OK."
|
||||
else
|
||||
echo "MD5 value does not match!"
|
||||
echo "unraid_zabbix.plg: $givenMD5"
|
||||
echo "$FILE: $currentMD5"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
if [ "$1" != "--force" ]; then
|
||||
echo "Stopping now. Call '$0 --force' to force recreating the file."
|
||||
exit 1
|
||||
@ -34,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."
|
@ -19,6 +19,8 @@ AllowKey=vfs.fs.*[*]
|
||||
AllowKey=vm.memory.size[*]
|
||||
AllowKey=unraid.*
|
||||
AllowKey=unraid.*[*]
|
||||
AllowKey=custom.*
|
||||
AllowKey=custom.*[*]
|
||||
|
||||
DenyKey=*
|
||||
|
||||
@ -28,3 +30,6 @@ UserParameter=unraid.disks.totals,/usr/local/emhttp/plugins/zabbix_agent/scripts
|
||||
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.ups,/usr/local/emhttp/plugins/zabbix_agent/scripts/ups.sh
|
||||
|
||||
Include=/boot/config/plugins/zabbix_agent/*.custom.conf
|
||||
|
19
files/install/slack-desc
Normal file
19
files/install/slack-desc
Normal file
@ -0,0 +1,19 @@
|
||||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||
# up the first '|' above the ':' following the base package name, and the '|'
|
||||
# on the right side marks the last column you can put a character in. You must
|
||||
# make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
zabbix_agent: zabbix_agent plugin for UnRAID
|
||||
zabbix_agent:
|
||||
zabbix_agent: zabbix_agent is a open-sorce software that can be queried by a central
|
||||
zabbix_agent: Zabbix server in order to gather metrics and send notifications via
|
||||
zabbix_agent: triggers.
|
||||
zabbix_agent:
|
||||
zabbix_agent:
|
||||
zabbix_agent:
|
||||
zabbix_agent:
|
||||
zabbix_agent:
|
||||
zabbix_agent:
|
@ -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]")
|
||||
@ -50,5 +57,9 @@ if [ $found = 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -e /var/local/emhttp/diskload.ini ]; then
|
||||
read bytes_read bytes_written _ < <(grep $device"=" /var/local/emhttp/diskload.ini | cut -d"=" -f2)
|
||||
echo '"bytes_reading":'$bytes_read', "bytes_writing":'$bytes_written'}'
|
||||
else
|
||||
echo '"diskload_missing":1}'
|
||||
fi
|
||||
|
0
files/usr/local/emhttp/plugins/zabbix_agent/scripts/temperatures.sh
Normal file → Executable file
0
files/usr/local/emhttp/plugins/zabbix_agent/scripts/temperatures.sh
Normal file → Executable file
15
files/usr/local/emhttp/plugins/zabbix_agent/scripts/ups.sh
Executable file
15
files/usr/local/emhttp/plugins/zabbix_agent/scripts/ups.sh
Executable 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.
BIN
zabbix_agent-2024.12.19.1-x86_64-1.txz
Normal file
BIN
zabbix_agent-2024.12.19.1-x86_64-1.txz
Normal file
Binary file not shown.
@ -4,12 +4,12 @@
|
||||
<!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.11.1">
|
||||
<!ENTITY version "2024.12.19.1">
|
||||
<!ENTITY packageName "zabbix_agent-&version;-x86_64-1.txz">
|
||||
<!ENTITY packageURL "&baseURL;/&packageName;">
|
||||
<!ENTITY packageMD5 "5eedea739129f638ac5098945039d43b">
|
||||
<!ENTITY packageMD5 "6e3a4e4b7712ec531a6da1ff946cf0a2">
|
||||
]>
|
||||
|
||||
<PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" packageMD5="&packageMD5;">
|
||||
@ -17,6 +17,27 @@
|
||||
<CHANGES>
|
||||
## &name;
|
||||
|
||||
### 2024.12.19.1
|
||||
- Sometimes, diskload.ini is not available (at least in Unraid 6.12.6). In that case we now skip omitting disk load data
|
||||
in order to still omit valid JSON.
|
||||
|
||||
### 2020.11.25.1
|
||||
- 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.
|
||||
|
||||
### 2020.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.
|
||||
- Fixed the virtual interface detection in unraid.qemu.
|
||||
@ -38,7 +59,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>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zabbix_export>
|
||||
<version>5.0</version>
|
||||
<date>2020-07-17T03:56:57Z</date>
|
||||
<date>2020-09-05T12:40:25Z</date>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Servers</name>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<templates>
|
||||
@ -13,7 +13,7 @@
|
||||
<name>Unraid server</name>
|
||||
<groups>
|
||||
<group>
|
||||
<name>Servers</name>
|
||||
<name>Templates</name>
|
||||
</group>
|
||||
</groups>
|
||||
<applications>
|
||||
@ -26,6 +26,9 @@
|
||||
<application>
|
||||
<name>Memory</name>
|
||||
</application>
|
||||
<application>
|
||||
<name>System</name>
|
||||
</application>
|
||||
<application>
|
||||
<name>VMs</name>
|
||||
</application>
|
||||
@ -230,6 +233,63 @@
|
||||
<key>unraid.disks.totals</key>
|
||||
</master_item>
|
||||
</item>
|
||||
<item>
|
||||
<name>Temperature data</name>
|
||||
<key>unraid.temperatures</key>
|
||||
<delay>2m</delay>
|
||||
<history>1d</history>
|
||||
<trends>0</trends>
|
||||
<value_type>TEXT</value_type>
|
||||
<applications>
|
||||
<application>
|
||||
<name>System</name>
|
||||
</application>
|
||||
</applications>
|
||||
</item>
|
||||
<item>
|
||||
<name>Temperature CPU</name>
|
||||
<type>DEPENDENT</type>
|
||||
<key>unraid.temperatures[cpu]</key>
|
||||
<delay>0</delay>
|
||||
<value_type>FLOAT</value_type>
|
||||
<units>°C</units>
|
||||
<applications>
|
||||
<application>
|
||||
<name>System</name>
|
||||
</application>
|
||||
</applications>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>JSONPATH</type>
|
||||
<params>$.cpu</params>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<master_item>
|
||||
<key>unraid.temperatures</key>
|
||||
</master_item>
|
||||
</item>
|
||||
<item>
|
||||
<name>Temperature Mainboard</name>
|
||||
<type>DEPENDENT</type>
|
||||
<key>unraid.temperatures[mainboard]</key>
|
||||
<delay>0</delay>
|
||||
<value_type>FLOAT</value_type>
|
||||
<units>°C</units>
|
||||
<applications>
|
||||
<application>
|
||||
<name>System</name>
|
||||
</application>
|
||||
</applications>
|
||||
<preprocessing>
|
||||
<step>
|
||||
<type>JSONPATH</type>
|
||||
<params>$.mainboard</params>
|
||||
</step>
|
||||
</preprocessing>
|
||||
<master_item>
|
||||
<key>unraid.temperatures</key>
|
||||
</master_item>
|
||||
</item>
|
||||
<item>
|
||||
<name>Memory available</name>
|
||||
<key>vm.memory.size[available]</key>
|
||||
@ -532,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>
|
||||
@ -843,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>
|
||||
|
Reference in New Issue
Block a user