Ad Widget

Collapse

Monitoring EMC Dell Unity XT with Zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • arashgh
    Junior Member
    • Feb 2025
    • 1

    #1

    Monitoring EMC Dell Unity XT with Zabbix

    Hi everyone,

    I’m trying to monitor an EMC Dell Unity XT storage system using Zabbix. Since there’s no default template available for this device, I imported a community template from one of these repositories:
    Here’s what I’ve done so far:
    1. Added the required macros in Zabbix:
      • {$API_PASSWORD}
      • {$API_PORT}
      • {$API_USER}
      • {$SUBSCRIBED_PERCENT}
      • {$USED_PERCENT}
    2. Placed the unity_get_state.py script in the Zabbix external scripts directory and ensured it has the correct permissions to execute.
    3. Configured the SNMP interface in Zabbix and set up SNMP on the storage system as well.
    4. Increased the default timeout value in the Zabbix server configuration to avoid script execution issues.

    However, I’m encountering the following error:
    "Timeout while executing a shell script."

    Has anyone faced a similar issue or can provide guidance on how to resolve this? Any suggestions on troubleshooting steps or potential misconfigurations would be greatly appreciated!

    Thanks in advance for your help!
  • crmendoza
    Junior Member
    • May 2025
    • 6

    #2
    The Readme at aklyuk/zabbix-emc-unity was not very clear on the steps for setting up monitoring. Here are the steps I took:
    1. Download the Template and python script.
      1. Template "Template EMC Unity REST-API.xml"
      2. Python 3 script "unity_get_state.py"
    2. Install python3 and zabbix-sender on Zabbix server or proxy.
      1. In Linux-console run: sudo apt install python3 zabbix-sender
    3. Edit agent configuration file, /etc/zabbix/zabbix_agentd.conf set ServerActive IP.
      1. ServerActive=xxx.xxx.xxx.xxx (zabbix server or proxy IP)
    4. Copy Phython 3 script to Zabbix-server or zabbix-proxy, depending on how the storage is being monitored.
      1. copy unity_get_state.py file to /usr/lib/zabbix/externalscripts/
      2. set read, write, execute on unity_get_state.py file: sudo chmod 774 /usr/lib/zabbix/externalscripts/unity_get_state.py
    5. On the Zabbix server or proxy reload the cache.
      1. Zabbix server: zabbix_server -R config_cache_reload
      2. Zabbix proxy: zabbix_proxy -R config_cache_reload
    6. Login to Zabbix front end and import the template "Template EMC Unity REST-API.xml"
      1. ​​​​Open Data Collection - Templates - Import
      2. Chose the "Template EMC Unity REST-API.xml" file template and click "Import".
    7. Add Host using the UNINTY storge host name and select the template "Template EMC Unity REST-API" and use interface "Agent" with IP (leave port default, this is not used).
      1. In section "Macros" set these macros:
      • {$API_USER} = "user"
      • {$API_PASSWORD} = "password"
      • {$API_PORT} = 443
      • {$SUBSCRIBED_PERCENT} = 91
      • {$USED_PERCENT} = 91
    8. In Linux-console on Zabbix server or proxy run this command to collect discovery. Script must return value 0 indicating success.
      • python3 /usr/lib/zabbix/externalscripts/unity_get_state.py --api_ip=xxx.xxx.xxx.xxxx --api_port=443 --api_user=user --api_password='(password had to use single quotes)' --storage_name=HOSTNAME --discovery
    9. In Linux-console on Zabbix server or proxy run this command to collect status metrics. Scripts must return value 0 indicating success.
      • python3 /usr/lib/zabbix/externalscripts/unity_get_state.py --api_ip=xxx.xxx.xxx.xxxx --api_port=443 --api_user=user --api_password='(password had to use single quotes)' --storage_name=HOSTNAME --status
    10. If you have executed this script from console from user root or from another user, please check access permission on file /tmp/unity_state.log. It must be allow read, write to user zabbix.
    11. Verify that latest data for your Unity storage is being collected and "get discovery" and "get health" state are returning last value 0 (I was having a script time out issue and had to change the timeout from default 3s to 12s)
    Last edited by crmendoza; 29-05-2025, 17:58.

    Comment

    Working...