<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Storage arşivleri - Süleyman KARATAŞ</title>
	<atom:link href="https://www.suleymankaratas.net/tag/storage/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.suleymankaratas.net/tag/storage/</link>
	<description>Monitoring Engineer &#124; Instructor on Udemy &#124; Blogger</description>
	<lastBuildDate>Mon, 13 Jul 2026 10:31:34 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Huawei OceanStor File System Objects Monitoring</title>
		<link>https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/</link>
					<comments>https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 12 Jul 2026 15:20:18 +0000</pubDate>
				<category><![CDATA[Zabbix Monitoring]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[zabbix]]></category>
		<guid isPermaLink="false">https://www.suleymankaratas.net/?p=2822</guid>

					<description><![CDATA[<p>Merhaba, Bu makalede Huawei OceanStor storage cihazı Pool Havuzları içinde oluşturulan File System objelerinin monitör edilmesini anlatıyor olacağım. Öncelikle File System alanlarının neler olduğunu teknik olarak kısaca anlamaya çalışalım. Storage cihazları en temelinde üzerine fiziksel ve adet olarak yüksek kapasitede disklerin bulunduğu depolama cihazlarıdır. İzleme yapacağımız cihaz üzerindeki mimariyi de 2 yönden ele alarak tanıyabiliriz.… <span class="read-more"><a href="https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/">Read More: Huawei OceanStor File System Objects Monitoring &#187;</a></span></p>
<p><a href="https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/">Huawei OceanStor File System Objects Monitoring</a> yazısı ilk önce <a href="https://www.suleymankaratas.net">Süleyman KARATAŞ</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Merhaba,</p>



<p class="wp-block-paragraph">Bu makalede <strong>Huawei OceanStor</strong> storage cihazı <strong>Pool Havuzları</strong> içinde oluşturulan <strong>File System</strong> objelerinin monitör edilmesini anlatıyor olacağım.</p>



<p class="wp-block-paragraph">Öncelikle <strong>File System</strong> alanlarının neler olduğunu teknik olarak kısaca anlamaya çalışalım. Storage cihazları en temelinde üzerine fiziksel ve adet olarak yüksek kapasitede disklerin bulunduğu depolama cihazlarıdır. </p>



<p class="wp-block-paragraph">İzleme yapacağımız cihaz üzerindeki mimariyi de 2 yönden ele alarak tanıyabiliriz.</p>



<ul class="wp-block-list">
<li><strong>Fiziksel Katman (Raid + Blok Sanallaştırma)</strong><br>Bu katman teknik olarak Disk Domaini, CK(Chunk), CKG(ChunkGroup), Extent, Grain gibi bileşenlerden oluşmaktadır. Bizim izlemeye çalışacağımız <strong>File System</strong> yapısına bu katmandan bakarsak aşağıdaki gibi görebiliriz. <br><br>Bu bakışı fiziksel katmandan mantıksal katmana doğru bir yaklaşım olarak düşünebilirsiniz.</li>
</ul>



<pre class="wp-block-code"><code>Disk Domain
└──&gt; CK (Chunk)
    └──&gt; CKG (Chunk Group)
        └──&gt; Extent
            └──&gt; Grain
                └──&gt;&gt; <strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color">File System</mark></strong></code></pre>



<ul class="wp-block-list">
<li><strong>NAS (File System Servis Objeleri) Katmanı</strong><br>Bu katmanda Pool Havuzu, File System, Dtree(Directory Tree), Quota, Share(NFS,CIFS), Snapshot gibi mantıksal <strong>dosya sistemi</strong> objelerini görebilirsiniz. <br>Pool Havuzu; Bir önceki maddede açıkladığımız Disk Domain objeleri üzerinde oluşturulan mantıksal alanlarken, File System ise; Pool içinde oluşturulabilen depolama alanlarıdır. <br><br>Yine burada izlemek istediğimiz File System yapısına bu katmandan bakarsak aşağıdaki gibi hiyerarşi görebiliriz.</li>
</ul>



<pre class="wp-block-code"><code>Disk Domain
└──&gt; Storage Pool
    └──&gt;&gt; <mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-orange-color"><strong>File System</strong></mark>
        └──&gt; Dtree
            ├──&gt; Quota
            ├──&gt; Share
            └──&gt; Snapshot</code></pre>



<p class="wp-block-paragraph">Özetle izleyeceğimiz <strong>File System</strong> objeleri storage üzerindeki Pool Havuzu içinde oluşturulabilen ve kapasiteleri belli olan mantıksal depolama alanlarıdır. </p>



<p class="wp-block-paragraph">Bu izlemeyi teknik olarak Pull Metodu + Rest API + Zabbix Discovery kullanarak dinamik bir şekilde gerçekleştireceğiz. Yeni bir File System objesi oluşturulduğunda tasarladığımız izleme kurgusu bunu otomatik olarak keşfederek izlemeye dahil edecek.</p>



<h3 class="wp-block-heading">1-REST API Doküman Analizi</h3>



<p class="wp-block-paragraph">Storage üreticisinden temin ettiğimiz <strong>OceanStor REST Interface Reference</strong> dokümanını analiz ederek başlıyoruz. İzleyeceğimiz storage cihazının marka, model ve yazılım + API versiyonu bu doküman ile tam uyumlu olmalıdır ve üreticiden official olarak temin edilmesi önemlidir.</p>



<p class="wp-block-paragraph"><a href="https://www.suleymankaratas.net/wp-content/uploads/2026/07/OceanStor-6.1.5-REST-Interface-Reference.pdf" target="_blank" rel="noreferrer noopener">Bu doküman</a> oldukça uzun ve detaylı (3.504 sayfa) olduğundan analizimizde zaman kazanmak için Prompt Engineering yöntemini kullanıyoruz. Siz de kullandığınız bir AI Tool&#8217;undan destek alabilirsiniz ben makale boyunca <a href="https://claude.ai/new" target="_blank" rel="noreferrer noopener">Anthropic / Claude</a> kullanıyor olacağım. Dokümanı analiz etmesi için AI Tool&#8217;a upload ediyorum.</p>



<p class="wp-block-paragraph">Buradaki en önemli kısım AI ile konuşurken izlemeye çalıştığınız hedef cihaza ve yönettiğiniz monitoring tool&#8217;una ne kadar hakim olursanız sonuca çok daha kısa yoldan ve optimize şekilde ulaşmış olursunuz.</p>



<ul class="wp-block-list">
<li>İzleme Ürünü : Zabbix (Versiyon 7 LTS)</li>
</ul>



<ul class="wp-block-list">
<li>İzleme Yöntemi: Rest API (User, Password, Token+SessionID)</li>
</ul>



<ul class="wp-block-list">
<li>İzlenecek Storage Cihazı: Huawei OceanStor 5XXX Serisi </li>
</ul>



<p class="wp-block-paragraph">Bağlantı yöntemi olarak Huawei Storage cihazı dataları doğrudan (Basic User + Password) erişimine açık değildir. Bu nedenle Rest API ile doğrudan HTTP item ile data çekip kullanamıyoruz.</p>



<p class="wp-block-paragraph">Her sorguda Raw Data&#8217;ya erişebilmek için User ve Şifre kullanarak elde ettiğimiz SessionID ve Token&#8217;ı kullanacak bir Script item&#8217;a ihtiyacımız olduğunu API dokümanından anlıyoruz. </p>



<p class="wp-block-paragraph">Buna benzer item örneklerini <a href="https://www.zabbix.com/documentation/7.0/en/manual/config/items/itemtypes/script" target="_blank" rel="noreferrer noopener">Zabbix Official Template</a> ve dokümanlar içerisinde sıkça görebilirsiniz ve inceleyebilirsiniz.</p>



<h3 class="wp-block-heading">2-File System Raw Data Script Item</h3>



<p class="wp-block-paragraph">Rest API dokümanı analiz ettirdiğimiz AI ajanından bize <strong>File System</strong> objelerine ait dataları <strong>JSON</strong> formatında döndüren bir <strong>Script item</strong> hazırlamasını istiyorum.</p>



<p class="wp-block-paragraph">Bu item&#8217;ı ekleyebilmek için de Zabbix&#8217;e Huawei Storage&#8217;i bir host olarak ekliyorum.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="881" height="119" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image.png" alt="" class="wp-image-2825" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image.png 881w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-300x41.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-768x104.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-660x89.png 660w" sizes="(max-width: 881px) 100vw, 881px" /></figure>



<p class="wp-block-paragraph">Host eklerken interface olarak doğrudan Storage IP adresini yazıp ICMP Template ile ekleyebilirsiniz ancak ben sadece API Call adımlarına odaklanmak için Zabbix Local Host&#8217;u interface olarak kabul ediyorum.</p>



<p class="wp-block-paragraph">Host Macros alanına API içerisinde kullanacağım credential bilgilerini Zabbix&#8217;in Macro formatında yazıyorum ve yanlarına da kısa açıklamalarını ekliyorum.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="414" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1-1024x414.png" alt="" class="wp-image-2826" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1-1024x414.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1-300x121.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1-768x310.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1-660x267.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-1.png 1154w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ardından bu Host içine <strong>Scritp</strong> tipinde bir <strong>item</strong> tanımı yapıyorum. Bu item içindeki alanların tanımları aşağıdaki gibidir.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="718" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-1024x718.png" alt="" class="wp-image-2828" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-1024x718.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-300x210.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-768x538.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-660x463.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3-200x140.png 200w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-3.png 1153w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>Name : Huawei FS Inventory Raw</li>



<li>Type : Script</li>



<li>Key : huawei.fs.inventory.raw</li>



<li>Type of information : Text</li>



<li>Script : AI Tarafından oluşturulan <a href="https://www.suleymankaratas.net/wp-content/uploads/2026/07/Huawei_FS_Inventory_Raw_Script_Item.txt" target="_blank" rel="noreferrer noopener">Script</a> item</li>



<li>Update interval : 15m</li>
</ul>



<p class="wp-block-paragraph">* Doğru Script AI ile birkaç konuşma ve deneme sonrası mümkün olmaktadır.</p>



<p class="wp-block-paragraph">Bu item bizim File System data objelerini JSON formatında 15 dakika aralıklar ile çekeceğimiz ana item objemizdir. Şimdi <strong>Test</strong> ve ardından <strong>Get value</strong> butonuna basarak sonucuna bakalım.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="717" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-1024x717.png" alt="" class="wp-image-2829" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-1024x717.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-300x210.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-768x538.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-660x462.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e-200x140.png 200w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/1-e.png 1154w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Value alanında gelen Raw datayı JSON görüntüleme alanına alıp kontrol ediyorum. 59 adet veri içeren bir data seti elde etmiş olduk. Şimdi bunların içeriğini anlamaya çalışalım.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="615" height="508" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-6.png" alt="" class="wp-image-2832" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-6.png 615w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-6-300x248.png 300w" sizes="auto, (max-width: 615px) 100vw, 615px" /></figure>



<p class="wp-block-paragraph">Bu data içeriklerinin ne anlama geldiğini dokümanı okuyan AI Agent&#8217;a sorup yanıtlarını yanına yazmasını istiyorum. Dokümana göre tüm detayları bana aşağıdaki gibi bir tabloda sunuyor.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Alan</th><th>Değer</th><th>Açıklama</th></tr></thead><tbody><tr><td>ID</td><td>1</td><td>Filesystem benzersiz ID</td></tr><tr><td>NAME</td><td>test</td><td>Filesystem adı</td></tr><tr><td>HEALTHSTATUS</td><td>1</td><td>Sağlık: 1=Normal, 2=Faulty</td></tr><tr><td>RUNNINGSTATUS</td><td>27</td><td>Durum: 27=Online, 28=Offline</td></tr><tr><td>SUBTYPE</td><td>0</td><td>FS alt tipi</td></tr><tr><td>ALLOCTYPE</td><td>1</td><td>Tahsis tipi: 1=Thick</td></tr><tr><td>CAPACITYTHRESHOLD</td><td>90</td><td>Uyarı eşiği (%)</td></tr><tr><td>PARENTNAME</td><td>StoragePool001</td><td>Bağlı Storage Pool</td></tr><tr><td>CAPACITY_SECTORS</td><td>20971520</td><td>Toplam kapasite (sektör)</td></tr><tr><td>CAPACITY_BYTES</td><td>10737418240</td><td>Toplam kapasite (byte) ≈ 10 GB</td></tr><tr><td>ALLOCCAPACITY_SECTORS</td><td>0</td><td>Kullanılan (sektör)</td></tr><tr><td>ALLOCCAPACITY_BYTES</td><td>0</td><td>Kullanılan (byte)</td></tr><tr><td>AVAILABLECAPCITY_SECTORS</td><td>16776896</td><td>Boş alan (sektör) *typo</td></tr><tr><td>AVAILABLECAPCITY_BYTES</td><td>8589770752</td><td>Boş alan (byte) ≈ 8 GB</td></tr><tr><td>UTILIZATION_PERCENT</td><td>0</td><td>Kullanım oranı (%)</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Ancak bu dataları <strong>Storage üzerinden de kontrol ederek</strong> emin olmakta fayda var ve buradaki <strong>&#8220;test&#8221;</strong> isimli <strong>File System </strong>objesinin kapasitesini JSON ile dönen datalarını Storage üzerindeki veriler ile de karşılaştırıyorum. Ardından kullanacağım alanları netleştiriyorum. </p>



<p class="wp-block-paragraph">Aşağıdaki 4 alan benim izlemek istediğim durum için yeterli olacak.</p>



<p class="wp-block-paragraph"><strong>&#8220;CAPACITY_BYTES&#8221;</strong> =&gt; Toplam Kapasite Alanını (B) gösteriyor, Storage üzerinden teyit edildi ✔<br><strong>&#8220;AVAILABLECAPCITY_BYTES&#8221;</strong> =&gt; Free Kapasite Alanını (B) gösteriyor, Storage üzerinden teyit edildi ✔<br><strong>&#8220;PARENTNAME&#8221;</strong> =&gt; File System objesinin bağlı olduğu Pool Havuz adı<br><strong>&#8220;NAME&#8221;</strong> =&gt; File System Objesinin Adı<br><strong>&#8220;ID&#8221;</strong> =&gt; File System Objesinin benzersiz ID&#8217;si (item create ederken kullanacağız)<br></p>



<h3 class="wp-block-heading">3-Dependent Discovery Rule Tanımlama</h3>



<p class="wp-block-paragraph">Şimdi <strong>Huawei FS Inventory Raw</strong> item&#8217;ından bir <strong>Dependent Discovery</strong> kuralı oluşturalım ve bu data seti her geldiğinde otomatik olarak keşif yöntemi ile dataları ayrıştırarak zahmetsizce alalım.</p>



<p class="wp-block-paragraph">Raw data item&#8217;ın solundaki 3 noktaya tıklıyorum ve <strong>Create dependent discovery rule</strong> diyerek tanımlamaya başlıyorum.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="943" height="443" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-7.png" alt="" class="wp-image-2833" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-7.png 943w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-7-300x141.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-7-768x361.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-7-660x310.png 660w" sizes="auto, (max-width: 943px) 100vw, 943px" /></figure>



<p class="wp-block-paragraph">Açılan ekranda <strong>Master item</strong> Huawei FS Inventory Raw master item&#8217;a bağlı olduğundan otomatik olarak geliyor. (Yanındaki <strong>&#8230; </strong>nokta kısmından create ettiğimiz için)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="831" height="444" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-8.png" alt="" class="wp-image-2845" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-8.png 831w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-8-300x160.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-8-768x410.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-8-660x353.png 660w" sizes="auto, (max-width: 831px) 100vw, 831px" /></figure>



<p class="wp-block-paragraph"><strong>LLD macros</strong> alanına JSON içinde kullanmaya karar verdiğim 2 kapasite parametresi için Macro&#8217;ları tanımlıyorum. Bu tanımlar bizim JSON içindeki verileri çekmemizi kolaylaştırmış olacak ve item prototype oluştururken kullanabilmemizi sağlayacak parametre ve JSON eşleşmeleri alanıdır. </p>



<p class="wp-block-paragraph">Aslında Raw olarak gelen data setindeki bir data&#8217;yı Zabbix içinde kullanabileceğim formada map&#8217;liyorum veya convert ediyorum gibi düşünebilirsiniz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="429" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12-1024x429.png" alt="" class="wp-image-2849" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12-1024x429.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12-300x126.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12-768x322.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12-660x277.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-12.png 1102w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ardından Add diyerek tanımladığım Discovery kuralını ekliyorum. </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="923" height="727" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-13.png" alt="" class="wp-image-2850" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-13.png 923w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-13-300x236.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-13-768x605.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-13-660x520.png 660w" sizes="auto, (max-width: 923px) 100vw, 923px" /></figure>



<h3 class="wp-block-heading">4-Item Prototype (Total Capacity)</h3>



<p class="wp-block-paragraph">Şimdi <strong>Item Prototype</strong> kısmına geçelim ve bu Discovery Rule&#8217;a bir prototype item ekleyelim.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="429" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14-1024x429.png" alt="" class="wp-image-2851" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14-1024x429.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14-300x126.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14-768x322.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14-660x276.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-14.png 1342w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Ekranın sağ üst kısmından <strong>Create item prototype</strong> kısmından ekleyelim.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="122" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-1024x122.png" alt="" class="wp-image-2852" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-1024x122.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-300x36.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-768x92.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-1536x183.png 1536w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15-660x79.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-15.png 1692w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Oluşturacağımız Item; Dependent tipinde olup <strong>Huawei FS Inventory Raw</strong> olan ana item&#8217;a bağlı olacak. Key alanı ise her File System objesi&#8217;nin benzersiz ID&#8217;si ile unique bir şekilde oluşacak. Zabbix&#8217;de kural gereği item key&#8217;lerin benzersiz olması gereklidir. </p>



<p class="wp-block-paragraph">Bizde bu benzersizliği <strong>Key</strong> alanına yazdığımız String tanımlama ve içindeki <strong>[{#ID}]</strong> dinamik parametresi ile sağlıyoruz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="780" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16-1024x780.png" alt="" class="wp-image-2853" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16-1024x780.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16-300x228.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16-768x585.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16-660x502.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-16.png 1035w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Tags kısmına <strong>Latest Data</strong> ekranında <strong>File System</strong> objelerini kolay bulabilmek için bir <strong>Tag</strong> ekliyorum.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="970" height="338" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-17.png" alt="" class="wp-image-2854" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-17.png 970w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-17-300x105.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-17-768x268.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-17-660x230.png 660w" sizes="auto, (max-width: 970px) 100vw, 970px" /></figure>



<p class="wp-block-paragraph">Preprocessing adımında <strong>ID</strong> ile <strong>CAPACITY_BYTES</strong> alanını JSON Path üzerinde eşleştiriyorum ve $[0] ile bu eşleşmenin ilk elemanının datasını alıyorum.</p>



<p class="wp-block-paragraph">$.data[?(@.ID == &#8216;{#ID}&#8217;)].CAPACITY_BYTES</p>



<p class="wp-block-paragraph">Preprocessing alanında <strong>JSON Path</strong> veya <strong>Java Script</strong> kodu ile esnek bir şekilde gelen datayı item&#8217;a ait ID ile eşleştirebilirsiniz. JS kodu için AI zaten öneride bulunacaktır ben burada JSONPath ile ilerliyorum.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="940" height="279" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-24.png" alt="" class="wp-image-2861" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-24.png 940w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-24-300x89.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-24-768x228.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-24-660x196.png 660w" sizes="auto, (max-width: 940px) 100vw, 940px" /></figure>



<p class="wp-block-paragraph">Item prototype eklendi.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="213" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21-1024x213.png" alt="" class="wp-image-2858" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21-1024x213.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21-300x62.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21-768x160.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21-660x137.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-21.png 1494w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Şimdi <strong>Discovery Rule Execute</strong> edelim ve dataların gelip gelmediğini kontrol edelim.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="359" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23-1024x359.png" alt="" class="wp-image-2860" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23-1024x359.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23-300x105.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23-768x269.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23-660x231.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-23.png 1345w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Latest Data ekranına geçip kontrol ettiğimde Storage üzerindeki File System objelerini doğru bir şekilde geldiğini görüyorum. Oluşturduğum Tag ve Item isimlendirmesi de olması gerektiği gibi. </p>



<p class="wp-block-paragraph">Örnek olması için <strong>Test</strong> isimli <strong>File System</strong> verilerini görebilirsiniz. Bu Storage üzerinde oluşturulmuş 3 adet Test isimli File System objesi mevcut ve Total Capacity bilgileri de Storage üzerinden teyit edilerek doğrulandı.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="434" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25-1024x434.png" alt="" class="wp-image-2862" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25-1024x434.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25-300x127.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25-768x325.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25-660x280.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-25.png 1369w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">5-Item Prototype (Free Available Capacity)</h3>



<p class="wp-block-paragraph">Şimdi aynı şekilde <strong>Available Capacity</strong> File System item&#8217;ını da ekleyelim. İlk item&#8217;dan bir Clone alarak hızlıca yapabilirsiniz sadece <strong>Key alanının</strong> adını ve preprocessing içindeki <strong>JSONPath</strong>&#8216;i güncellemeyi unutmayın.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="795" height="512" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-26.png" alt="" class="wp-image-2864" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-26.png 795w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-26-300x193.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-26-768x495.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-26-660x425.png 660w" sizes="auto, (max-width: 795px) 100vw, 795px" /></figure>



<p class="wp-block-paragraph">JSON işleme alanını da güncelliyoruz.</p>



<p class="wp-block-paragraph">$.data[?(@.ID == &#8216;{#ID}&#8217;)].AVAILABLECAPCITY_BYTES</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="249" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27-1024x249.png" alt="" class="wp-image-2865" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27-1024x249.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27-300x73.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27-768x186.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27-660x160.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-27.png 1042w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Toplamda 2 tane item prototype ekledik. Key alanlarının benzersiz olduğunu görebilirsiniz kontrol etmeyi unutmayın.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="177" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28-1024x177.png" alt="" class="wp-image-2866" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28-1024x177.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28-300x52.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28-768x133.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28-660x114.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-28.png 1221w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Latest data ekranından kontrol ettiğimde Available kapasite bilgisinin de Bytes cinsinden geldiğini görüntülüyorum.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="454" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29-1024x454.png" alt="" class="wp-image-2867" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29-1024x454.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29-300x133.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29-768x340.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29-660x292.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-29.png 1133w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">6-Calculated Item Prototype (Used Capacity)</h3>



<p class="wp-block-paragraph">Şimdi elimizdeki Total ve Free kapasite data&#8217;ları ile <strong>Calculated Used </strong>kapasite item oluşturalım. Elimizdeki iki datayı matematiksel işleme dahil ederek yeni bir item oluşturacağız. </p>



<p class="wp-block-paragraph">Used = Total &#8211; Free</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30-1024x570.png" alt="" class="wp-image-2868" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30-1024x570.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30-300x167.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30-768x428.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30-660x367.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-30.png 1306w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">7-Calculated Item Prototype (Utilization %)</h3>



<p class="wp-block-paragraph">Yine elimizdeki Total ve Free kapasite bilgileri ile Calculated <strong>Utilization % </strong>olacak bir item oluşturalım. Elimizdeki iki datayı matematiksel işlem (formula alanındaki gibi) ile kullanarak yeni bir item oluşturmaya devam ediyoruz.</p>



<p class="wp-block-paragraph">Used Utilizasyon % = Used / Total * 100</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="906" height="687" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-31.png" alt="" class="wp-image-2869" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-31.png 906w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-31-300x227.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-31-768x582.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-31-660x500.png 660w" sizes="auto, (max-width: 906px) 100vw, 906px" /></figure>



<p class="wp-block-paragraph"><strong>Latest data</strong> ekranından hem normal hem de calculated tipindeki tüm item&#8217;ları görüntülüyorum. Calculated olanların Tag alanına Type=Calculated olarak ayrıca bir Tag de ekledim.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="163" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32-1024x163.png" alt="" class="wp-image-2870" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32-1024x163.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32-300x48.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32-768x122.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32-660x105.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-32.png 1301w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Item detaylarına da aşağıdaki gibi göz atabilirsiniz.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="177" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-1024x177.png" alt="" class="wp-image-2871" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-1024x177.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-300x52.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-768x133.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-1536x266.png 1536w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33-660x114.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-33.png 1716w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Artık Utilization item prototype&#8217;ına solundaki (&#8230;) nokta alanından Create Trigger Prototype diyerek bir Trigger tanımlayıp File System objelerinin Utilizasyon alarmlarını tanımlayabilirsiniz. Bloğumda bununla ilgili çok fazla örnek olduğu için Trigger tanımlamasını detaylarına inerek uzun uzadıya anlatmadan bu makalenin ana konusunu burada tamamlıyorum.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="404" src="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34-1024x404.png" alt="" class="wp-image-2872" srcset="https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34-1024x404.png 1024w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34-300x118.png 300w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34-768x303.png 768w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34-660x261.png 660w, https://www.suleymankaratas.net/wp-content/uploads/2026/07/image-34.png 1140w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">8-Sonuç</h3>



<p class="wp-block-paragraph">Aşağıdaki hiyeraşik yapıda nasıl bir kurgulama ile izleme yaptığımızı analiz edebilirsiniz. Raw Data, Discovery Rule, Item Prototype ve Calculated item gibi kavramlar Zabbix üzerinde birbirine doğrudan bağlı ve mantığı oldukça basit bir kurgudur. Bunları olması gerektiği kadar kullanarak hem izlediğimiz cihaza minimum API Call yapmış oluyoruz hem de daha az karmaşık tanımlamaları olan bir izleme kurgusu tasarlamış oluyoruz.</p>



<pre class="wp-block-code"><code><strong>Huawei FS Inventory Raw Item (huawei.fs.inventory.raw)</strong>
│   Type: Script
│   Output: {"data":&#91;...]}
│
└── <strong>Discovery Rule (huawei.fs.discovery)</strong>
    │   Type: Dependent item
    │   Master: huawei.fs.inventory.raw
    │
    ├── <strong>{#PARENTNAME} / File System : &#91;{#NAME}] - Available Capacity (Bytes)</strong>
    │       Key: huawei.fs.available.gb&#91;{#ID}]
    │       Type: Dependent item
    │       Master: huawei.fs.inventory.raw
    │
    ├── <strong>{#PARENTNAME} / File System : &#91;{#NAME}] - Total Capacity (Bytes)</strong>
    │       Key: huawei.fs.capacity.gb&#91;{#ID}]
    │       Type: Dependent item
    │       Master: huawei.fs.inventory.raw
    │
    ├── <strong>{#PARENTNAME} / File System : &#91;{#NAME}] - Used Capacity (Bytes)</strong>
    │       Key: huawei.fs.used.gb&#91;{#ID}]
    │       Type: Calculated
    │       Formula: last(capacity) - last(available)
    │
    └── <strong>{#PARENTNAME} / File System : &#91;{#NAME}] - Used Utilization %</strong>
            Key: huawei.fs.util.pct&#91;{#ID}]
            Type: Calculated
            Formula: last(used) / last(capacity) * 100</code></pre>



<p class="wp-block-paragraph">Yeni yazılarda görüşmek dileği ile hoşça kalın.</p>
<p><a href="https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/">Huawei OceanStor File System Objects Monitoring</a> yazısı ilk önce <a href="https://www.suleymankaratas.net">Süleyman KARATAŞ</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.suleymankaratas.net/huawei-oceanstor-file-system-objects-monitoring/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
