{"id":318205,"date":"2021-02-18T09:01:20","date_gmt":"2021-02-18T09:01:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=318205"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=318205","title":{"rendered":"\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 NetApp Volumes \u0447\u0435\u0440\u0435\u0437 HTTP"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf6\/d02\/fa8\/cf6d02fa86b7a8d18e7edf039b0fc2e0.jpg\" width=\"1000\" height=\"562\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/517206\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043a\u043e\u0441\u0442\u044b\u043b\u044f\u043c\u0438 \u0438 SSH \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043c\u0435\u0441\u0442\u0430 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u0430\u043c \u0442\u043e\u043c\u043e\u0432 \u043d\u0430 NetApp, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/library.netapp.com\/ecmdocs\/ECMLP2856304\/html\/index.html\">ONTAP REST API<\/a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Zabbix <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/config\/items\/itemtypes\/http\">HTTP-agent<\/a>. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0430\u0440\u0435\u043d\u0434\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u0442\u043e, \u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0441\u0442\u0430 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0442\u043e\u043c\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c.<\/p>\n<h2>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c&nbsp;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/discovery\/low_level_discovery\">\u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/a>. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/p>\n<p><strong>NetApp: Get cluster information<\/strong> \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/cluster<\/code>, \u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><code>{$ONTAP.SCHEME}<\/code> \u2014 HTTPS;<\/p>\n<\/li>\n<li>\n<p><code>{HOST.CONN}<\/code> \u2014 IP NetApp;<\/p>\n<\/li>\n<li>\n<p><code>{$ONTAP.USERNAME}<\/code> \u2014 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442 NetApp;<\/p>\n<\/li>\n<li>\n<p><code>{$ONTAP.PASSWORD}<\/code> \u2014 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 NetApp.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"json\">{   \"name\": \"NETAPP_NAME\",   \"uuid\": \"e58448eb-39ac-11e8-ba6a-00a098d57984\",   \"version\": {     \"full\": \"NetApp Release 9.6P10: Thu Aug 20 19:45:05 UTC 2020\",     \"generation\": 9,     \"major\": 6,     \"minor\": 0   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/cluster\"     }   } }<\/code><\/pre>\n<figure class=\"bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/70e\/fab\/c2e\/70efabc2eeff4e52d97acb44bc4eaa0f.png\" width=\"1274\" height=\"1386\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volumes<\/strong> \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes<\/code>, \u0442\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u043e\u043c\u043e\u0432 (124), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0443\u0440\u0435\u0437\u0430\u043b \u0438\u0445 \u0434\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445.<\/p>\n<pre><code class=\"json\">{   \"records\": [     {       \"uuid\": \"04dd9e6a-d04f-49d8-8999-97572ed9183c\",       \"name\": \"data_1\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/04dd9e6a-d04f-49d8-8999-97572ed9183c\"         }       }     },     {       \"uuid\": \"0638aa9e-d683-43a7-bb75-7f056876a6cb\",       \"name\": \"data_2\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/0638aa9e-d683-43a7-bb75-7f056876a6cb\"         }       }     },     {       \"uuid\": \"0672d0de-e3b0-47e5-9d4a-4e3ae1d34e51\",       \"name\": \"data_3\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/0672d0de-e3b0-47e5-9d4a-4e3ae1d34e51\"         }       }     },     {       \"uuid\": \"06b8a873-6d85-49f2-bf83-55daf31b26e7\",       \"name\": \"data_4\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/06b8a873-6d85-49f2-bf83-55daf31b26e7\"         }       }     }   ],   \"num_records\": 124,   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\"     }   } }<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/774\/c68\/379\/774c683796e280b5cdec1053626cb9f1.png\" width=\"1286\" height=\"1424\"><figcaption><\/figcaption><\/figure>\n<h2>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p><strong>NetApp: Get cluster information<\/strong> \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/638\/74e\/9ba\/63874e9bad911344b4848fcc76a9e797.png\" alt=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" title=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" width=\"1016\" height=\"334\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b3f\/b2b\/7d8\/b3fb2b7d8a0a6fd44c7c2e0ef7d2e4dc.png\" width=\"1246\" height=\"1126\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volumes<\/strong> \u2014 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0432\u0430 \u043c\u0430\u043a\u0440\u043e\u0441\u0430:<\/p>\n<ul>\n<li>\n<p><code>{#VOLUME_NAME}<\/code> \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043c\u0430;<\/p>\n<\/li>\n<li>\n<p><code>{#VOLUME_UUID}<\/code> \u2014 UUID \u0442\u043e\u043c\u0430, \u0431\u0443\u0434\u0435\u0442 \u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u043e\u043c\u0443.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dad\/76b\/a20\/dad76ba205826640f770fb4a9405b04e.png\" width=\"1146\" height=\"760\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bbe\/8d0\/7dc\/bbe8d07dc5bfe6a19065c61d2aff539c.png\" alt=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" title=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" width=\"1852\" height=\"408\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c&nbsp;\u0434\u0432\u0430 <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/discovery\/low_level_discovery#%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D1%82%D0%B8%D0%BF%D1%8B_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85\">\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/a>.<\/p>\n<p><strong>NetApp: Get volume {#VOLUME_NAME} information<\/strong> \u2014 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c\u0435 \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes\/{#VOLUME_UUID}<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>NetApp: Get volume {#VOLUME_NAME} information<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"comment\": \"\",   \"create_time\": \"2018-10-10T15:44:42+03:00\",   \"language\": \"c.utf_8\",   \"name\": \"data_1\",   \"size\": 265106042880,   \"state\": \"online\",   \"style\": \"flexvol\",   \"tiering\": {     \"policy\": \"none\"   },   \"type\": \"rw\",   \"aggregates\": [     {       \"name\": \"DC_AFF300_03\",       \"uuid\": \"a9e28005-e099-4fcc-bcaa-6781c0086e0b\"     }   ],   \"clone\": {     \"is_flexclone\": false   },   \"nas\": {     \"export_policy\": {       \"name\": \"default\"     }   },   \"snapshot_policy\": {     \"name\": \"DOMCLICK_daily\"   },   \"svm\": {     \"name\": \"DOMCLIC_SVM\",     \"uuid\": \"46a00e5d-c22d-11e8-b6ed-00a098d48e6d\"   },   \"space\": {     \"size\": 265106042880,     \"available\": 62382796800,     \"used\": 189467947008   },   \"metric\": {     \"timestamp\": \"2021-02-16T12:42:00Z\",     \"duration\": \"PT15S\",     \"status\": \"ok\",     \"latency\": {       \"other\": 175,       \"total\": 183,       \"read\": 515,       \"write\": 323     },     \"iops\": {       \"read\": 41,       \"write\": 15,       \"other\": 2006,       \"total\": 2063     },     \"throughput\": {       \"read\": 374272,       \"write\": 78948,       \"other\": 0,       \"total\": 453220     }   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/064\/a6d\/454\/064a6d4542acde526987b3531451b78d.png\" width=\"1238\" height=\"1424\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volume {#VOLUME_NAME} inode information<\/strong> \u2014 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u043e\u0434 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u043e\u043c\u0435 \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes\/{#VOLUME_UUID}?fields=files<\/code>.<\/p>\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"name\": \"data_1\",   \"files\": {     \"maximum\": 7685871,     \"used\": 4108317   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/01a\/cba\/f04\/01acbaf046fa43209fd8f2626b7b4af5.png\" width=\"1240\" height=\"1412\"><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/h2>\n<p>\u0412\u044b\u0448\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 JSON&#8217;\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JSONPath \u0438 \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0438\u0448\u0443, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c.<\/p>\n<p><strong>NetApp: Volume state <\/strong>\u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u043c\u0430, \u043f\u0430\u0440\u0441\u0438\u043c \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442 <strong>NetApp: Get volume {#VOLUME_NAME} information<\/strong>.<\/p>\n<details class=\"spoiler\">\n<summary>NetApp: Get volume data_1 information<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"comment\": \"\",   \"create_time\": \"2018-10-10T15:44:42+03:00\",   \"language\": \"c.utf_8\",   \"name\": \"data_1\",   \"size\": 265106042880,   \"state\": \"online\",   \"style\": \"flexvol\",   \"tiering\": {     \"policy\": \"none\"   },   \"type\": \"rw\",   \"aggregates\": [     {       \"name\": \"DC_AFF300_03\",       \"uuid\": \"a9e28005-e099-4fcc-bcaa-6781c0086e0b\"     }   ],   \"clone\": {     \"is_flexclone\": false   },   \"nas\": {     \"export_policy\": {       \"name\": \"default\"     }   },   \"snapshot_policy\": {     \"name\": \"DOMCLICK_daily\"   },   \"svm\": {     \"name\": \"DOMCLIC_SVM\",     \"uuid\": \"46a00e5d-c22d-11e8-b6ed-00a098d48e6d\"   },   \"space\": {     \"size\": 265106042880,     \"available\": 62382796800,     \"used\": 189467947008   },   \"metric\": {     \"timestamp\": \"2021-02-16T12:42:00Z\",     \"duration\": \"PT15S\",     \"status\": \"ok\",     \"latency\": {       \"other\": 175,       \"total\": 183,       \"read\": 515,       \"write\": 323     },     \"iops\": {       \"read\": 41,       \"write\": 15,       \"other\": 2006,       \"total\": 2063     },     \"throughput\": {       \"read\": 374272,       \"write\": 78948,       \"other\": 0,       \"total\": 453220     }   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/277\/4a3\/b22\/2774a3b22b4b3104c5e315f68c712747.png\" width=\"1366\" height=\"1408\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/50c\/01a\/c00\/50c01ac0031164a74b958fdea566213d.png\" alt=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" title=\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.\" width=\"1756\" height=\"374\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0451 \u0432\u044b\u0434\u0435\u0440\u0433\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e.<\/p>\n<h3>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0442\u043e\u043c\u043e\u0432<\/h3>\n<p><strong>Volume state<\/strong> \u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.state<\/code><\/p>\n<blockquote>\n<p>Volume state. A volume can only be brought online if it is offline. The \u2018mixed\u2019 state applies to FlexGroup volumes only and cannot be specified as a target state. An \u2018error\u2019 state implies that the volume is not in a state to serve data.<\/p>\n<\/blockquote>\n<p><strong>Type of the volume<\/strong> \u2014 \u0442\u0438\u043f \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.type<\/code><\/p>\n<blockquote>\n<p>Type of the volume.<br \/>rw \u2010 read-write volume.<br \/>dp \u2010 data-protection volume.<br \/>ls \u2010 load-sharing dp volume. Valid in GET.<\/p>\n<\/blockquote>\n<p><strong>Style of the volume<\/strong> \u2014 \u0441\u0442\u0438\u043b\u044c \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.style<\/code><\/p>\n<blockquote>\n<p>The style of the volume. If \u201cstyle\u201d is not specified, the volume type is determined based on the specified aggregates. Specifying a single aggregate, without \u201cconstituents_per_aggregate\u201d creates a flexible volume. Specifying multiple aggregates, or a single aggregate with \u201cconstituents_per_aggregate\u201d creates a FlexGroup. If \u201cstyle\u201d is specified, a volume of that type is created. That is, if style is &#171;flexvol&#187;, a single aggregate must be specified. If style is &#171;flexgroup&#187;, the system either uses the specified aggregates, or automatically provisions if no aggregates are specified.<br \/>flexvol \u2010 flexible volumes and FlexClone volumes<br \/>flexgroup \u2010 FlexGroups.<\/p>\n<\/blockquote>\n<p><strong>Volume metrics status<\/strong> \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.status<\/code><\/p>\n<blockquote>\n<p>Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, \u201cok\u201d on success, or \u201cerror\u201d on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with &#171;backfilled_data&#187;. \u201cInconsistent_delta_time\u201d is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. \u201cNegative_delta\u201d is returned when an expected monotonically increasing value has decreased in value. \u201cInconsistent_old_data\u201d is returned when one or more nodes does not have the latest data.<\/p>\n<\/blockquote>\n<p><strong>Comment on the volume<\/strong> \u2014 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043a \u0442\u043e\u043c\u0443. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.comment<\/code><\/p>\n<blockquote>\n<p>A comment for the volume. Valid in POST or PATCH.<\/p>\n<\/blockquote>\n<h3>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430<\/h3>\n<p><strong>Volume space used<\/strong> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.used<\/code><\/p>\n<blockquote>\n<p>The virtual space used (includes volume reserves) before storage efficiency, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space size<\/strong> \u2014 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.size<\/code><\/p>\n<blockquote>\n<p>Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space available<\/strong> \u2014 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.available<\/code><\/p>\n<blockquote>\n<p>The available space, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space used in percentage<\/strong> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u0445 \u0438 \u0434\u043b\u044f \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u0430. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <code>(last(netapp.get.volume.space.used[{#VOLUME_NAME}])*100)\/last(netapp.get.volume.space.size[{#VOLUME_NAME}])<\/code><\/p>\n<h3>\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043c\u043e\u0432<\/h3>\n<h4>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p><strong>Volume throughput write<\/strong> \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.throughput.write<\/code><\/p>\n<blockquote>\n<p>Peformance metric for write I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume throughput total<\/strong> \u2014 \u043e\u0431\u0449\u0430\u044f \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.throughput.total<\/code><\/p>\n<blockquote>\n<p>Performance metric aggregated over all types of I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume throughput read<\/strong> \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.throughput.read<\/code><\/p>\n<blockquote>\n<p>Performance metric for read I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume throughput other<\/strong> \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.throughput.other<\/code><\/p>\n<blockquote>\n<p>Performance metric for other I\/O operations. Other I\/O operations can be metadata operations, such as directory lookups and so on.<\/p>\n<\/blockquote>\n<h4>\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439<\/h4>\n<p>\u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u0438\u0435\u043c\u0430-\u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445.<\/p>\n<p><strong>Volume latency write in ms<\/strong> \u2014 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043c\u0441. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.latency.write<\/code><\/p>\n<blockquote>\n<p>Peformance metric for write I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume latency total in ms<\/strong> \u2014 \u043e\u0431\u0449\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0432 \u043c\u0441. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.latency.total<\/code><\/p>\n<blockquote>\n<p>Performance metric aggregated over all types of I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume latency read in ms<\/strong> \u2014 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0432 \u043c\u0441. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.latency.read<\/code><\/p>\n<blockquote>\n<p>Performance metric for read I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume latency other in ms<\/strong> \u2014 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u043c\u0441. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.latency.other<\/code><\/p>\n<blockquote>\n<p>Performance metric for other I\/O operations. Other I\/O operations can be metadata operations, such as directory lookups and so on.<\/p>\n<\/blockquote>\n<h4>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430<\/h4>\n<p>\u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430, \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u0430\u044f \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p><strong>Volume iops write <\/strong>\u2014 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.iops.write<\/code><\/p>\n<blockquote>\n<p>Peformance metric for write I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume iops total <\/strong>\u2014 \u043e\u0431\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.iops.total<\/code><\/p>\n<blockquote>\n<p>Performance metric aggregated over all types of I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume iops read <\/strong>\u2014 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.iops.read<\/code><\/p>\n<blockquote>\n<p>Performance metric for read I\/O operations.<\/p>\n<\/blockquote>\n<p><strong>Volume iops other <\/strong>\u2014 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432\u0432\u043e\u0434\u0430-\u0432\u044b\u0432\u043e\u0434\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.iops.other<\/code><\/p>\n<blockquote>\n<p>Performance metric for other I\/O operations. Other I\/O operations can be metadata operations, such as directory lookups and so on.<\/p>\n<\/blockquote>\n<h3>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 inode<\/h3>\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"name\": \"data_1\",   \"files\": {     \"maximum\": 7685871,     \"used\": 4110457   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<p><strong>Inode used on the volume <\/strong>\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u0438\u043d\u043e\u0434. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.files.used<\/code><\/p>\n<blockquote>\n<p>Number of files (inodes) used for user-visible data permitted on the volume. This field is valid only when the volume is online.<\/p>\n<\/blockquote>\n<p><strong>Inode maximum on the volume <\/strong>\u2014 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u043e\u0434. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.files.maximum<\/code><\/p>\n<blockquote>\n<p>The maximum number of files (inodes) for user-visible data allowed on the volume. This value can be increased or decreased. Increasing the maximum number of files does not immediately cause additional disk space to be used to track files. Instead, as more files are created on the volume, the system dynamically increases the number of disk blocks that are used to track files. The space assigned to track files is never freed, and this value cannot be decreased below the current number of files that can be tracked within the assigned space for the volume. Valid in PATCH.<\/p>\n<\/blockquote>\n<p><strong>Inode available on the volume <\/strong>\u2014 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e \u0438\u043d\u043e\u0434. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a: <\/p>\n<p><code>last(netapp.get.volume.files.maximum[{#VOLUME_NAME}])-last(netapp.get.volume.files.used[{#VOLUME_NAME}])<\/code><\/p>\n<p><strong>Inode used in percentage on the volume <\/strong>\u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u0438\u043d\u043e\u0434 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u0445 \u0438 \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u0435. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a: <code>(last(netapp.get.volume.files.used[{#VOLUME_NAME}])*100)\/last(netapp.get.volume.files.maximum[{#VOLUME_NAME}])<\/code><\/p>\n<h2>\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f<\/h2>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4d3\/fa0\/a3d\/4d3fa0a3d9bbcf639f6ca5019672d5d3.png\" width=\"2594\" height=\"938\"><figcaption><\/figcaption><\/figure>\n<ul>\n<li>\n<p>Free disk space less than 1% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Free disk space less than 5% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Free disk space less than 10% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Free inodes less than 1% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Free inodes less than 5% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Free inodes less than 10% on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Volume metrics status is not OK on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>Volume state is not ONLINE on the {#VOLUME_NAME}<\/p>\n<\/li>\n<li>\n<p>NetApp cluster version was changed<\/p>\n<\/li>\n<\/ul>\n<h2>\u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0414\u044d\u0448\u0431\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0430\u043a \u0436\u0435, \u043d\u043e \u0441\u0442\u0430\u043b \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u0435\u0435 \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a5f\/f81\/cf8\/a5ff81cf8321b67b0482851fa6db610d.png\" width=\"2748\" height=\"1386\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0430&nbsp;<em>Show in Zabbix<\/em>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0442\u044c\u0441\u044f \u0432 Zabbix \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u0442\u043e\u043c\u0443.<\/p>\n<h2>\u0418\u0442\u043e\u0433\u0438<\/h2>\n<ul>\n<li>\n<p>\u041e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432\u0441\u0451 \u0442\u0430 \u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043c\u043e\u0432 \u043d\u0430\/\u0441 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\/\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0418\u0437\u0431\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u0434\u0434\u043e\u0441\u0438\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433 \u0438\u0437 \u0414\u0426.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a \u0441\u0442\u0430\u043b\u043e \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u043e\u043d\u0438 \u0441\u0442\u0430\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435\u0435.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0428\u0430\u0431\u043b\u043e\u043d \u0438 \u0434\u044d\u0448\u0431\u043e\u0440\u0434<\/h2>\n<ul>\n<li>\n<p><a href=\"https:\/\/github.com\/domclick\/netapp-volume-monitoring#netapp-volumes-monitoring-via-http\">NetApp Volumes Monitoring via HTTP<\/a><\/p>\n<\/li>\n<\/ul>\n<h2>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ul>\n<li>\n<p><a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/config\/items\/itemtypes\/http\">Zabbix HTTP-agent<\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/library.netapp.com\/ecmdocs\/ECMLP2856304\/html\/index.html\">ONTAP 9.6 REST API online documentation<\/a><\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"https:\/\/t.me\/ZabbixPro\">Zabbix Russian Community<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/542122\/\"> https:\/\/habr.com\/ru\/company\/domclick\/blog\/542122\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/517206\/\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a>, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043a\u043e\u0441\u0442\u044b\u043b\u044f\u043c\u0438 \u0438 SSH \u0434\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043c\u0435\u0441\u0442\u0430 \u0438 \u043c\u0435\u0442\u0440\u0438\u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043d\u0430\u043c \u0442\u043e\u043c\u043e\u0432 \u043d\u0430 NetApp, \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0438 \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/library.netapp.com\/ecmdocs\/ECMLP2856304\/html\/index.html\">ONTAP REST API<\/a> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Zabbix <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/config\/items\/itemtypes\/http\">HTTP-agent<\/a>. \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0430\u0440\u0435\u043d\u0434\u0443\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u0442\u043e, \u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u2014 \u044d\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0441\u0442\u0430 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0442\u043e\u043c\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043d\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c.<\/p>\n<h2>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u041d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c&nbsp;\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/discovery\/low_level_discovery\">\u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/a>. \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/p>\n<p><strong>NetApp: Get cluster information<\/strong> \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/cluster<\/code>, \u0433\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><code>{$ONTAP.SCHEME}<\/code> \u2014 HTTPS;<\/p>\n<\/li>\n<li>\n<p><code>{HOST.CONN}<\/code> \u2014 IP NetApp;<\/p>\n<\/li>\n<li>\n<p><code>{$ONTAP.USERNAME}<\/code> \u2014 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043e\u0442 NetApp;<\/p>\n<\/li>\n<li>\n<p><code>{$ONTAP.PASSWORD}<\/code> \u2014 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 NetApp.<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"json\">{   \"name\": \"NETAPP_NAME\",   \"uuid\": \"e58448eb-39ac-11e8-ba6a-00a098d57984\",   \"version\": {     \"full\": \"NetApp Release 9.6P10: Thu Aug 20 19:45:05 UTC 2020\",     \"generation\": 9,     \"major\": 6,     \"minor\": 0   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/cluster\"     }   } }<\/code><\/pre>\n<figure class=\"bordered full-width\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volumes<\/strong> \u2014 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes<\/code>, \u0442\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0442\u043e\u043c\u043e\u0432 (124), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0441\u0442\u0438 \u0443\u0440\u0435\u0437\u0430\u043b \u0438\u0445 \u0434\u043e \u0447\u0435\u0442\u044b\u0440\u0451\u0445.<\/p>\n<pre><code class=\"json\">{   \"records\": [     {       \"uuid\": \"04dd9e6a-d04f-49d8-8999-97572ed9183c\",       \"name\": \"data_1\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/04dd9e6a-d04f-49d8-8999-97572ed9183c\"         }       }     },     {       \"uuid\": \"0638aa9e-d683-43a7-bb75-7f056876a6cb\",       \"name\": \"data_2\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/0638aa9e-d683-43a7-bb75-7f056876a6cb\"         }       }     },     {       \"uuid\": \"0672d0de-e3b0-47e5-9d4a-4e3ae1d34e51\",       \"name\": \"data_3\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/0672d0de-e3b0-47e5-9d4a-4e3ae1d34e51\"         }       }     },     {       \"uuid\": \"06b8a873-6d85-49f2-bf83-55daf31b26e7\",       \"name\": \"data_4\",       \"_links\": {         \"self\": {           \"href\": \"\/api\/storage\/volumes\/06b8a873-6d85-49f2-bf83-55daf31b26e7\"         }       }     }   ],   \"num_records\": 124,   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\"     }   } }<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435<\/h2>\n<p><strong>NetApp: Get cluster information<\/strong> \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438.<\/p>\n<figure class=\"full-width\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volumes<\/strong> \u2014 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0435 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0432\u0430 \u043c\u0430\u043a\u0440\u043e\u0441\u0430:<\/p>\n<ul>\n<li>\n<p><code>{#VOLUME_NAME}<\/code> \u2014 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043c\u0430;<\/p>\n<\/li>\n<li>\n<p><code>{#VOLUME_UUID}<\/code> \u2014 UUID \u0442\u043e\u043c\u0430, \u0431\u0443\u0434\u0435\u0442 \u0438\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0442\u043e\u043c\u0443.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c&nbsp;\u0434\u0432\u0430 <a href=\"https:\/\/www.zabbix.com\/documentation\/current\/ru\/manual\/discovery\/low_level_discovery#%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D1%82%D0%B8%D0%BF%D1%8B_%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85\">\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u0430 \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/a>.<\/p>\n<p><strong>NetApp: Get volume {#VOLUME_NAME} information<\/strong> \u2014 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c\u0435 \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes\/{#VOLUME_UUID}<\/code>.<\/p>\n<details class=\"spoiler\">\n<summary>NetApp: Get volume {#VOLUME_NAME} information<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"comment\": \"\",   \"create_time\": \"2018-10-10T15:44:42+03:00\",   \"language\": \"c.utf_8\",   \"name\": \"data_1\",   \"size\": 265106042880,   \"state\": \"online\",   \"style\": \"flexvol\",   \"tiering\": {     \"policy\": \"none\"   },   \"type\": \"rw\",   \"aggregates\": [     {       \"name\": \"DC_AFF300_03\",       \"uuid\": \"a9e28005-e099-4fcc-bcaa-6781c0086e0b\"     }   ],   \"clone\": {     \"is_flexclone\": false   },   \"nas\": {     \"export_policy\": {       \"name\": \"default\"     }   },   \"snapshot_policy\": {     \"name\": \"DOMCLICK_daily\"   },   \"svm\": {     \"name\": \"DOMCLIC_SVM\",     \"uuid\": \"46a00e5d-c22d-11e8-b6ed-00a098d48e6d\"   },   \"space\": {     \"size\": 265106042880,     \"available\": 62382796800,     \"used\": 189467947008   },   \"metric\": {     \"timestamp\": \"2021-02-16T12:42:00Z\",     \"duration\": \"PT15S\",     \"status\": \"ok\",     \"latency\": {       \"other\": 175,       \"total\": 183,       \"read\": 515,       \"write\": 323     },     \"iops\": {       \"read\": 41,       \"write\": 15,       \"other\": 2006,       \"total\": 2063     },     \"throughput\": {       \"read\": 374272,       \"write\": 78948,       \"other\": 0,       \"total\": 453220     }   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p><strong>NetApp: Get volume {#VOLUME_NAME} inode information<\/strong> \u2014 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0438\u043d\u043e\u0434 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u043e\u043c\u0435 \u0447\u0435\u0440\u0435\u0437 API \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <code>{$ONTAP.SCHEME}:\/\/{HOST.CONN}\/api\/storage\/volumes\/{#VOLUME_UUID}?fields=files<\/code>.<\/p>\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"name\": \"data_1\",   \"files\": {     \"maximum\": 7685871,     \"used\": 4108317   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b<\/h2>\n<p>\u0412\u044b\u0448\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 JSON&#8217;\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0438, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0441 \u043b\u0435\u0433\u043a\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JSONPath \u0438 \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043d\u0430\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0438\u0448\u0443, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c.<\/p>\n<p><strong>NetApp: Volume state <\/strong>\u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u043c\u0430, \u043f\u0430\u0440\u0441\u0438\u043c \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442 <strong>NetApp: Get volume {#VOLUME_NAME} information<\/strong>.<\/p>\n<details class=\"spoiler\">\n<summary>NetApp: Get volume data_1 information<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"uuid\": \"a1ef1dd3-bf62-470c-87d0-39d0c4366913\",   \"comment\": \"\",   \"create_time\": \"2018-10-10T15:44:42+03:00\",   \"language\": \"c.utf_8\",   \"name\": \"data_1\",   \"size\": 265106042880,   \"state\": \"online\",   \"style\": \"flexvol\",   \"tiering\": {     \"policy\": \"none\"   },   \"type\": \"rw\",   \"aggregates\": [     {       \"name\": \"DC_AFF300_03\",       \"uuid\": \"a9e28005-e099-4fcc-bcaa-6781c0086e0b\"     }   ],   \"clone\": {     \"is_flexclone\": false   },   \"nas\": {     \"export_policy\": {       \"name\": \"default\"     }   },   \"snapshot_policy\": {     \"name\": \"DOMCLICK_daily\"   },   \"svm\": {     \"name\": \"DOMCLIC_SVM\",     \"uuid\": \"46a00e5d-c22d-11e8-b6ed-00a098d48e6d\"   },   \"space\": {     \"size\": 265106042880,     \"available\": 62382796800,     \"used\": 189467947008   },   \"metric\": {     \"timestamp\": \"2021-02-16T12:42:00Z\",     \"duration\": \"PT15S\",     \"status\": \"ok\",     \"latency\": {       \"other\": 175,       \"total\": 183,       \"read\": 515,       \"write\": 323     },     \"iops\": {       \"read\": 41,       \"write\": 15,       \"other\": 2006,       \"total\": 2063     },     \"throughput\": {       \"read\": 374272,       \"write\": 78948,       \"other\": 0,       \"total\": 453220     }   },   \"_links\": {     \"self\": {       \"href\": \"\/api\/storage\/volumes\/a1ef1dd3-bf62-470c-87d0-39d0c4366913\"     }   } }<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<figure class=\"full-width\"><figcaption>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0438\u043d\u0433 JSONPath.<\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0441\u0451 \u0432\u044b\u0434\u0435\u0440\u0433\u0438\u0432\u0430\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e.<\/p>\n<h3>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0442\u043e\u043c\u043e\u0432<\/h3>\n<p><strong>Volume state<\/strong> \u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.state<\/code><\/p>\n<blockquote>\n<p>Volume state. A volume can only be brought online if it is offline. The \u2018mixed\u2019 state applies to FlexGroup volumes only and cannot be specified as a target state. An \u2018error\u2019 state implies that the volume is not in a state to serve data.<\/p>\n<\/blockquote>\n<p><strong>Type of the volume<\/strong> \u2014 \u0442\u0438\u043f \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.type<\/code><\/p>\n<blockquote>\n<p>Type of the volume.<br \/>rw \u2010 read-write volume.<br \/>dp \u2010 data-protection volume.<br \/>ls \u2010 load-sharing dp volume. Valid in GET.<\/p>\n<\/blockquote>\n<p><strong>Style of the volume<\/strong> \u2014 \u0441\u0442\u0438\u043b\u044c \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.style<\/code><\/p>\n<blockquote>\n<p>The style of the volume. If \u201cstyle\u201d is not specified, the volume type is determined based on the specified aggregates. Specifying a single aggregate, without \u201cconstituents_per_aggregate\u201d creates a flexible volume. Specifying multiple aggregates, or a single aggregate with \u201cconstituents_per_aggregate\u201d creates a FlexGroup. If \u201cstyle\u201d is specified, a volume of that type is created. That is, if style is &#171;flexvol&#187;, a single aggregate must be specified. If style is &#171;flexgroup&#187;, the system either uses the specified aggregates, or automatically provisions if no aggregates are specified.<br \/>flexvol \u2010 flexible volumes and FlexClone volumes<br \/>flexgroup \u2010 FlexGroups.<\/p>\n<\/blockquote>\n<p><strong>Volume metrics status<\/strong> \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u0442\u043e\u043c\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.metric.status<\/code><\/p>\n<blockquote>\n<p>Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, \u201cok\u201d on success, or \u201cerror\u201d on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with &#171;backfilled_data&#187;. \u201cInconsistent_delta_time\u201d is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. \u201cNegative_delta\u201d is returned when an expected monotonically increasing value has decreased in value. \u201cInconsistent_old_data\u201d is returned when one or more nodes does not have the latest data.<\/p>\n<\/blockquote>\n<p><strong>Comment on the volume<\/strong> \u2014 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043a \u0442\u043e\u043c\u0443. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.comment<\/code><\/p>\n<blockquote>\n<p>A comment for the volume. Valid in POST or PATCH.<\/p>\n<\/blockquote>\n<h3>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430<\/h3>\n<p><strong>Volume space used<\/strong> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.used<\/code><\/p>\n<blockquote>\n<p>The virtual space used (includes volume reserves) before storage efficiency, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space size<\/strong> \u2014 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.size<\/code><\/p>\n<blockquote>\n<p>Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space available<\/strong> \u2014 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath: $.space.available<\/code><\/p>\n<blockquote>\n<p>The available space, in bytes.<\/p>\n<\/blockquote>\n<p><strong>Volume space used in percentage<\/strong> \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u0445 \u0438 \u0434\u043b\u044f \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u0430. \u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a <code>(last(netapp.get.volume.space.used[{#VOLUME_NAME}])*100)\/last(netapp.get.volume.space.size[{#VOLUME_NAME}])<\/code><\/p>\n<h3>\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0442\u043e\u043c\u043e\u0432<\/h3>\n<h4>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c<\/h4>\n<p>\u041f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0435 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p><strong>Volume throughput write<\/strong> \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c. \u042d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438: <code>JSONPath:<\/code><\/p>\n<\/p>\n<\/blockquote>\n<p><\/br><\/p>\n<\/blockquote>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-318205","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/318205","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=318205"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/318205\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=318205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=318205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=318205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}