{"id":2346,"date":"2018-08-24T14:34:46","date_gmt":"2018-08-24T12:34:46","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=2346"},"modified":"2018-08-24T21:14:13","modified_gmt":"2018-08-24T19:14:13","slug":"monitoring-i-diagnostyka-storaga","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2018\/08\/24\/monitoring-i-diagnostyka-storaga\/","title":{"rendered":"Monitoring i diagnostyka storaga"},"content":{"rendered":"<p>Azure Storage Diagnostics daje dost\u0119p do metryk i log\u00f3w, dzi\u0119ki kt\u00f3rym mo\u017cliwe jest \u015bledzenie zu\u017cycia magazynu, diagnozowanie problem\u00f3w z odpytywaniem storaga lub zwi\u0119kszanie wydajno\u015bci aplikacji na nim uruchomionych.<\/p>\n<p><!--more--><\/p>\n<p>Diagnostyk\u0119 storaga w\u0142\u0105czamy wchodz\u0105c na konto danego storaga i w sekcji <em>Monitoring<\/em> klikamy na<em> Diagnostic logs (classic)<\/em> a potem w <em>Status<\/em> na <em>On<\/em>. Tutaj mo\u017cna wybra\u0107 metryki, logi i retencj\u0119.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2352\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/Storage-Diagnostic.jpg\" alt=\"\" width=\"744\" height=\"744\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Storage-Diagnostic.jpg 744w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Storage-Diagnostic-150x150.jpg 150w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Storage-Diagnostic-300x300.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Storage-Diagnostic-100x100.jpg 100w\" sizes=\"(max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><\/p>\n<p>S\u0105 dwa poziomy kolekcjonowania metryk:<\/p>\n<ul>\n<li><em>poziom us\u0142ugi<\/em> &#8211; te metryki zawieraj\u0105\u00a0 statystyki dla wszystkich zapyta\u0144, gromadzonych w okre\u015blonym interwale czasowym. Nawet je\u017celi nie ma \u017cadnych zapyta\u0144 do us\u0142ugi wpis i tak jest dokonywany z informacj\u0105, \u017ce nie by\u0142o \u017cadnego zapytania w okre\u015blonym interwale.<\/li>\n<li><em>poziom API<\/em> &#8211; metryki zapisuj\u0105 zapytania do ka\u017cdej us\u0142ugi tylko je\u017celi zapytania odbywaj\u0105 si\u0119 w interwale godzinnym.<\/li>\n<\/ul>\n<p>Diagnostyk\u0119 magazynu mo\u017cna tak\u017ce uruchomi\u0107 w PowerShellu.<\/p>\n<pre class=\"lang:ps decode:true\">$storageAccount = \"mystorageaccount0002\"\r\n$rgName=\"RG01\"\r\n$storageKey = Get-AzureRmStorageAccountKey -ResourceGroupName $rgName -Name $storageAccount\r\n$context = New-AzureStorageContext -StorageAccountName $storageAccount `\r\n-StorageAccountKey $storageKey[0].Value\r\n\r\nSet-AzureStorageServiceMetricsProperty -ServiceType Blob `\r\n-MetricsType Hour `\r\n-RetentionDays 30 `\r\n-MetricsLevel ServiceAndApi `\r\n-Context $context\r\n\r\nSet-AzureStorageServiceLoggingProperty -ServiceType Blob `\r\n-RetentionDays 30 `\r\n-LoggingOperations Delete `\r\n-Context $context<\/pre>\n<p>W przyk\u0142adzie powy\u017cej cmdlet <code>Set-AzureStorageServiceMetricsPropert<\/code> w\u0142\u0105cza metryk\u0119 godzinn\u0105, retencj\u0119 ustawia na 30 dni, a poziom metryki na ServiceAndApi. Dozwolone tutaj parametry to:<\/p>\n<ul>\n<li>MetricsType:\u00a0 Hour and Minute.<\/li>\n<li>ServiceType:\u00a0 Blob, Queue, and Table.<\/li>\n<li>MetricsLevel: None, Service, and ServiceAndApi.<\/li>\n<\/ul>\n<p>Natomiast cmdlet\u00a0 <code>Set-AzureStorageServiceLoggingProperty<\/code> konfiguruje dla us\u0142ugi blobs retencj\u0119 na 30 dni, ale logowane s\u0105 tylko operacje kasowania. Dozwolone tutaj s\u0105 parametry:<\/p>\n<ul>\n<li>LoggingOperations: All, None, Read, Write i Delete<\/li>\n<\/ul>\n<p>Metryki rejestrowane s\u0105 poziomie us\u0142ugi a tak\u017ce na poziomie us\u0142ugi i API.\u00a0 Na poziomie us\u0142ugi (blobsy, tabele i kolejki) gromadzone s\u0105 takie podstawowe metryki jak ruch przychodz\u0105cy, ruch wychodz\u0105cy, dost\u0119pno\u015b\u0107, czas odpowiedzi.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Analiza danych diagnostycznych<\/span><\/p>\n<p>Poza w\u0142\u0105czeniem i konfiguracj\u0105 diagnostyki wa\u017cne jest tak\u017ce zrozumienie co przechwycone metryki i logi znacz\u0105. Metryki przechwytywane s\u0105 do do tabel danego konta storage. Zawarto\u015b\u0107 tych tabel mo\u017cna przegl\u0105da\u0107 w<em> Azure Storage Explorerze<\/em>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2357\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/AnalyzingData.jpg\" alt=\"\" width=\"1090\" height=\"468\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AnalyzingData.jpg 1090w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AnalyzingData-300x129.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AnalyzingData-768x330.jpg 768w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/AnalyzingData-1024x440.jpg 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>Logi s\u0105 natomiast sk\u0142adowane w blobsach w kontenerze <code>$logs<\/code>, kt\u00f3ry tak\u017ce mo\u017cna przegl\u0105da\u0107 <em>Azure Stoage Explorerem<\/em>. Blobsy, w kt\u00f3rych s\u0105 logi sk\u0142adowane s\u0105 wg schematu:<\/p>\n<p><code>&lt;servicetype&gt;\/YYYY\/MM\/DD\/HHMM\/&lt;counter&gt;.log<\/code><\/p>\n<p>np. <code>table\/2014\/05\/20\/0900\/000002.log<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2360\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/LogingData.jpg\" alt=\"\" width=\"1077\" height=\"520\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/LogingData.jpg 1077w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/LogingData-300x145.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/LogingData-768x371.jpg 768w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/LogingData-1024x494.jpg 1024w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>To co zawieraj\u0105 logi zale\u017cy od parametru <code>-LoggingOperations<\/code> (<code>All, Reads, Writes, Delete<\/code>) ustawionego na etapie w\u0142\u0105czania logowania.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #3366ff;\">Alarmy.<\/span><\/p>\n<p>Alarm mo\u017cna ustawia\u0107 w menu klikaj\u0105c:<\/p>\n<p><code>[Storage Account] -&gt; Alerts -&gt; New Alert Rule<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2363 aligncenter\" src=\"http:\/\/miroslaw.borodziuk.eu\/wp-content\/uploads\/Alert.jpg\" alt=\"\" width=\"895\" height=\"790\" srcset=\"http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Alert.jpg 895w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Alert-300x265.jpg 300w, http:\/\/miro.borodziuk.eu\/wp-content\/uploads\/Alert-768x678.jpg 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Wi\u0119cej informacji:<\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-monitor-storage-account\">https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-monitor-storage-account<\/a><\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-monitoring-diagnosing-troubleshooting\">https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-monitoring-diagnosing-troubleshooting<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure Storage Diagnostics daje dost\u0119p do metryk i log\u00f3w, dzi\u0119ki kt\u00f3rym mo\u017cliwe jest \u015bledzenie zu\u017cycia magazynu, diagnozowanie problem\u00f3w z odpytywaniem storaga lub zwi\u0119kszanie wydajno\u015bci aplikacji na nim uruchomionych.<\/p>\n","protected":false},"author":1,"featured_media":2347,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2346"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=2346"}],"version-history":[{"count":19,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2346\/revisions"}],"predecessor-version":[{"id":2370,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/2346\/revisions\/2370"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media\/2347"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=2346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=2346"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}