Ad Widget

Collapse

Template for Lenovo ThinkSystem DE6000F or NetApp SANtricity Web Services?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Rayg00n
    Junior Member
    • Jan 2023
    • 23

    #1

    Template for Lenovo ThinkSystem DE6000F or NetApp SANtricity Web Services?

    Good day.
    Does anybody know how to monitor Lenovo Storage ThinkSystem DE6000F?
    I have made a simple template for SNMP-traps with javascript-preproccessing including regexp to show only values I need.

    The WEB API Services of Lenovo Storage are the literally the same as "NetApp SANtricity Web Services"


    But I can not find any NetApp Templates that using "NetApp SANtricity API Web"
    There are only ONTAP templates (different API)

    Zabbix version 6.0

  • Rayg00n
    Junior Member
    • Jan 2023
    • 23

    #2
    Because nobody knows the answer, I decided to make the template by myself.
    But, unfortunately, I have some problems with low - level discovering.

    I am trying to get some info.

    1. Created a raw item with name [Get Storage Systems] to get the numbers of my system's ID by HTTPS

    -> HTTPS://{HOST.DNS}/devmgr/v2/storage-systems

    HTTP-Body is like the same (structured) :
    Code:
    [
    {
    "id":"1",
    "name":"class1",
    "wwn":"XXXXXXXXXXXXXXXXX",
    "passwordStatus":"valid",
    "passwordSet":true,
    "status":"optimal",
    "certificateStatus":"trusted",
    "ip1":"xxxxxxxx,
    "ip2":"xxxxxxxx"
    },
    {
    "id":"2",
    "name":"class2",
    "wwn":"XXXXXXXXXXXXXXXX",
    "passwordStatus":"valid",
    "passwordSet":true,
    "status":"failed",
    "certificateStatus":"trusted"
    }
    ]​
    2. Created depended discovery rule with name [Storage Systems ID Discovery] to find status of each systems by ID.
    -> Master item for discovery is above - [Get Storage Systems]
    -> LLD Macros:
    {#SYSTEM_ID} - $.id

    3. Created depended item prototype with name [Storage System ID № {#SYSTEM_ID} Status]
    -> Preprocessing:
    Code:
    Regular Expressions (?<="id":"{#SYSTEM_ID}",).* \0
    Regular Expressions (?<="status":")(.*?)(?=") \0
    ^ This part works like a charm.


    Next:

    1. Created new depended discovery rule - [Storage Systems Config Discovery]
    -> Master item for discovery is above - [Get Storage Systems]
    -> LLD Macros:
    {#SYSTEM_ID} - $.id
    {#VOLUME_LABEL} - $.label <----- is that correct?

    2. Created new item prototype [SANtricity: Get Storage Systems Config]
    -> HTTPS://{HOST.DNS}/devmgr/v2/storage-systems/{#SYSTEM_ID}/system-config

    HTTP-Body is like the same (structured) :

    Code:
    {
    "volumeGroups": [
    {
    "drives": [
    {
    "tray": 99,
    "drawer": -1,
    "slot": 22
    }
    ],
    "label": "TEST",
    "securityType": "none",
    "reservedSpaceAllocated": true,
    "raidLevel": "raid6"
    }
    ]
    .....
    }
    3. Created depended item prototype with name [Volume Label "{#VOLUME_LABEL}" Raid Type ID {#SYSTEM_ID} Status]
    -> Master item for discovery is - [SANtricity: Get Storage Systems Config] as you can see above.
    -> Preprocessing:
    Regular Expressions (?<="id":"{#SYSTEM_ID}",).* \0
    Regular Expressions (?<="raidLevel": ")(.*?)(?=") \0

    ^ This item is being created but does not understand the {#VOLUME_LABEL} LLD-macros, because value must be exported from item prototype and put in LLD-Macros

    So, my questions are:

    Is it possible to make new discovery rule depended on item prototype from another discovery rule?
    In Zabbix 5.2.4 I can select only raw times (not item prototype)
    or
    Is it possible to extract some values from depended item prototype and use it to create new item prototypes?

    I hope somebody reads this.

    PS:
    I added my template as XML to the message - it's been tested on Zabbix 5.2.4 but will be used in 6.0+

    Attached Files
    Last edited by Rayg00n; 08-02-2023, 18:01.

    Comment

    • cyber
      Senior Member
      Zabbix Certified SpecialistZabbix Certified Professional
      • Dec 2006
      • 4807

      #3
      -> Master item for discovery is above - [Get Storage Systems]
      -> LLD Macros:
      {#SYSTEM_ID} - $.id
      {#VOLUME_LABEL} - $.label <----- is that correct?
      But you master item has no "label" in it.. you can use it it next prototype, when you already retrieve data, what has it...​

      Comment

      • Rayg00n
        Junior Member
        • Jan 2023
        • 23

        #4
        Originally posted by cyber
        But you master item has no "label" in it.. you can use it it next prototype, when you already retrieve data, what has it...​
        That the question. I can not extract value "label" to LLD-Macros from item prototype. I can do it only from raw item.
        Seem like I need to re-wrtie my template from scratch with different logic

        Comment

        • Rayg00n
          Junior Member
          • Jan 2023
          • 23

          #5
          So,I have found time to create the template from scratch to monitor datastore via web API tool.
          Should I upload it to the article or make a new topic?​

          Comment

          • Rayg00n
            Junior Member
            • Jan 2023
            • 23

            #6
            I have no idea how to edit my first post in the article (where is a magical button?)
            Soooo.
            That's my template to monitor datastorages which using Santricity -

            Template Name:
            zbx_netapp_santricity_web_api

            It was tested on Lenovo DE6000F + Zabbix 5.2.4 (must work on higher versions too)

            I need somebody to test it with other datastores.
            Any reviews would be appreciated.​

            First of all.
            1. Check the System ID of your storage (usually it equals to 1) If you have more than 1 just create additional host in Zabbix, take the template and change the "system id" macros on it to 2, or 3, or whatever.
            2. Pay attention to macroses (Read them!)
            3. Before using check the web-access to your datastorage via HTTP or HTTPS and credentials for "monitor" user (change the macros according to it)

            How does it work?
            1. There are 13 main items getting json-data via http or https.
            2. There are 5 dependendet items connected to main items
            3. Additional - there are 12 dependent Discovery Rules

            Items Collected:

            Main:

            System ID Numbers
            Certificate Status
            Password Set
            Password Status
            System Status
            System Serial Number

            Controller Stats:

            writeThroughput
            writeResponseTime
            writePhysicalIOps
            writeOps
            writeIOps
            writeHitResponseTime
            readThroughput
            readResponseTime
            readPhysicalIOps
            readOps
            readIOps
            readHitResponseTime
            observedTime
            maxPossibleIopsUnderCurrentLoad
            maxPossibleBpsUnderCurrentLoad
            maxCpuUtilization
            cpuAvgUtilizationPerCore

            Analyzed System Stats:

            writeThroughput
            writeResponseTime
            writePhysicalIOps
            writeIOps
            readThroughput
            readResponseTime
            readPhysicalIOps
            readIOps
            observedTime
            maxCpuUtilization

            Analyzed Volume Stats:

            writeOps
            writeIOps
            writeHitOps
            writeHitBytes
            readOps
            readIOps
            readHitOps
            readHitBytes
            observedTime

            Main Controller Stats:

            Status
            Slot Number
            Serial Number
            Ready to Remove
            PartNumber
            OemPartNumber
            Location Position
            Label
            BootVersion
            BoardID
            AppVersion
            Active

            Drives Stats:

            Usable Capacity
            Status
            Spare Blocks Remaining Percent
            Slot Position
            Serial Number
            Product ID
            Percent Endurance Used
            Offline Status
            Manufacture
            Invalid Drive Data
            Hot Spare
            Firmware Version
            Drive Type
            Degraded Channel
            Current Speed

            Drives Temperature

            Firmware Modules and Versions

            Main Volume Stats:

            Write Cache Enabled
            Size
            Read Cache Enabled
            Controller Owner

            Main Volume Groups Stats:

            Raid-level

            Main Pool Stats:

            Reserved Drives

            Web-interface access.

            PS:

            Benefits:
            - it works on my datastore

            Disadvantages:
            - it may not work on your system because:
            - it needs to be rewritten - USING REGULAR EXPRESSIONS IS A BAD DESIGN (but I don't know how to use "java + json" help me pls)




            Attached Files

            Comment

            • Rayg00n
              Junior Member
              • Jan 2023
              • 23

              #7
              Updated:
              API Documentaion

              Comment

              • kanan348
                Junior Member
                • Aug 2024
                • 1

                #8
                Thank you ! I have a DE4000H and with a lot of trial and error i got what i needed.IOPs ,throughput and CPU utilization all thanks to you.

                Comment

                • gcmconsultants
                  Junior Member
                  • Sep 2024
                  • 1

                  #9
                  Hi!

                  I have the DE4000H and Im not able to get it to work. Did I miss something?

                  Click image for larger version

Name:	image.png
Views:	1558
Size:	21.7 KB
ID:	491110


                  Click image for larger version

Name:	image.png
Views:	1546
Size:	28.4 KB
ID:	491111

                  Comment

                  • Andrii
                    Junior Member
                    • Aug 2023
                    • 2

                    #10
                    Hi,
                    Template takes data twice from one controller, despite displaying the second controller

                    Comment

                    • Andrii
                      Junior Member
                      • Aug 2023
                      • 2

                      #11
                      Originally posted by Rayg00n
                      zbx_netapp_santricity_web_api
                      can you rework your template?

                      Comment

                      • Rayg00n
                        Junior Member
                        • Jan 2023
                        • 23

                        #12
                        Sorry for being to late dudes.
                        I was toooooooooo busy trying my best at new job.
                        Right now I have no DE6000 to improve my template.
                        But if you have free time we may connect via skype (the same Nickname) to make some minor improvmentes (my old repo is here)



                        Originally posted by gcmconsultants
                        Hi!

                        I have the DE4000H and Im not able to get it to work. Did I miss something?

                        Click image for larger version  Name:	image.png Views:	373 Size:	21.7 KB ID:	491110


                        Click image for larger version  Name:	image.png Views:	371 Size:	28.4 KB ID:	491111
                        Seems like there is a problem with connection from zabbix to your DE4000 by https:// - check it bro.


                        Hi,
                        Template takes data twice from one controller, despite displaying the second controller
                        There is a problem with Low Level Discovering - I need to get all ID numbers of all controllers in a system as macroses (#SYSTEM_ID) with helping of 1-st LLD rule and put in inside 2-st LLD rule, then get all macroses form 2-st LLD rule and go deeper to 3-d LLD rule.
                        Nested LLD rules are not supported in Zabbix (even in Zabbix 7.0)
                        You may help us to bring this feature live in the next Zabbix release by upvoting that topic - https://support.zabbix.com/browse/ZBXNEXT-1527
                        Last edited by Rayg00n; 08-01-2025, 16:29.

                        Comment

                        • Rayg00n
                          Junior Member
                          • Jan 2023
                          • 23

                          #13
                          double posting - there is no option to delete this post (c)
                          Last edited by Rayg00n; 08-01-2025, 16:29.

                          Comment

                          • r.riva
                            Junior Member
                            • Feb 2017
                            • 5

                            #14
                            Originally posted by kanan348
                            Thank you ! I have a DE4000H and with a lot of trial and error i got what i needed.IOPs ,throughput and CPU utilization all thanks to you.
                            How did you configure the host ?
                            I can't find any working combinations for my DE2000H

                            Comment

                            • ocrommert
                              Junior Member
                              • Jan 2025
                              • 6

                              #15
                              I'm also stuck with the DE2000H. Can't find anything to help me monitor the disk health.

                              Comment


                              • Kuzembayev.S
                                Kuzembayev.S commented
                                Editing a comment
                                Good afternoon, do you have a template for DE2000H?If yes, can you please send it, thanks in advance!

                              • ocrommert
                                ocrommert commented
                                Editing a comment
                                No i don't have atemplate
                            Working...