<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Rümeysa Öz</title>
    <description>The latest articles on DEV Community by Rümeysa Öz (@rumeysaoz).</description>
    <link>https://dev.to/rumeysaoz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1016095%2F9d73eea8-0b34-4a21-ab90-9495f40383e5.jpeg</url>
      <title>DEV Community: Rümeysa Öz</title>
      <link>https://dev.to/rumeysaoz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rumeysaoz"/>
    <language>en</language>
    <item>
      <title>Low-Code’un Pazar Analizi ve İş Dünyasındaki Yeri</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Tue, 18 Mar 2025 07:46:47 +0000</pubDate>
      <link>https://dev.to/rumeysaoz/low-codeun-pazar-analizi-ve-is-dunyasindaki-yeri-1k2b</link>
      <guid>https://dev.to/rumeysaoz/low-codeun-pazar-analizi-ve-is-dunyasindaki-yeri-1k2b</guid>
      <description>&lt;p&gt;Low-Code platformları, yazılım geliştirme süreçlerini hızlandıran ve daha geniş bir kullanıcı kitlesine erişim sağlayan araçlardır. Bu platformlar, minimum kodlama gereksinimi ile uygulama geliştirmeyi mümkün kılarak işletmelerin dijital dönüşüm süreçlerini destekler.&lt;/p&gt;

&lt;p&gt;İlk bölümde, Low-Code’un ne olduğu ve neden önemli olduğu konularını ele almıştık. Bu bölümde ise, doğrudan pazar büyüklüğü, sektörel kullanım alanları, büyüme trendleri ve yatırım fırsatları gibi veriye dayalı analizlere odaklanacacağız.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Low-Code Pazarı: Günümüz ve Gelecek Projeksiyonları
&lt;/h1&gt;

&lt;p&gt;Low-Code pazarının büyüklüğü ve gelecekteki potansiyeli, çeşitli araştırma ve raporlarla desteklenmektedir. Aşağıdaki tablo, Low-Code'un yıllara göre büyüme tahminlerini göstermektedir.&lt;/p&gt;

&lt;p&gt;📊 Low-Code Pazar Büyüklüğü ve Büyüme Tahminleri&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Yıl ve Low-Code Pazar Büyüklüğü ($ Milyar)&lt;/th&gt;
&lt;th&gt;Büyüme Oranı&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020 10.3 Milyar&lt;/td&gt;
&lt;td&gt;%20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2023 26.9 Milyar&lt;/td&gt;
&lt;td&gt;%30&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025 45.5 Milyar&lt;/td&gt;
&lt;td&gt;%40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2030 500+ Milyar&lt;/td&gt;
&lt;td&gt;%50+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Kaynak: &lt;a href="https://kissflow.com/low-code/low-code-trends-statistics/" rel="noopener noreferrer"&gt;Kissflow - 35 Must-Know Low-Code Statistics and Facts for 2025&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• Kissflow verilerine göre, Low-Code pazarının 2025 yılına kadar 45.5 milyar dolara ulaşması gerekiyor.&lt;/p&gt;

&lt;p&gt;• Forrester Research, 2028 yılına kadar Low-Code'un 50 milyar dolarlık bir pazar haline geleceğini öngörüyor. (&lt;a href="https://www.forrester.com/blogs/the-low-code-market-could-approach-50-billion-by-2028/" rel="noopener noreferrer"&gt;Forrester&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;• Fact.MR ise 2034 yılına kadar Low-Code pazarının 241.9 milyar dolara ulaşacağını tahmin ediyor. (&lt;a href="https://www.factmr.com/report/low-code-development-market" rel="noopener noreferrer"&gt;Fact.MR&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Bu büyüme, Low-Code'un geleneksel yazılım geliştirme süreçlerine kıyasla daha &lt;u&gt;düşük maliyetli&lt;/u&gt;, &lt;u&gt;hızlı&lt;/u&gt; ve &lt;u&gt;esnek&lt;/u&gt; olması ile açıklanabilir.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Hangi Sektörler Low-Code Kullanıyor?
&lt;/h1&gt;

&lt;p&gt;Low-Code, çeşitli sektörlerde yaygın olarak kullanılmaktadır. Aşağıdaki tablo, sektörel bazda kullanım alanlarını göstermektedir.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sektör&lt;/th&gt;
&lt;th&gt;Low-Code Kullanım Alanları&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Finans &amp;amp; Bankacılık&lt;/td&gt;
&lt;td&gt;Kredi başvuru sistemleri, müşteri yönetimi, risk analizi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sağlık &amp;amp; Medikal&lt;/td&gt;
&lt;td&gt;Hasta randevu sistemleri, tıbbi veri analitiği, doktor-hasta iletişimi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E-Ticaret &amp;amp; Perakende&lt;/td&gt;
&lt;td&gt;Sipariş yönetimi, envanter kontrolü, müşteri sadakat programları&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lojistik &amp;amp; Ulaşım&lt;/td&gt;
&lt;td&gt;Tedarik zinciri yönetimi, teslimat takibi, filo yönetimi&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sigorta&lt;/td&gt;
&lt;td&gt;Poliçe yönetimi, hasar takibi, müşteri hizmetleri otomasyonu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eğitim&lt;/td&gt;
&lt;td&gt;Öğrenci bilgi sistemleri, sanal sınıflar, kurs yönetim araçları&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Kaynak: &lt;a href="https://www.grandviewresearch.com/industry-analysis/low-code-development-platform-market" rel="noopener noreferrer"&gt;Grand View Research - Low-Code Development Market Report&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• Grand View Research raporuna göre, Low-Code'un en fazla benimsenen sektörleri arasında finans, sağlık ve e-ticaret öne çıkıyor.&lt;/p&gt;

&lt;p&gt;• MarketsandMarkets, 2025 yılına kadar finans sektöründe Low-Code'un kullanım oranının %35'e ulaşacağını tahmin ediyor. (&lt;a href="https://www.marketsandmarkets.com/report-search-page.asp?rpt=low-code-development-platform-market" rel="noopener noreferrer"&gt;MarketsandMarkets&lt;/a&gt;)&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Yatırımcılar ve Şirketler İçin Low-Code’un Cazibesi
&lt;/h1&gt;

&lt;p&gt;📊 Büyük Şirketlerin Low-Code Yatırımları&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Şirket&lt;/th&gt;
&lt;th&gt;Low-Code Yatırımı&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft&lt;/td&gt;
&lt;td&gt;Power Apps ile Low-Code çözümlerini geliştiriyor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;AppSheet platformu ile No-Code ve Low-Code çözümlerine yöneliyor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon&lt;/td&gt;
&lt;td&gt;Honeycode ile Low-Code tabanlı kurumsal çözümler sunuyor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Salesforce&lt;/td&gt;
&lt;td&gt;Low-Code özelliklerini genişletmek için büyük yatırım yapıyor.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ServiceNow&lt;/td&gt;
&lt;td&gt;İş süreçlerini otomatikleştirmek için Low-Code’a yöneliyor.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;• Forrester Research, Low-Code pazarının hızla büyüdüğünü ve Microsoft Power Apps, Salesforce, OutSystems gibi büyük oyuncuların bu pazardaki etkisini artırdığını belirtiyor.&lt;/p&gt;

&lt;p&gt;• 2028 yılına kadar Low-Code pazarının 50 milyar doları aşması beklenirken, Microsoft Power Apps ve Salesforce gibi platformların bu büyümenin önemli bir kısmını yönlendireceği öngörülüyor. (&lt;a href="https://www.forrester.com/blogs/the-low-code-market-could-approach-50-billion-by-2028/" rel="noopener noreferrer"&gt;Forrester Research&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;• Bir Forrester çalışmasına göre, Microsoft Power Apps %206 yatırım getirisi (ROI) sağlıyor ve uygulama geliştirme sürelerini %50 oranında azaltıyor. (&lt;a href="https://tei.forrester.com/go/microsoft/powerappstei/" rel="noopener noreferrer"&gt;Forrester TEI Report&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;• Google, AppSheet platformunu kullanarak küçük işletmelere özel Low-Code çözümleri sunuyor.&lt;/p&gt;

&lt;p&gt;• Amazon, Honeycode ile kurumsal iş süreçlerini hızlandırmayı hedefliyor.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Low-Code ile İlgili Zorluklar ve Çözümleri
&lt;/h1&gt;

&lt;p&gt;📊 Low-Code’un Karşılaştığı Zorluklar ve Çözüm Önerileri&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Zorluk&lt;/th&gt;
&lt;th&gt;Çözüm&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Özelleştirme sınırları&lt;/td&gt;
&lt;td&gt;Gelişmiş API ve kod entegrasyonu kullanılmalı.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ölçeklenebilirlik sorunları&lt;/td&gt;
&lt;td&gt;Büyük projeler için doğru platform seçilmeli.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Güvenlik endişeleri&lt;/td&gt;
&lt;td&gt;Şirket içi güvenlik politikalarına uygun çözümler geliştirilmeli.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tek platforma bağımlılık (Vendor Lock-in)&lt;/td&gt;
&lt;td&gt;Açık kaynaklı Low-Code çözümleri veya çoklu platform destekleyen sistemler tercih edilmeli.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>lowcode</category>
      <category>nocode</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Low-Code: Geleceğin Yazılım Geliştirme Yaklaşımı</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Mon, 17 Mar 2025 11:58:07 +0000</pubDate>
      <link>https://dev.to/rumeysaoz/low-code-gelecegin-yazilim-gelistirme-yaklasimi-g3i</link>
      <guid>https://dev.to/rumeysaoz/low-code-gelecegin-yazilim-gelistirme-yaklasimi-g3i</guid>
      <description>&lt;h1&gt;
  
  
  1. Low-Code Nedir?
&lt;/h1&gt;

&lt;p&gt;Low-Code, geleneksel yazılım geliştirme süreçlerini hızlandıran ve minimum kod yazarak uygulama oluşturmayı sağlayan bir geliştirme yöntemidir. Bu yaklaşım, özellikle görsel programlama arayüzleri, sürükle-bırak bileşenleri ve önceden tanımlanmış iş akışları kullanarak yazılım oluşturmayı mümkün kılar.&lt;/p&gt;

&lt;p&gt;Low-Code, sadece profesyonel yazılım geliştiricilere değil, aynı zamanda iş analistleri, proje yöneticileri ve teknik olmayan kullanıcıların da yazılım geliştirme süreçlerine katılmasına olanak tanır. Geleneksel yazılım geliştirme süreçleri &lt;u&gt;zaman alıcı&lt;/u&gt; ve &lt;u&gt;maliyetli&lt;/u&gt; olabilirken, Low-Code bu engelleri ortadan kaldırarak &lt;u&gt;daha hızlı&lt;/u&gt;, &lt;u&gt;daha erişilebilir&lt;/u&gt; ve &lt;u&gt;daha ekonomik&lt;/u&gt; çözümler sunar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Low-Code’un Temel Özellikleri&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Görsel Geliştirme Ortamı:&lt;/strong&gt; Sürükle-bırak bileşenleri ile kullanıcı dostu arayüz tasarımı&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Otomatik Kod Üretimi:&lt;/strong&gt; Manuel kod yazımını minimuma indirir.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Hazır Entegrasyonlar:&lt;/strong&gt; Veritabanı, API, üçüncü taraf servislerle kolay bağlantı&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Hızlı Prototipleme ve Dağıtım:&lt;/strong&gt; MVP (Minimum Viable Product) geliştirmeyi hızlandırır.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Daha Kolay Güncelleme ve Bakım:&lt;/strong&gt; Kod tabanı daha basit olduğu için bakım süreci kolaylaşır.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Neden Low-Code’a İhtiyaç Var?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;1. Yazılım Geliştirme Süreçlerini Hızlandırır&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Geleneksel yazılım geliştirme süreçleri; analiz, tasarım, geliştirme, test, hata ayıklama ve dağıtım gibi aşamalardan oluşur. Bu süreçler haftalar veya aylar sürebilir.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir işletme, müşteri şikayetlerini analiz eden bir CRM (Müşteri İlişkileri Yönetimi) uygulaması geliştirmek istiyor.&lt;/p&gt;

&lt;p&gt;• Geleneksel yöntemlerle: Bu proje 6-8 ay sürebilir.&lt;/p&gt;

&lt;p&gt;• Low-Code ile: Uygulama 2-3 hafta içinde prototiplenebilir ve test edilebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Maliyetleri Düşürür&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yazılım geliştirme süreci büyük ekipler ve uzun zaman dilimleri gerektirdiğinden maliyetli olabilir. Low-Code, daha az yazılım geliştirici ile daha fazla iş yapılmasını sağlar.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir KOBİ, envanter takibi yapmak için bir web uygulaması oluşturmak istiyor.&lt;/p&gt;

&lt;p&gt;• Geleneksel yöntemle: En az 2-3 geliştirici gereklidir ve proje 5-6 ay sürebilir.&lt;/p&gt;

&lt;p&gt;• Low-Code ile: Teknik bilgisi olmayan bir iş analisti, 2-3 hafta içinde işlevsel bir sistem geliştirebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Teknik Olmayan Kullanıcıların Katılımını Artırır&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Low-Code, yalnızca yazılım geliştiricilere değil, iş analistleri, yöneticiler ve girişimcilere de yazılım oluşturma imkanı tanır.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir insan kaynakları yöneticisi, çalışan başvuru süreçlerini yönetmek için Low-Code platformunu kullanarak kendi sistemini oluşturabilir. Teknik bir ekip desteği olmadan basit bir iş akışı geliştirebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Hızlı Güncelleme ve Esneklik Sağlar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Geleneksel yazılım projelerinde yeni özellik eklemek veya hata gidermek büyük zaman ve emek gerektirir.&lt;/p&gt;

&lt;p&gt;• Low-Code platformları, sürükle-bırak arayüzleri sayesinde hızlı değişiklik yapılmasını sağlar.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir banka, müşteri portalına “Canlı Destek” butonu eklemek istiyor.&lt;/p&gt;

&lt;p&gt;• Geleneksel geliştirme süreci: Kod eklenmeli, test edilmeli, onaylanmalı ve dağıtılmalı.&lt;/p&gt;

&lt;p&gt;• Low-Code ile: Geliştirici, birkaç tıklama ile butonu ekleyebilir ve anında yayına alabilir.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Low-Code’un Gelecekteki Konumu
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;1. 2025 ve Sonrasında Low-Code Pazarının Büyümesi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• Gartner’a göre, 2025 yılına kadar yazılım projelerinin &lt;u&gt;%70’ten fazlası&lt;/u&gt; Low-Code platformlarında geliştirilecek.&lt;/p&gt;

&lt;p&gt;• Forrester Research, 2030 yılına kadar Low-Code pazarının &lt;u&gt;500 milyar doları&lt;/u&gt; aşacağını tahmin ediyor.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Büyük şirketler, Low-Code çözümlerini hızla benimsemeye başladı:&lt;/p&gt;

&lt;p&gt;• Microsoft Power Apps, Low-Code’un en büyük temsilcilerinden biri haline geldi.&lt;/p&gt;

&lt;p&gt;• Salesforce ve ServiceNow, Low-Code ile hızlı kurumsal çözümler sunuyor.&lt;/p&gt;

&lt;p&gt;• Google ve Amazon, kendi Low-Code araçlarını geliştiriyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Yapay Zeka ile Güçlü Entegrasyon&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Low-Code ve yapay zeka (AI) birleştiğinde, yazılım geliştirme süreci daha akıllı hale gelir.&lt;/p&gt;

&lt;p&gt;• AI, otomatik kod üretimi, hata ayıklama ve öneriler sunma gibi işlemleri kolaylaştırır.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir kullanıcı, “Son 6 ayda en çok satan ürünleri listele” diye bir komut verirse,&lt;/p&gt;

&lt;p&gt;• Geleneksel yöntem: SQL sorgusunu manuel yazmak gerekir.&lt;/p&gt;

&lt;p&gt;• Low-Code + AI: Yapay zeka, doğal dili analiz ederek en iyi SQL sorgusunu oluşturur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Geleneksel Yazılım Geliştirme ile İş Birliği&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Low-Code, geleneksel yazılım geliştirme süreçlerini ortadan kaldırmaz, ancak hızlandırır ve destekler.&lt;/p&gt;

&lt;p&gt;• Gelişmiş projelerde geleneksel kodlama ile birlikte kullanılabilir.&lt;/p&gt;

&lt;p&gt;• Özelleştirilmiş çözümler gerektiğinde manüel kod ekleme desteği sunar.&lt;/p&gt;

&lt;p&gt;🔹 Örnek:&lt;/p&gt;

&lt;p&gt;Bir şirket, Low-Code platformunda web uygulaması oluşturup, özel bir API entegrasyonu yapmak için manuel kod ekleyebilir.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Low-Code vs No-Code: Neden Low-Code Daha Tercih Edilmeli?
&lt;/h1&gt;

&lt;p&gt;No-Code, hiçbir kod yazmadan uygulama geliştirmenize olanak tanır. Ancak esneklik ve özelleştirme açısından yetersiz kalabilir.&lt;/p&gt;

&lt;p&gt;Özellikle büyük ölçekli projelerde veya teknik gereksinimleri karmaşık olan firmalarda No-Code yerine Low-Code tercih edilmelidir.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kriter&lt;/th&gt;
&lt;th&gt;Low-Code&lt;/th&gt;
&lt;th&gt;No-Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Özelleştirme&lt;/td&gt;
&lt;td&gt;Daha fazla özelleştirme imkanı sunar, kod ekleyerek iş mantığı geliştirilebilir.&lt;/td&gt;
&lt;td&gt;Hazır bileşenlerle sınırlıdır, kod yazılamaz.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Esneklik&lt;/td&gt;
&lt;td&gt;Karmaşık iş akışlarını destekler.&lt;/td&gt;
&lt;td&gt;Kapsamlı iş süreçleri için yetersiz kalabilir.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Büyük Kurumsal Uygulamalar&lt;/td&gt;
&lt;td&gt;Orta ve büyük ölçekli firmalar için idealdir.&lt;/td&gt;
&lt;td&gt;Küçük ve basit projeler için uygundur.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entegrasyon&lt;/td&gt;
&lt;td&gt;Harici API’ler, veri tabanları ve özel yazılım sistemleri ile kolay entegre olur.&lt;/td&gt;
&lt;td&gt;API entegrasyonu sınırlı olabilir.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geliştirici Gereksinimi&lt;/td&gt;
&lt;td&gt;Minimum kod bilgisi ile kullanılır, gerektiğinde geliştiriciler manuel kod ekleyebilir.&lt;/td&gt;
&lt;td&gt;Teknik bilgi gerektirmez ancak büyük projelerde esneklik sağlamaz.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  5. Hangi Firmalar İçin Low-Code Daha Uygun?
&lt;/h1&gt;

&lt;p&gt;Low-Code, özellikle orta ve büyük ölçekli firmalar, kurumsal şirketler ve teknik bilgiye sahip olup süreçleri hızlandırmak isteyen ekipler için uygundur.&lt;/p&gt;

&lt;p&gt;🏢 &lt;strong&gt;Kurumsal Şirketler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Büyük firmalar, daha hızlı dijital dönüşüm sağlamak ve yazılım geliştirme maliyetlerini azaltmak için Low-Code kullanabilir.&lt;/p&gt;

&lt;p&gt;🔹 Örnek: Bir banka, müşteri yönetimi ve otomasyon süreçlerini geliştirmek için Low-Code platformlarını tercih edebilir.&lt;/p&gt;

&lt;p&gt;🛒 &lt;strong&gt;E-Ticaret Şirketleri&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;E-ticaret firmaları, hızlı bir şekilde sipariş takibi, stok yönetimi ve müşteri hizmetleri için Low-Code çözümlerinden yararlanabilir.&lt;/p&gt;

&lt;p&gt;🔹 Örnek: Bir pazaryeri platformu, satıcı yönetimi için Low-Code ile hızlıca bir yönetim paneli oluşturabilir.&lt;/p&gt;

&lt;p&gt;🏥 &lt;strong&gt;Sağlık Kuruluşları&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hastaneler ve klinikler, hasta kayıtları ve randevu sistemleri gibi süreçleri Low-Code ile optimize edebilir.&lt;/p&gt;

&lt;p&gt;🔹 Örnek: Bir hastane, hasta verilerini daha kolay yönetmek için Low-Code ile özel bir dashboard oluşturabilir.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Startuplar ve KOBİ’ler&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Girişimler ve küçük işletmeler, hızlı bir şekilde ürün geliştirip test edebilmek için Low-Code kullanabilir.&lt;/p&gt;

&lt;p&gt;🔹 Örnek: Bir fintech girişimi, hızlı bir şekilde MVP geliştirmek için Low-Code kullanarak pazara erken giriş yapabilir.&lt;/p&gt;

&lt;p&gt;⚙ &lt;strong&gt;Üretim ve Lojistik Firmaları&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tedarik zinciri yönetimi ve üretim takibi süreçleri için Low-Code büyük avantaj sağlar.&lt;/p&gt;

&lt;p&gt;🔹 Örnek: Bir lojistik firması, teslimat takip sistemini hızlıca geliştirebilir.&lt;/p&gt;

</description>
      <category>lowcode</category>
      <category>ai</category>
      <category>nocode</category>
      <category>programming</category>
    </item>
    <item>
      <title>Hyperledger Caliper Kurulumu - Test Network</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Wed, 17 Jan 2024 09:05:54 +0000</pubDate>
      <link>https://dev.to/rumeysaoz/hyperledger-caliper-kurulumu-383b</link>
      <guid>https://dev.to/rumeysaoz/hyperledger-caliper-kurulumu-383b</guid>
      <description>&lt;h1&gt;
  
  
  Ön Gereksinimlerin Kurulumu
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; İlk olarak docker ve docker-compose kurulu olmalıdır. Bunun için &lt;a href="https://dev.to/aciklab/docker-ve-docker-compose-kurulumu-ubuntu-2004-3ch7"&gt;şu dökümanı&lt;/a&gt; takip edilebilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; İkinci olarak da npm kurulu olmalıdır. (npm version: 6.14.16)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Öncelikle, aşağıdaki komut ile mevcut Node modüllerini temizleyin.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo rm -rf node_modules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Daha sonra aşağıdaki komutu kullanarak NVM'yi kurun.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;NVM ortam değişkenlerini aşağıdaki komut ile tanımlayın.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export NVM_DIR="$HOME/.nvm"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;NVM'i yüklemek için  komutlarını çalıştırın.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ -s "$NVM_DIR/nvm.sh" ] &amp;amp;&amp;amp; \. "$NVM_DIR/nvm.sh" ve bash completion için [ -s "$NVM_DIR/bash_completion" ] &amp;amp;&amp;amp; \. "$NVM_DIR/bash_completion"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;.bashrc dosyasını source ~/.bashrc komutuyla yeniden yükleyin.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm install 14.19.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ve&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm use 14.19.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ile Node.js kurun ve kullanın.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Node.js versiyonunu
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;NPM versiyonunu
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm -v
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ile doğrulayın.&lt;/p&gt;

&lt;h1&gt;
  
  
  Caliper Benchmarks Kurulumu
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Hyperledger Caliper-Benchmarks Reposunun Klonlanması:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;İlk adımımız, Hyperledger Caliper için benchmark testleri içeren reposunu klonlamak. Bunun için aşağıdaki komutu kullanın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/hyperledger/caliper-benchmarks
cd caliper-benchmarks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, Caliper benchmark testleri için gerekli dosyaları içeren bir klasör oluşturur. Bu klasörü, daha önce oluşturduğunuz dizinde yer alacak şekilde ayarlayın.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Fabric Örneklerini ve Test Ağını Kullanmak:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Örnekleri indirmek için iki yol bulunmaktadır: doğrudan Git kullanarak ya da zip olarak indirme. Git ile indirmek için aşağıdaki komutu kullanabilirsiniz:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/hyperledger/fabric-samples
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hyperledger Fabric 2.4 sürümünü kurmak için, aşağıdaki adımları izleyin:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;İlk olarak, kurulum betiğini indirin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd fabric-samples
wget https://raw.githubusercontent.com/hyperledger/fabric/release-2.4/scripts/bootstrap.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ardından, indirdiğiniz betiği çalıştırarak Fabric ağınızı hazırlayın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo bash bootstrap.sh
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu adımlar, Hyperledger Fabric'ın temel bileşenlerini ve gereksinimlerini kurar ve ağınızın arka planda hazırlanmasını sağlar.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fabric-samples klasörü içerisindeki test-network dizinine gidiniz:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd test-network
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Fabric ağınızda, 'mychannel' adında bir kanal oluşturmak için şu adımları takip edin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ./network.sh up createChannel -s couchdb
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, ağınızda belirli bir kanal oluşturmanıza ve CouchDB gibi veritabanı çözümlerini entegre etmenize olanak tanır.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bu komut, Hyperledger Fabric ağınızı başlatır. İşlemlerinizi tamamladıktan sonra ağı kapatmak için aşağıdaki komutu kullanmalısınız:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo ./network.sh down
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;Caliper-Benchmarks Dizinine Geçiş ve Gerekli Kurulumlar:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Klonlama işleminden sonra, Caliper-Benchmarks dizinine geçiş yapın ve gerekli npm paketlerini yükleyin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd caliper-benchmarks
npm install --only=prod @hyperledger/caliper-cli@0.5.0 --unsafe-perm=true
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu adım, Caliper CLI'nin belirli bir versiyonunu ve gerekli bağımlılıkları kurar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Fabric 2.4 ile Bağlama İşlemi:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fabric 2.4 sürümü ile Caliper'ı bağlamak için aşağıdaki komutu kullanın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx caliper bind --caliper-bind-sut fabric:2.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu işlem, Fabric 2.4 ile uyumlu olacak şekilde Caliper'ı yapılandırır ve yeni eklenen peer-gateway servisini kullanabilir hale getirir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Go Kurulumu&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;İlk olarak, Go'nun resmi web sitesinden golang.org/dl üzerinden Go'nun son sürümünü indirin. Örneğin, go1.17.linux-amd64.tar.gz dosyasını indirin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Terminali açın ve aşağıdaki komutlarla Go'yu indirip çıkarın:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;wget https://golang.org/dl/go1.17.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GOROOT&lt;/strong&gt;, Go'nun kurulu olduğu dizindir ve bu örnekte /usr/local/go olarak belirlenmiştir. &lt;strong&gt;GOPATH&lt;/strong&gt;, Go projelerinizin ve bağımlılıklarının saklandığı yerdir ve bu örnekte /home/ubuntu/go olarak ayarlanacaktır.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bu değişkenleri ayarlamak için .profile dosyanızı düzenleyin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;echo "export GOROOT=/usr/local/go" &amp;gt;&amp;gt; ~/.profile
echo "export GOPATH=/home/ubuntu/go" &amp;gt;&amp;gt; ~/.profile
echo "export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin" &amp;gt;&amp;gt; ~/.profile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Bu ayarları uygulamak için oturumu kapatıp açın veya aşağıdaki komutu çalıştırın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.profile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Go'nun başarıyla kurulduğunu ve ortam değişkenlerinin doğru ayarlandığını doğrulamak için terminalde şu komutları çalıştırın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go version
echo $GOROOT
echo $GOPATH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komutlar, sırasıyla Go'nun sürümünü, GOROOT ve GOPATH değerlerini göstermelidir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Fabcar Chaincode'unun Dağıtımı:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fabcar, Go, Java ve JavaScript dillerinde yazılmış Hyperledger Fabric chaincode örneklerini içerir.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go versiyonunu dağıtmak için, öncelikle fabric-samples/test-network dizinine gidin. Ardından, Fabcar chaincode'un Go versiyonunu Fabric ağınıza dağıtmak için aşağıdaki komutu çalıştırın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd fabric-samples/test-network

sudo env "PATH=$PATH" ./network.sh deployCC -ccn fabcar -ccp /home/ubuntu/caliper-benchmarks/src/fabric/samples/fabcar/go/ -ccl go
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, Fabcar chaincode'unun Go versiyonunu Fabric ağınıza dağıtır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Konfigürasyon Dosyalarının Güncellenmesi ve İzin Ayarları:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;test-network.yaml&lt;/strong&gt; dosyasındaki dizinler güncellenmelidir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nano /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;clientPrivateKey:
  path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk'

clientSignedCert:
   path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/signcerts/User1@org1.example.com-cert.pem'

connectionProfile:
   path: '/home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/connection-org1.yaml'

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;İlgili dosya ve klasörlerin izinlerini düzenleyin:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 777 /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml
chmod 777 /home/ubuntu/caliper-benchmarks/benchmarks/samples/fabric/fabcar/config.yaml
sudo chmod -R 755 /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/
sudo chmod 644 /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk
sudo chown $USER /home/ubuntu/caliper-benchmarks/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/User1@org1.example.com/msp/keystore/priv_sk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;Benchmark Testlerinin Çalıştırılması:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Benchmark testlerini çalıştırmak için, caliper-benchmarks dizinine geri dönün.
Sonra aşağıdaki komutu kullanarak Caliper ile Fabcar chaincode üzerinde benchmark testlerini başlatın:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx caliper launch manager --caliper-workspace /home/ubuntu/caliper-benchmarks --caliper-networkconfig /home/ubuntu/caliper-benchmarks/networks/fabric/test-network.yaml --caliper-benchconfig /home/ubuntu/caliper-benchmarks/benchmarks/samples/fabric/fabcar/config.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, Caliper ile Fabcar chaincode'u üzerinde benchmark testlerini başlatır ve Fabric ağınızın performansını değerlendirir.&lt;/p&gt;

</description>
      <category>caliper</category>
      <category>fabric</category>
      <category>blockchain</category>
      <category>hyperledger</category>
    </item>
    <item>
      <title>Kubernetes Üzerinde Hyperledger Fabric Ağının Kurulumu ve Yönetimi</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Tue, 02 Jan 2024 11:26:17 +0000</pubDate>
      <link>https://dev.to/rumeysaoz/kubernetes-uzerinde-hyperledger-fabric-aginin-kurulumu-ve-yonetimi-27p4</link>
      <guid>https://dev.to/rumeysaoz/kubernetes-uzerinde-hyperledger-fabric-aginin-kurulumu-ve-yonetimi-27p4</guid>
      <description>&lt;p&gt;‼️ Ön Koşullar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bir önceki serideki adımların yapılmış olması gerekmektedir.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Adım 1: Gerekli Değişkenlerin Tanımlanması
&lt;/h1&gt;

&lt;p&gt;Bu adımda, Fabric ağ bileşenleri için Docker imajları ve sürümleri belirleniyor. Bu, kurulum sürecinde kullanılacak temel yapılandırma bilgileridir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PEER_IMAGE=hyperledger/fabric-peer
export PEER_VERSION=2.5.0
export ORDERER_IMAGE=hyperledger/fabric-orderer
export ORDERER_VERSION=2.5.0
export CA_IMAGE=hyperledger/fabric-ca
export CA_VERSION=1.5.6
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 2: Cluster IP'nin Alınması ve CoreDNS Konfigürasyonu
&lt;/h1&gt;

&lt;p&gt;Kubernetes cluster IP adresi alınıyor ve CoreDNS için özel bir yapılandırma yapılıyor. Bu, ağ trafiğinin yönlendirilmesi ve yönetilmesi için önemlidir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt install jq

CLUSTER_IP=$(kubectl -n istio-system get svc istio-ingressgateway -o json | jq -r .spec.clusterIP)
kubectl apply -f - &amp;lt;&amp;lt;EOF
kind: ConfigMap
apiVersion: v1
metadata:
  name: coredns
  namespace: kube-system
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        rewrite name regex (.*)\.localho\.st host.ingress.internal
        hosts {
          ${CLUSTER_IP} host.ingress.internal
          fallthrough
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 3: CA Kurulumu ve Peer Kayıtları
&lt;/h1&gt;

&lt;p&gt;Sertifika otoritesi (CA) kurulumu ve peer kayıtları yapılıyor. Bu adım, ağın güvenlik ve kimlik doğrulama mekanizmalarının temelini oluşturur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Org1:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# CA Kurulumu org1 için
kubectl hlf ca create --image=$CA_IMAGE --version=$CA_VERSION --storage-class=standard --capacity=1Gi --name=org1-ca \
    --enroll-id=enroll --enroll-pw=enrollpw --hosts=org1-ca.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabriccas.hlf.kungfusoftware.es --all

curl -k https://org1-ca.localho.st:443/cainfo

# Peerler için org1'de kullanıcı kaydı
kubectl hlf ca register --name=org1-ca --user=peer --secret=peerpw --type=peer \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org1MSP

# Peer Kurulumu org1 için
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org1MSP \
        --enroll-pw=peerpw --capacity=5Gi --name=org1-peer0 --ca-name=org1-ca.default \
        --hosts=peer0-org1.localho.st --istio-port=443


kubectl wait --timeout=180s --for=condition=Running fabricpeers.hlf.kungfusoftware.es --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org2:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# CA Kurulumu org2 için
kubectl hlf ca create --image=$CA_IMAGE --version=$CA_VERSION --storage-class=standard --capacity=1Gi --name=org2-ca \
    --enroll-id=enroll --enroll-pw=enrollpw --hosts=org2-ca.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabriccas.hlf.kungfusoftware.es --all

curl -k https://org2-ca.localho.st:443/cainfo

# Peerler için org2'de kullanıcı kaydı
kubectl hlf ca register --name=org2-ca --user=peer --secret=peerpw --type=peer \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org2MSP

# Peer Kurulumu org2 için
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org2MSP \
        --enroll-pw=peerpw --capacity=5Gi --name=org2-peer0 --ca-name=org2-ca.default \
        --hosts=peer0-org2.localho.st --istio-port=443


kubectl wait --timeout=180s --for=condition=Running fabricpeers.hlf.kungfusoftware.es --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org3:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# CA Kurulumu org3 için
kubectl hlf ca create --image=$CA_IMAGE --version=$CA_VERSION --storage-class=standard --capacity=1Gi --name=org3-ca \
    --enroll-id=enroll --enroll-pw=enrollpw --hosts=org3-ca.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabriccas.hlf.kungfusoftware.es --all

curl -k https://org3-ca.localho.st:443/cainfo

# Peerler için org3'de kullanıcı kaydı
kubectl hlf ca register --name=org3-ca --user=peer --secret=peerpw --type=peer \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org3MSP

# Peer Kurulumu org3 için
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org3MSP \
        --enroll-pw=peerpw --capacity=5Gi --name=org3-peer0 --ca-name=org3-ca.default \
        --hosts=peer0-org3.localho.st --istio-port=443


kubectl wait --timeout=180s --for=condition=Running fabricpeers.hlf.kungfusoftware.es --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org4:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# CA Kurulumu org4 için
kubectl hlf ca create --image=$CA_IMAGE --version=$CA_VERSION --storage-class=standard --capacity=1Gi --name=org4-ca \
    --enroll-id=enroll --enroll-pw=enrollpw --hosts=org4-ca.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabriccas.hlf.kungfusoftware.es --all

curl -k https://org4-ca.localho.st:443/cainfo

# Peerler için org4'de kullanıcı kaydı
kubectl hlf ca register --name=org4-ca --user=peer --secret=peerpw --type=peer \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org4MSP

# Peer Kurulumu org4 için
kubectl hlf peer create --statedb=couchdb --image=$PEER_IMAGE --version=$PEER_VERSION --storage-class=standard --enroll-id=peer --mspid=Org4MSP \
        --enroll-pw=peerpw --capacity=5Gi --name=org4-peer0 --ca-name=org4-ca.default \
        --hosts=peer0-org4.localho.st --istio-port=443


kubectl wait --timeout=180s --for=condition=Running fabricpeers.hlf.kungfusoftware.es --all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 4: Orderer Kurulumu
&lt;/h1&gt;

&lt;p&gt;İşlem sıralayıcı (orderer) bileşeninin kurulumu ve yapılandırılması gerçekleştiriliyor. Orderer, ağ üzerindeki işlemlerin düzenini ve tutarlılığını sağlar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf ca create  --image=$CA_IMAGE --version=$CA_VERSION --storage-class=standard --capacity=1Gi --name=ord-ca \
    --enroll-id=enroll --enroll-pw=enrollpw --hosts=ord-ca.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabriccas.hlf.kungfusoftware.es --all


curl -vik https://ord-ca.localho.st:443/cainfo

kubectl hlf ca register --name=ord-ca --user=orderer --secret=ordererpw \
    --type=orderer --enroll-id enroll --enroll-secret=enrollpw --mspid=OrdererMSP --ca-url="https://ord-ca.localho.st:443"

kubectl hlf ordnode create --image=$ORDERER_IMAGE --version=$ORDERER_VERSION \
    --storage-class=standard --enroll-id=orderer --mspid=OrdererMSP \
    --enroll-pw=ordererpw --capacity=2Gi --name=ord-node1 --ca-name=ord-ca.default \
    --hosts=orderer0-ord.localho.st --istio-port=443

kubectl wait --timeout=180s --for=condition=Running fabricorderernodes.hlf.kungfusoftware.es --all

kubectl get pods

openssl s_client -connect orderer0-ord.localho.st:443
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 5: Kullanıcı Kaydı
&lt;/h1&gt;

&lt;p&gt;Bu adımda, orderer ve diğer organizasyonlar için kullanıcı kayıtları yapılarak ağ üzerindeki roller ve yetkiler tanımlanıyor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orderer:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# register
kubectl hlf ca register --name=ord-ca --user=admin --secret=adminpw \
    --type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=OrdererMSP

# enroll

kubectl hlf ca enroll --name=ord-ca --namespace=default \
    --user=admin --secret=adminpw --mspid OrdererMSP \
    --ca-name tlsca  --output orderermsp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org1:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Kullanıcı Kaydı (Register)
kubectl hlf ca register --name=org1-ca --namespace=default --user=admin --secret=adminpw \
    --type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=Org1MSP

# Kayıt (Enroll)
kubectl hlf ca enroll --name=org1-ca --namespace=default \
    --user=admin --secret=adminpw --mspid Org1MSP \
    --ca-name ca --output org1msp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org2:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Kullanıcı Kaydı (Register)
kubectl hlf ca register --name=org2-ca --namespace=default --user=admin --secret=adminpw \
    --type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=Org2MSP

# Kayıt (Enroll)
kubectl hlf ca enroll --name=org2-ca --namespace=default \
    --user=admin --secret=adminpw --mspid Org2MSP \
    --ca-name ca --output org2msp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org3:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Kullanıcı Kaydı (Register)
kubectl hlf ca register --name=org3-ca --namespace=default --user=admin --secret=adminpw \
    --type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=Org3MSP

# Kayıt (Enroll)
kubectl hlf ca enroll --name=org3-ca --namespace=default \
    --user=admin --secret=adminpw --mspid Org3MSP \
    --ca-name ca --output org3msp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org4:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Kullanıcı Kaydı (Register)
kubectl hlf ca register --name=org4-ca --namespace=default --user=admin --secret=adminpw \
    --type=admin --enroll-id enroll --enroll-secret=enrollpw --mspid=Org4MSP

# Kayıt (Enroll)
kubectl hlf ca enroll --name=org4-ca --namespace=default \
    --user=admin --secret=adminpw --mspid Org4MSP \
    --ca-name ca --output org4msp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 6: Cüzdan Oluşturma
&lt;/h1&gt;

&lt;p&gt;Bu adımda, MSP (Membership Service Provider) bilgilerini içeren bir cüzdan (wallet) oluşturuluyor. Bu cüzdan, ağdaki çeşitli bileşenlerin kimlik bilgilerini güvenli bir şekilde saklar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Secret Oluşturma
kubectl create secret generic wallet --namespace=default \
        --from-file=org1msp.yaml=$PWD/org1msp.yaml \
        --from-file=org2msp.yaml=$PWD/org2msp.yaml \
        --from-file=org3msp.yaml=$PWD/org3msp.yaml \
        --from-file=org4msp.yaml=$PWD/org4msp.yaml \
        --from-file=orderermsp.yaml=$PWD/orderermsp.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 7: Ana Kanalın Oluşturulması (demo kanalı)
&lt;/h1&gt;

&lt;p&gt;Ağın ana iletişim kanalı, demo kanalı oluşturuluyor. Bu kanal, ağdaki tüm peerler ve ordererlar arasında iletişimi sağlar. Kanalın yapılandırması, ağın temel operasyonel parametrelerini belirler.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PEER_ORG_SIGN_CERT=$(kubectl get fabriccas org1-ca -o=jsonpath='{.status.ca_cert}')
export PEER_ORG_TLS_CERT=$(kubectl get fabriccas org1-ca -o=jsonpath='{.status.tlsca_cert}')
export IDENT_8=$(printf "%8s" "")
export PEER_ORG_SIGN_CERT=$(kubectl get fabriccas org2-ca -o=jsonpath='{.status.ca_cert}')
export PEER_ORG_TLS_CERT=$(kubectl get fabriccas org2-ca -o=jsonpath='{.status.tlsca_cert}')
export IDENT_8=$(printf "%8s" "")
export PEER_ORG_SIGN_CERT=$(kubectl get fabriccas org3-ca -o=jsonpath='{.status.ca_cert}')
export PEER_ORG_TLS_CERT=$(kubectl get fabriccas org3-ca -o=jsonpath='{.status.tlsca_cert}')
export IDENT_8=$(printf "%8s" "")
export PEER_ORG_SIGN_CERT=$(kubectl get fabriccas org4-ca -o=jsonpath='{.status.ca_cert}')
export PEER_ORG_TLS_CERT=$(kubectl get fabriccas org4-ca -o=jsonpath='{.status.tlsca_cert}')
export IDENT_8=$(printf "%8s" "")
export ORDERER_TLS_CERT=$(kubectl get fabriccas ord-ca -o=jsonpath='{.status.tlsca_cert}' | sed -e "s/^/${IDENT_8}/" )
export ORDERER0_TLS_CERT=$(kubectl get fabricorderernodes ord-node1 -o=jsonpath='{.status.tlsCert}' | sed -e "s/^/        /" )

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: hlf.kungfusoftware.es/v1alpha1
kind: FabricMainChannel
metadata:
  name: demo
spec:
  name: demo
  adminOrdererOrganizations:
    - mspID: OrdererMSP
  adminPeerOrganizations:
    - mspID: Org1MSP
    - mspID: Org2MSP
    - mspID: Org3MSP
    - mspID: Org4MSP
  channelConfig:
    application:
      acls: null
      capabilities:
        - V2_0
      policies: null
    capabilities:
      - V2_0
    orderer:
      batchSize:
        absoluteMaxBytes: 1048576
        maxMessageCount: 10
        preferredMaxBytes: 524288
      batchTimeout: 2s
      capabilities:
        - V2_0
      etcdRaft:
        options:
          electionTick: 10
          heartbeatTick: 1
          maxInflightBlocks: 5
          snapshotIntervalSize: 16777216
          tickInterval: 500ms
      ordererType: etcdraft
      policies: null
      state: STATE_NORMAL
    policies: null
  externalOrdererOrganizations: []
  peerOrganizations:
    - mspID: Org1MSP
      caName: "org1-ca"
      caNamespace: "default"
    - mspID: Org2MSP
      caName: "org2-ca"
      caNamespace: "default"
    - mspID: Org3MSP
      caName: "org3-ca"
      caNamespace: "default"
    - mspID: Org4MSP
      caName: "org4-ca"
      caNamespace: "default"
  identities:
    OrdererMSP:
      secretKey: orderermsp.yaml
      secretName: wallet
      secretNamespace: default
    Org1MSP:
      secretKey: org1msp.yaml
      secretName: wallet
      secretNamespace: default
    Org2MSP:
      secretKey: org2msp.yaml
      secretName: wallet
      secretNamespace: default
    Org3MSP:
      secretKey: org3msp.yaml
      secretName: wallet
      secretNamespace: default
    Org4MSP:
      secretKey: org4msp.yaml
      secretName: wallet
      secretNamespace: default
  externalPeerOrganizations: []
  ordererOrganizations:
    - caName: "ord-ca"
      caNamespace: "default"
      externalOrderersToJoin:
        - host: ord-node1
          port: 7053
      mspID: OrdererMSP
      ordererEndpoints:
        - ord-node1:7050
      orderersToJoin: []
  orderers:
    - host: ord-node1
      port: 7050
      tlsCert: |-
${ORDERER0_TLS_CERT}
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kanalın oluşturulduğu kontrol edilir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get fabricmainchannels.hlf.kungfusoftware.es
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 8: Takipçi Kanalların Oluşturulması
&lt;/h1&gt;

&lt;p&gt;Her organizasyon için takipçi kanallar oluşturuluyor. Bu kanallar, ana demo kanalına bağlı olarak çalışır ve organizasyonların kendi peerlerine özel işlemleri yönetmesine olanak tanır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Org1:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# org1 için
export IDENT_8=$(printf "%8s" "")
export ORDERER0_TLS_CERT=$(kubectl get fabricorderernodes ord-node1 -o=jsonpath='{.status.tlsCert}' | sed -e "s/^/${IDENT_8}/" )

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: hlf.kungfusoftware.es/v1alpha1
kind: FabricFollowerChannel
metadata:
  name: demo-org1msp
spec:
  anchorPeers:
    - host: org1-peer0.default
      port: 7051
  hlfIdentity:
    secretKey: org1msp.yaml
    secretName: wallet
    secretNamespace: default
  mspId: Org1MSP
  name: demo
  externalPeersToJoin: []
  orderers:
    - certificate: |
${ORDERER0_TLS_CERT}
      url: grpcs://ord-node1.default:7050
  peersToJoin:
    - name: org1-peer0
      namespace: default
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org2:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# org2 için
export IDENT_8=$(printf "%8s" "")
export ORDERER0_TLS_CERT=$(kubectl get fabricorderernodes ord-node1 -o=jsonpath='{.status.tlsCert}' | sed -e "s/^/${IDENT_8}/" )

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: hlf.kungfusoftware.es/v1alpha1
kind: FabricFollowerChannel
metadata:
  name: demo-org2msp
spec:
  anchorPeers:
    - host: org2-peer0.default
      port: 7051
  hlfIdentity:
    secretKey: org2msp.yaml
    secretName: wallet
    secretNamespace: default
  mspId: Org2MSP
  name: demo
  externalPeersToJoin: []
  orderers:
    - certificate: |
${ORDERER0_TLS_CERT}
      url: grpcs://ord-node1.default:7050
  peersToJoin:
    - name: org2-peer0
      namespace: default
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org3:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# org3 için
export IDENT_8=$(printf "%8s" "")
export ORDERER0_TLS_CERT=$(kubectl get fabricorderernodes ord-node1 -o=jsonpath='{.status.tlsCert}' | sed -e "s/^/${IDENT_8}/" )

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: hlf.kungfusoftware.es/v1alpha1
kind: FabricFollowerChannel
metadata:
  name: demo-org3msp
spec:
  anchorPeers:
    - host: org3-peer0.default
      port: 7051
  hlfIdentity:
    secretKey: org3msp.yaml
    secretName: wallet
    secretNamespace: default
  mspId: Org3MSP
  name: demo
  externalPeersToJoin: []
  orderers:
    - certificate: |
${ORDERER0_TLS_CERT}
      url: grpcs://ord-node1.default:7050
  peersToJoin:
    - name: org3-peer0
      namespace: default
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Org4:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# org4 için
export IDENT_8=$(printf "%8s" "")
export ORDERER0_TLS_CERT=$(kubectl get fabricorderernodes ord-node1 -o=jsonpath='{.status.tlsCert}' | sed -e "s/^/${IDENT_8}/" )

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: hlf.kungfusoftware.es/v1alpha1
kind: FabricFollowerChannel
metadata:
  name: demo-org4msp
spec:
  anchorPeers:
    - host: org4-peer0.default
      port: 7051
  hlfIdentity:
    secretKey: org4msp.yaml
    secretName: wallet
    secretNamespace: default
  mspId: Org4MSP
  name: demo
  externalPeersToJoin: []
  orderers:
    - certificate: |
${ORDERER0_TLS_CERT}
      url: grpcs://ord-node1.default:7050
  peersToJoin:
    - name: org4-peer0
      namespace: default
EOF
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Peer'ların kanala dahil olduğu kontrol edilir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl get fabricfollowerchannels.hlf.kungfusoftware.es
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 9: Ağ Yapılandırmasının İncelenmesi
&lt;/h1&gt;

&lt;p&gt;Burada, oluşturulan ağın genel yapılandırması inceleniyor ve network.yaml dosyası oluşturuluyor. Bu dosya, ağın yapılandırma detaylarını içerir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf inspect --output network.yaml -o Org1MSP -o Org2MSP -o Org3MSP -o Org4MSP -o OrdererMSP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 10: CA Kayıt İşlemleri
&lt;/h1&gt;

&lt;p&gt;Bu adımda, her organizasyon için CA'ya (Certificate Authority) admin kullanıcıları kaydediliyor. Bu işlem, ağın güvenliğinin temelini oluşturur.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf ca register --name=org1-ca --user=admin --secret=adminpw --type=admin \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org1MSP \
 --attributes="isAdmin=true:ecert,role=isAdmin:ecert"

kubectl hlf ca register --name=org2-ca --user=admin --secret=adminpw --type=admin \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org2MSP \
 --attributes="isAdmin=true:ecert,role=isAdmin:ecert"

kubectl hlf ca register --name=org3-ca --user=admin --secret=adminpw --type=admin \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org3MSP \
 --attributes="isAdmin=true:ecert,role=isAdmin:ecert"

kubectl hlf ca register --name=org4-ca --user=admin --secret=adminpw --type=admin \
 --enroll-id enroll --enroll-secret=enrollpw --mspid Org4MSP \
 --attributes="isAdmin=true:ecert,role=isAdmin:ecert"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 11: Kullanıcıların Kaydedilmesi
&lt;/h1&gt;

&lt;p&gt;Her organizasyon için admin kullanıcıları, CA üzerinden kaydediliyor. Bu kullanıcılar, ağ üzerinde yönetici rollerini üstlenir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf ca enroll --name=org1-ca --user=admin --secret=adminpw --mspid Org1MSP \
        --ca-name ca  --output peer-org1.yaml

kubectl hlf ca enroll --name=org2-ca --user=admin --secret=adminpw --mspid Org2MSP \
        --ca-name ca  --output peer-org2.yaml

kubectl hlf ca enroll --name=org3-ca --user=admin --secret=adminpw --mspid Org3MSP \
        --ca-name ca  --output peer-org3.yaml

kubectl hlf ca enroll --name=org4-ca --user=admin --secret=adminpw --mspid Org4MSP \
        --ca-name ca  --output peer-org4.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 12: Kullanıcıların Ağa Eklenmesi
&lt;/h1&gt;

&lt;p&gt;Kaydedilen kullanıcılar, ağa ekleniyor. Bu işlem, kullanıcıların ağ üzerindeki rollerini ve yetkilerini etkinleştirir.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf utils adduser --userPath=peer-org1.yaml --config=network.yaml --username=admin --mspid=Org1MSP

kubectl hlf utils adduser --userPath=peer-org2.yaml --config=network.yaml --username=admin --mspid=Org2MSP

kubectl hlf utils adduser --userPath=peer-org3.yaml --config=network.yaml --username=admin --mspid=Org3MSP

kubectl hlf utils adduser --userPath=peer-org4.yaml --config=network.yaml --username=admin --mspid=Org4MSP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 13: Chaincode Paketleme ve Yükleme
&lt;/h1&gt;

&lt;p&gt;Bu adımda, ağ üzerinde çalıştırılacak olan chaincode (akıllı kontrat) paketleniyor ve peerlere yükleniyor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rm code.tar.gz chaincode.tgz


export CHAINCODE_NAME=test
export CHAINCODE_LABEL=test

cat &amp;lt;&amp;lt; METADATA-EOF &amp;gt; "metadata.json"
{
    "type": "ccaas",
    "label": "${CHAINCODE_LABEL}"
}
METADATA-EOF


cat &amp;gt; "connection.json" &amp;lt;&amp;lt;CONN_EOF
{
  "address": "${CHAINCODE_NAME}:7052",
  "dial_timeout": "10s",
  "tls_required": false
}
CONN_EOF



tar cfz code.tar.gz connection.json
tar cfz chaincode.tgz metadata.json code.tar.gz
export PACKAGE_ID=$(kubectl hlf chaincode calculatepackageid --path=chaincode.tgz --language=node --label=$CHAINCODE_LABEL)
echo "PACKAGE_ID=$PACKAGE_ID"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf chaincode install --path=./chaincode.tgz \
    --config=network.yaml --language=golang --label=$CHAINCODE_LABEL --user=admin --peer=org1-peer0.default





kubectl hlf chaincode install --path=./chaincode.tgz \
    --config=network.yaml --language=golang --label=$CHAINCODE_LABEL --user=admin --peer=org2-peer0.default




kubectl hlf chaincode install --path=./chaincode.tgz \
    --config=network.yaml --language=golang --label=$CHAINCODE_LABEL --user=admin --peer=org3-peer0.default




kubectl hlf chaincode install --path=./chaincode.tgz \
    --config=network.yaml --language=golang --label=$CHAINCODE_LABEL --user=admin --peer=org4-peer0.default


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf externalchaincode sync --image=docker-hesap-adi/image:latest \
    --name=$CHAINCODE_NAME \
    --namespace=default \
    --package-id=$PACKAGE_ID \
    --tls-required=false \
    --replicas=1



kubectl hlf chaincode queryinstalled --config=network.yaml --user=admin --peer=org1-peer0.default

kubectl hlf chaincode queryinstalled --config=network.yaml --user=admin --peer=org2-peer0.default

kubectl hlf chaincode queryinstalled --config=network.yaml --user=admin --peer=org3-peer0.default

kubectl hlf chaincode queryinstalled --config=network.yaml --user=admin --peer=org4-peer0.default
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 13: Chaincode Onayı
&lt;/h1&gt;

&lt;p&gt;Her organizasyon için chaincode'u onaylayın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export SEQUENCE=1
export VERSION="1.0"
kubectl hlf chaincode approveformyorg --config=network.yaml --user=admin --peer=org1-peer0.default \
    --package-id=$PACKAGE_ID \
    --version "$VERSION" --sequence "$SEQUENCE" --name=test \
    --policy="OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member', 'Org4MSP.member')" --channel=demo

kubectl hlf chaincode approveformyorg --config=network.yaml --user=admin --peer=org2-peer0.default \
    --package-id=$PACKAGE_ID \
    --version "$VERSION" --sequence "$SEQUENCE" --name=test \
    --policy="OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member', 'Org4MSP.member')" --channel=demo

kubectl hlf chaincode approveformyorg --config=network.yaml --user=admin --peer=org3-peer0.default \
    --package-id=$PACKAGE_ID \
    --version "$VERSION" --sequence "$SEQUENCE" --name=test \
    --policy="OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member', 'Org4MSP.member')" --channel=demo

kubectl hlf chaincode approveformyorg --config=network.yaml --user=admin --peer=org4-peer0.default \
    --package-id=$PACKAGE_ID \
    --version "$VERSION" --sequence "$SEQUENCE" --name=test \
    --policy="OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member', 'Org4MSP.member')" --channel=demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Adım 14: Chaincode Commit İşlemi
&lt;/h1&gt;

&lt;p&gt;Chaincode, ağdaki her organizasyon tarafından onaylanıyor ve ardından ana kanala commit ediliyor. Bu, chaincode'un ağ üzerinde aktif hale gelmesini sağlar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;kubectl hlf chaincode commit --config=network.yaml --user=admin --mspid=Org1MSP \
    --version "$VERSION" --sequence "$SEQUENCE" --name=test \
    --policy="OR('Org1MSP.member', 'Org2MSP.member', 'Org3MSP.member', 'Org4MSP.member')" --channel=demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>hyperledger</category>
      <category>fabric</category>
      <category>kubernetes</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Kubernetes Üzerinde Hyperledger Fabric Ağının Kurulumu</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Tue, 02 Jan 2024 11:26:10 +0000</pubDate>
      <link>https://dev.to/rumeysaoz/kubernetes-uzerinde-hyperledger-fabric-aginin-kurulumu-ve-yonetimi-43o6</link>
      <guid>https://dev.to/rumeysaoz/kubernetes-uzerinde-hyperledger-fabric-aginin-kurulumu-ve-yonetimi-43o6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Not:&lt;/strong&gt; Bu rehberde belirttiğim komutların ve yapılandırmaların doğrudan çalışması için gerekli olan portların (80 ve 443) kullanılmadığından emin olun. Eğer bu portlar zaten kullanılıyorsa, bu rehber çalışmayacaktır.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Docker Kurulumu
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo nano /etc/fstab


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjy75mttqzm3rbxuhwe2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjy75mttqzm3rbxuhwe2.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo swapoff -a


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo tee /etc/modules-load.d/containerd.conf &amp;lt;&amp;lt;EOF
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

sudo tee /etc/sysctl.d/kubernetes.conf&amp;lt;&amp;lt;EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Docker'ın Apt Deposunu Kurma:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bir makinede ilk defa Docker Engine'i kurmadan önce Docker deposunu kurmanız gerekmektedir. Bu işlemden sonra Docker'ı bu depodan kurabilir ve güncelleyebilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;1. Docker'ın Apt Deposunu Ayarlama:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;a. Docker'ın resmi GPG anahtarını ekleyin:&lt;/p&gt;

&lt;p&gt;Bu anahtar, Docker paketlerinin doğrulamasında kullanılır.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Yukarıdaki komutlar, Docker'ın resmi anahtarını eklemek için gereken bazı paketleri kurar.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo install -m 0755 -d /etc/apt/keyrings


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komutla /etc/apt/keyrings adında bir dizin oluşturulur.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komut, Docker'ın resmi GPG anahtarını indirir ve /etc/apt/keyrings/docker.gpg adlı bir dosyada saklar.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo chmod a+r /etc/apt/keyrings/docker.gpg


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komut, oluşturduğunuz anahtar dosyasının okunabilir olduğundan emin olmak için gerekli izinleri ayarlar.&lt;/p&gt;

&lt;p&gt;b. Deposu Apt kaynaklarına ekleyin:&lt;br&gt;
Bu, Docker'ın resmi depo adresini sisteminize ekler.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release &amp;amp;&amp;amp; echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komut, sisteminizin mimarisine ve sürümüne göre Docker deposunu ekler.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get update


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komut, depo bilgilerini günceller.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;2. Docker Paketlerini Kurma:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;a. En Son Sürümü Kurma:&lt;/p&gt;

&lt;p&gt;Eğer Docker'ın en son sürümünü kurmak istiyorsanız, aşağıdaki komutu çalıştırın:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu komut, Docker'ın en son sürümünü, Docker CLI'yi (Komut Satırı Arayüzü), containerd.io'yu ve bazı eklentileri kurar.&lt;/p&gt;

&lt;p&gt;Bu adımların hepsini takip ederek Docker'ı Ubuntu sisteminize başarıyla kurmuş olacaksınız.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. KinD Kurulumu
&lt;/h1&gt;

&lt;p&gt;&lt;u&gt;Linux için:&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;AMD64 / x86_64 için:&lt;/p&gt;

&lt;p&gt;Bu komut, mevcut makinenizin mimarisinin x86_64 (genelde modern bilgisayarlar için) olup olmadığını kontrol eder. Eğer öyleyse, kind adlı dosyayı belirtilen URL'den indirir.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

[ $(uname -m) = x86_64 ] &amp;amp;&amp;amp; curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;İndirilen kind dosyasını çalıştırılabilir yapmak için:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

chmod +x ./kind


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Son olarak, kind dosyasını global olarak erişilebilir bir konuma taşıyın:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo mv ./kind /usr/local/bin/kind


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

curl -LO "https://dl.k8s.io/release/v1.23.5/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv ./kubectl /usr/local/bin/


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu adımları takip ederek kind ve kubectl'i Linux sisteminize başarıyla kurmuş olacaksınız.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Kubernetes Kümesini Oluşturma
&lt;/h1&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

cat &amp;lt;&amp;lt; EOF &amp;gt; kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  image: kindest/node:v1.25.8
  extraPortMappings:
  - containerPort: 30949
    hostPort: 80
  - containerPort: 30950
    hostPort: 443
EOF



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Yukarıda verdiğiniz kind-config.yaml dosyasını kullanarak Kubernetes kümesini oluşturabilirsiniz. Eğer bu dosya zaten oluşturulmuşsa, aşağıdaki komutu çalıştırarak kümeyi başlatın:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

kind create cluster --config=./kind-config.yaml


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
  
  
  4. Helm Kurulumu
&lt;/h1&gt;

&lt;p&gt;Helm, Kubernetes için bir paket yöneticisidir.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Daha sonra belirttiğiniz Helm depo adresini ekleyin ve operatörü yükleyin:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

helm repo add kfs https://kfsoftware.github.io/hlf-helm-charts --force-update
helm install hlf-operator kfs/hlf-operator --version=1.9.0


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Bu adımların ardından, Fabric için Kubernetes operatörü kurulmuş olacaktır. Operatörün doğru bir şekilde kurulduğunu kontrol etmek için:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

kubectl get pods


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;komutunu çalıştırarak hlf-operator pod'unun çalışıp çalışmadığını kontrol edebilirsiniz. Ayrıca, CRD'lerin doğru bir şekilde kurulup kurulmadığını kontrol etmek için:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

kubectl get crds | grep hlf.kungfusoftware.es


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;komutunu çalıştırabilirsiniz. Bu, Fabric ile ilgili CRD'lerin listesini döndürecektir.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Kubectl ve Krew Kurulumu
&lt;/h1&gt;

&lt;p&gt;Krew, kubectl için bir eklenti yöneticisidir.&lt;/p&gt;

&lt;p&gt;Öncelikle kubectl kurmalısınız:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Sonra Krew'i kurabilirsiniz:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

(
  set -x; cd "$(mktemp -d)" &amp;amp;&amp;amp;
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &amp;amp;&amp;amp;
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &amp;amp;&amp;amp;
  KREW="krew-${OS}_${ARCH}" &amp;amp;&amp;amp;
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/download/v0.4.4/krew-linux_amd64.tar.gz" &amp;amp;&amp;amp;
  tar zxvf "${KREW}.tar.gz" &amp;amp;&amp;amp;
  ./"${KREW}" install krew
)


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Eklentiyi kurun:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


kubectl krew install hlf


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h1&gt;
  
  
  6. Istio Kurulumu
&lt;/h1&gt;

&lt;p&gt;Öncelikle Istio'nun ikili dosyalarını indirin:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.16.1 TARGET_ARCH=x86_64 sh -
export PATH="$PATH:$PWD/istio-1.16.1/bin"
istioctl install --set profile=default -y
kubectl get svc -n istio-system
kubectl get pods -n istio-system


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Kubernetes'e Istio'yu yüklemek için:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

kubectl create namespace istio-system

istioctl operator init

kubectl apply -f - &amp;lt;&amp;lt;EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: istio-gateway
  namespace: istio-system
spec:
  addonComponents:
    grafana:
      enabled: false
    kiali:
      enabled: false
    prometheus:
      enabled: false
    tracing:
      enabled: false
  components:
    ingressGateways:
      - enabled: true
        k8s:
          hpaSpec:
            minReplicas: 1
          resources:
            limits:
              cpu: 500m
              memory: 512Mi
            requests:
              cpu: 100m
              memory: 128Mi
          service:
            ports:
              - name: http
                port: 80
                targetPort: 8080
                nodePort: 30949
              - name: https
                port: 443
                targetPort: 8443
                nodePort: 30950
            type: NodePort
        name: istio-ingressgateway
    pilot:
      enabled: true
      k8s:
        hpaSpec:
          minReplicas: 1
        resources:
          limits:
            cpu: 300m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi
  meshConfig:
    accessLogFile: /dev/stdout
    enableTracing: false
    outboundTrafficPolicy:
      mode: ALLOW_ANY
  profile: default

EOF


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>kubernetes</category>
      <category>docker</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Oracle-Linux 8'de Chronyd ile NTP İstemcisi Yapılandırma</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Thu, 14 Sep 2023 04:49:41 +0000</pubDate>
      <link>https://dev.to/aciklab/oracle-linux-8de-chronyd-ile-ntp-istemcisi-yapilandirma-1p6f</link>
      <guid>https://dev.to/aciklab/oracle-linux-8de-chronyd-ile-ntp-istemcisi-yapilandirma-1p6f</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Chronyd Servisinin Yüklenmesi ve Etkinleştirilmesi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Öncelikle, chronyd servisinin yüklü olup olmadığını kontrol edin. Eğer yüklü değilse, yükleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo dnf install chrony
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Servisi etkinleştirin ve başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable --now chronyd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Chrony Konfigürasyon Dosyasının Düzenlenmesi:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Özel bir NTP sunucusu kullanmak için, chrony konfigürasyon dosyasını düzenleyin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/chrony.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dosyada, aşağıdaki gibi bir veya birden fazla server veya pool satırı ekleyin (örneğin "ntp.ulakbim.gov.tr"):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server ntp.ulakbim.gov.tr iburst
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;İsterseniz IP adresi de kullanabilirsiniz. iburst opsiyonu, zaman senkronizasyonunu hızlandırmak için kullanılır.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chronyd Servisini Yeniden Başlatma:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Konfigürasyon dosyasını düzenledikten sonra, servisi yeniden başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart chronyd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Senkronizasyon Durumunu Kontrol Etme:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;chronyc komutunu kullanarak senkronizasyon durumunu kontrol edebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chronyc tracking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, senkronizasyon durumu hakkında detaylı bilgi verecektir.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Güvenlik Duvarı Ayarları:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eğer güvenlik duvarı etkinse, NTP trafiğine izin vermeniz gerekebilir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo firewall-cmd --add-service=ntp --permanent
sudo firewall-cmd --reload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Senronizasyon Durumunu Doğrulama:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;timedatctl komutunu kullanarak NTP servisinin aktif olup olmadığı kontrol edebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;timedatectl
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvolwg7s0ck66vsec5ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvolwg7s0ck66vsec5ow.png" alt="Image description" width="372" height="37"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ubuntu 22.04 - Using NTP and Disabling It</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Fri, 11 Aug 2023 11:29:16 +0000</pubDate>
      <link>https://dev.to/openlab/ubuntu-2204-using-ntp-and-disabling-it-31f1</link>
      <guid>https://dev.to/openlab/ubuntu-2204-using-ntp-and-disabling-it-31f1</guid>
      <description>&lt;h1&gt;
  
  
  1. Configuring NTP with Netplan
&lt;/h1&gt;

&lt;p&gt;Netplan is a tool used for network configuration management on Ubuntu. You can use Netplan to control the use of NTP over DHCP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.1. Opening the Netplan Configuration File:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Netplan configuration file is usually found under the /etc/netplan/ directory. To edit this file, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/netplan/00-installer-config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;1.2. Adding NTP Settings:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the opened file, you can prevent NTP from being used over DHCP by adding the following configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;network&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;ethernets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ens18&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="c1"&gt;# This should be changed according to your network adapter's name.&lt;/span&gt;
      &lt;span class="na"&gt;renderer&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;networkd&lt;/span&gt;
      &lt;span class="na"&gt;dhcp4&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
      &lt;span class="na"&gt;dhcp4-overrides&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;use-ntp&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
  &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save your changes and exit the file.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Applying the Configuration
&lt;/h1&gt;

&lt;p&gt;To apply the configuration, run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;netplan apply
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will activate the changes you made.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Default Usage of NTP
&lt;/h1&gt;

&lt;p&gt;By default, Ubuntu has DHCP set to use NTP. However, in certain situations, you may want to disable this feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.1. Default Usage of NTP over DHCP:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By default in Netplan, DHCP is set to use NTP with the &lt;u&gt;&lt;strong&gt;use-ntp: true&lt;/strong&gt;&lt;/u&gt; setting. However, if you want to disable this feature, you need to set the &lt;u&gt;&lt;strong&gt;use-ntp: false&lt;/strong&gt;&lt;/u&gt; value under &lt;strong&gt;dhcp4-overrides&lt;/strong&gt;. This has been shown in the configuration mentioned above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REFERENCES:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://netplan.readthedocs.io/en/latest/netplan-yaml/"&gt;https://netplan.readthedocs.io/en/latest/netplan-yaml/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v2.html"&gt;https://cloudinit.readthedocs.io/en/latest/reference/network-config-format-v2.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ubuntu</category>
      <category>ntp</category>
      <category>timedatectl</category>
      <category>netplan</category>
    </item>
    <item>
      <title>Ubuntu 22.04'te systemd-timesyncd ile NTP İstemcisi Yapılandırma</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Thu, 10 Aug 2023 12:31:45 +0000</pubDate>
      <link>https://dev.to/aciklab/ubuntu-2204te-systemd-timesyncd-ile-ntp-istemcisi-yapilandirma-3d3k</link>
      <guid>https://dev.to/aciklab/ubuntu-2204te-systemd-timesyncd-ile-ntp-istemcisi-yapilandirma-3d3k</guid>
      <description>&lt;p&gt;Birçok modern Linux dağıtımı, ağ zaman senkronizasyonunu yönetmek için &lt;strong&gt;systemd-timesyncd&lt;/strong&gt; servisini kullanır. &lt;/p&gt;

&lt;h1&gt;
  
  
  1. systemd-timesyncd Servis Durumunu Kontrol Etme:
&lt;/h1&gt;

&lt;p&gt;Öncelikle, servisin çalışıp çalışmadığını kontrol edin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status systemd-timesyncd 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  2. NTP Sunucusunun Ayarlanması:
&lt;/h1&gt;

&lt;p&gt;Varsayılan olarak, systemd-timesyncd Ubuntu'nun NTP sunucularını kullanacaktır. Ancak özel bir NTP sunucusu kullanmak istiyorsanız:&lt;/p&gt;

&lt;p&gt;Yapılandırma dosyasını açın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /etc/systemd/timesyncd.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dosyanın sonuna aşağıdaki satırı ekleyin. Bu örnekte "ntp.ulakbim.gov.tr" adlı NTP sunucusunu kullanıyoruz (NTP Server IP'si de girilebilir.):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NTP=ntp.ulakbim.gov.tr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  3. Servisi Yeniden Başlatma:
&lt;/h1&gt;

&lt;p&gt;Yapılandırmayı tamamladıktan sonra, değişikliklerin etkili olması için systemd-timesyncd servisini yeniden başlatın:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl restart systemd-timesyncd 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  4. Senkronizasyon Durumunu Kontrol Etme:
&lt;/h1&gt;

&lt;p&gt;timedatectl komutu ile NTP senkronizasyonunun durumunu kontrol edebilirsiniz:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;timedatectl timesync-status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu komut, istemcinin NTP sunucusuyla olan senkronizasyon durumu hakkında ayrıntılı bilgi verecektir.&lt;/p&gt;

</description>
      <category>ubuntu</category>
      <category>ntp</category>
      <category>timesyncd</category>
      <category>timedatectl</category>
    </item>
    <item>
      <title>Miço - Kapsamlı Rapor Nasıl Hazırlanır?</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Mon, 17 Jul 2023 05:29:14 +0000</pubDate>
      <link>https://dev.to/aciklab/mico-kapsamli-rapor-nasil-hazirlanir-2moj</link>
      <guid>https://dev.to/aciklab/mico-kapsamli-rapor-nasil-hazirlanir-2moj</guid>
      <description>&lt;h1&gt;
  
  
  1. SQL Sorgusu Oluşturma
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Miço veritabanındaki veriler kullanılarak rapor oluşturmak üzere SQL sorgusu yazılır.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Örnek:&lt;/strong&gt; Veritabanındaki makinelerin sertifikaları hakkında bir sorgu oluşturulur:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;select 
    m.id 
    , m.hostname
    , c.subject
from certificates c inner join machines m  on c.machine_id = m.id;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Bu SQL sorgusu, "certificates" ve "machines" isimli iki tabloyu birleştirir. Bu birleştirme, "certificates" tablosundaki "machine_id" ve "machines" tablosundaki "id" alanlarının eşleşmesine dayanır.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sorgu sonucunda, her bir sertifikanın konusunu ("subject"), ilgili makinenin kimliğini ("id") ve adını ("hostname") elde ediyoruz. Bu, belirli bir sertifikaya karşılık gelen makinenin bilgilerini görmemizi sağlar.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  2. SQL Sorgusunu YAML Dosyasına Çevirme
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;hasjoin:&lt;/strong&gt; SQL sorgusunda birden fazla tablo kullanılıp kullanılmayacağını belirtir. Eğer true ise, SQL sorgusunda birleştirme (JOIN) işlemi gerçekleştirilecektir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;hascondition:&lt;/strong&gt; SQL sorgusunda bir veya daha fazla filtreleme (WHERE) koşulu olup olmayacağını belirtir. Eğer true ise, conditions bölümünde belirtilen koşullar kullanılacaktır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;name:&lt;/strong&gt; Raporun adıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;description:&lt;/strong&gt; Raporun genel açıklamasıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;supportedos:&lt;/strong&gt; Raporun hangi işletim sistemlerini desteklediğini belirtir. Bu değer all, linux, windows gibi seçenekler olabilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;author:&lt;/strong&gt; Raporu oluşturan kişi veya kuruluşun adıdır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;group:&lt;/strong&gt; SQL sorgusunda GROUP BY kullanılarak gruplandırma yapılacak sütunları belirtir. Gruplandırma, belirli bir sütundaki benzersiz değerlere göre sonuçları toplar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;category:&lt;/strong&gt; Raporun hangi kategorilere ait olduğunu belirtir. Bu alan birden fazla değer içerebilir ve genellikle raporları sınıflandırmak için kullanılır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;selectcolumns:&lt;/strong&gt; SQL sorgusunda SELECT ile seçilen sütunları belirtir. Bu sütunlar, sonuçta gösterilecek olan sütunlardır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;tables:&lt;/strong&gt; SQL sorgusunda FROM ifadesinde kullanılan tabloları belirtir. name tablo adını, pkcolumn birincil anahtar sütununu, isprimary ise hangi tablonun ana tablo olduğunu belirtir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;logicoperators:&lt;/strong&gt; SQL sorgusundaki koşulları birleştiren mantıksal operatörleri belirtir. Genellikle AND ve OR operatörleri kullanılır.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;conditions:&lt;/strong&gt; SQL sorgusundaki WHERE ifadesinde kullanılan koşulları belirtir. type karşılaştırma tipini (like, =, !=, &amp;lt;, &amp;gt;, etc.), table ve column koşulun hangi tablo ve sütunda uygulanacağını, variable ise karşılaştırılacak değeri belirtir.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Örnek olarak verilen SQL sorgusunu YAML formatına çevirirsek, şu şekilde gözükecektir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;hasjoin: true
hascondition: false
name: Sertifikalar
description: This template creates an report about machines certificates.
supportedos: all
author: HAVELSAN A.Ş.
group:
    - machines.hostname
    - machines.os_name
    - machines.ip_addr
    - certificates.subject
category:
    - general
selectcolumns:
    - machines.hostname
    - machines.os_name
    - machines.ip_addr
    - certificates.subject
tables:
    - name: certificates
      pkcolumn: id
      isprimary: true
    - name: machines
      pkcolumn: machine_id
      isprimary: false
logicoperators:
    - AND
    - OR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;"Sertifikalar" adı verilen bir rapor oluşturulacak ve bu rapor, makine sertifikiları hakkında bilgi içerecek.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Bu YAML dosyasının, daha önceki SQL sorgusuna şu şekilde karşılık gelir:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ &lt;strong&gt;name&lt;/strong&gt;, &lt;strong&gt;description&lt;/strong&gt;, &lt;strong&gt;supportedos&lt;/strong&gt;, &lt;strong&gt;author&lt;/strong&gt; ve &lt;strong&gt;category&lt;/strong&gt; alanları, raporun meta verilerini tanımlar. Bu, sorguyla doğrudan ilgili olmayabilir ancak raporun kim tarafından oluşturulduğu,hangi işletim sistemlerini desteklediği ve hangi kategorilere ait olduğu gibi bilgiler içerir.&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;group&lt;/strong&gt; ve &lt;strong&gt;setcolumns&lt;/strong&gt; alanları, SQL sorgusundaki SELECT ifadesine karşılık gelir. Bu alanlar, raporun hangi sütunları içereceğini belirtir.&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;tables&lt;/strong&gt; alanı, SQL sorgusundaki FROM ve INNER JOIN ifadelerine karşılık gelir. Bu alan, hangi tabloların sorguda kullanılacağını ve bu tabloların hangi sütunlarının primary key olduğunu belirtir. isprimary değeri, hangi tablonun ana tablo olduğunu belirtir. true olan tablo ana tablodur ve false olan tablo ile birleştirilir.&lt;/p&gt;

&lt;p&gt;→ &lt;strong&gt;logicoperators&lt;/strong&gt; alanı, SQL sorgusundaki koşul operatörlerini belirtir (AND, OR).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Miço Eklentisi - "mico" ile Başlayan Makineleri Dinamik Koleksiyona Ekleme</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Fri, 14 Jul 2023 11:01:35 +0000</pubDate>
      <link>https://dev.to/aciklab/mico-eklentisi-mico-ile-baslayan-makineleri-dinamik-koleksiyona-ekleme-3dla</link>
      <guid>https://dev.to/aciklab/mico-eklentisi-mico-ile-baslayan-makineleri-dinamik-koleksiyona-ekleme-3dla</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Liman arayüzü açılır.&lt;/li&gt;
&lt;li&gt;Menüye girilir.&lt;/li&gt;
&lt;li&gt;Menüde sunucunun alt başlıklarında bulunan &lt;u&gt;MİÇO&lt;/u&gt; eklentisinin içine girilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YÖNETİM&lt;/strong&gt; sekmesine girilir.&lt;/li&gt;
&lt;li&gt;Miço client'ların listelendiği görüntülenir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;Örnek:&lt;/u&gt; &lt;strong&gt;mico-client,liman1, mico-server.deren.domain&lt;/strong&gt; hostnamelerine sahip 3 tane client listelenmiştir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fir9emoh56pqhsalfn35e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fir9emoh56pqhsalfn35e.png" alt="Image description" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ekranın solunda bulunan &lt;strong&gt;Tümü&lt;/strong&gt; butonunun sağındaki üç noktaya tıklanır.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c2erf9r85soqobfcxdw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3c2erf9r85soqobfcxdw.png" alt="Image description" width="440" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Koleksiyon Oluştur&lt;/strong&gt; butonuna tıklanır.&lt;/li&gt;
&lt;li&gt;Gelen ekranda Koleksiyon ismi ve filtre girilerek dinamik koleksiyon oluşturulur.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4vt8cgm6bb0dglo73bc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4vt8cgm6bb0dglo73bc.png" alt="Image description" width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Örnek:&lt;/u&gt; &lt;strong&gt;Koleksiyon ismi:&lt;/strong&gt; Dinamik Koleksiyon, &lt;strong&gt;Filtre:&lt;/strong&gt; devmanager_general, &lt;strong&gt;ALAN:&lt;/strong&gt; Hostname, &lt;strong&gt;İŞLEM:&lt;/strong&gt; Başlar ve &lt;strong&gt;DEĞER:&lt;/strong&gt; mico seçilir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmny0nq45b9kr9o0y254s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmny0nq45b9kr9o0y254s.png" alt="Image description" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OK&lt;/strong&gt; butonuna tıklanır ve Dinamik Koleksiyon isimli dinamik koleksiyon oluşturulmuş olur.&lt;/li&gt;
&lt;li&gt;OLuşturulan koleksiyonun üzerine tıklanır.&lt;/li&gt;
&lt;li&gt;Görselde de görüldüğü üzere "mico" ile başlayan 2 client da koleksiyone eklenmiş olur. liman1 adlı client ise &lt;strong&gt;mico&lt;/strong&gt; ile başlamadığı için koleksiyonda bulunmaz.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F135dzcshdz4sgigjunu8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F135dzcshdz4sgigjunu8.png" alt="Image description" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Liman Loglarının Arayüz Üzerinden Log sunucusuna Yönlendirilmesi</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Fri, 14 Jul 2023 10:43:55 +0000</pubDate>
      <link>https://dev.to/aciklab/liman-loglarinin-arayuz-uzerinden-log-sunucusuna-yonlendirilmesi-5em5</link>
      <guid>https://dev.to/aciklab/liman-loglarinin-arayuz-uzerinden-log-sunucusuna-yonlendirilmesi-5em5</guid>
      <description>&lt;h1&gt;
  
  
  1. Rsyslog Sunucusu Kurulumu
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Öncelikle Liman loglarını alacak sunucu, syslog log alabilecek şekilde yapılandırılmış olmalıdır. Bu log sunucusu ihtiyacı için açık kaynak kodlu rsyslog sunucusu kurulması gereklidir.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;/etc/rsyslog.conf&lt;/strong&gt; dizinine gidilir ve şu ayarlar eklenir:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/rsyslog.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;UDP Protokolü kullanılacaksa:&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module(load="imudp")
input(type="imudp" port="514")

*.* /home/ubuntu/liman1.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;TCP Protokolü kullanılacaksa:&lt;/u&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;module(load="imtcp")
input(type="imtcp" port="514")

*.* /home/ubuntu/liman1.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Gelen logun yazılacağı klasöre okuma yetkisi verilmeli, sırasıyla şu komutlar girilir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 &lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 &lt;span class="k"&gt;*&lt;/span&gt; ubuntu
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Ardından rsyslog servisi yeniden başlatılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl restart rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Servisin statusüne bakılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl status rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Eğer çıktı şu şekilde gözüküyorsa:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdwbe2xzdm1sdi01up5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdwbe2xzdm1sdi01up5k.png" alt="Image description" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Konfigürasyon dosyasına yeniden gidilir ve şu satırlar yoruma alınır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Daha sonra servis yeniden başlatılıp statusüne bakılır ve uyarının gittiği görüntülenir:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4f3u1jpqc9s7yd7uu1r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4f3u1jpqc9s7yd7uu1r.png" alt="Image description" width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Liman Loglarını Arayüzden Yönlendirme
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Liman arayüzü açılır.&lt;/li&gt;
&lt;li&gt;Menüye girilir.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sistem Ayarları&lt;/strong&gt; butonuna tıklanır.&lt;/li&gt;
&lt;li&gt;Gelen sayfada &lt;strong&gt;Log Yönlendirme&lt;/strong&gt; sekmesine girilir.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46gckawkzcizgj2c6art.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46gckawkzcizgj2c6art.png" alt="Image description" width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sunucu Adresi:&lt;/strong&gt; Liman loglarını yönlendirmek istediğimiz rsyslog sunucusunun IP adresi girilir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sunucu Portu:&lt;/strong&gt; Hangi port kullanılacağı seçilir. (varsayılan port = 514)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bağlantı Türü:&lt;/strong&gt; Protokol seçilir. (UDP veya TCP)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06ovw3zrqa2w2n7qvxt6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06ovw3zrqa2w2n7qvxt6.png" alt="Image description" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Yeşil &lt;strong&gt;Ayarları Kaydet&lt;/strong&gt; butonuna tıklanır.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;/etc/rsyslog.d/liman.conf&lt;/strong&gt; dizinine gidilir ve konfigürasyonun yapıldığı görüntülenir:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/rsyslog.d/liman.conf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1pq9v4o3j2shsjd1bey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1pq9v4o3j2shsjd1bey.png" alt="Image description" width="800" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ardından rsyslog servisi yeniden başlatılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl restart rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Servisin statusüne bakılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl status rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5icdoaiqkakgc3diwwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc5icdoaiqkakgc3diwwq.png" alt="Image description" width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log dosyalarının olmadığına dair hatalar alındığı görülecektir. Bu durum dosya izinleri olmadığından kaynaklanmaktadır.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Liman loglarının yani okunacak log dosyasının bulunduğu klasöre okuma yetkisi verilmeli, sırasıyla şu komutlar girilir:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /liman/logs/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 &lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod &lt;/span&gt;755 &lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Yetkiler düzenlendikten sonra servisin statusüne bakıldığında hataların düzeldiği görülecektir:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbe2n053rsmzxoppzzflz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbe2n053rsmzxoppzzflz.png" alt="Image description" width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Gelen Logları Görüntüleme
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Log alan makinede de sırasıyla şu komutlar çalıştırılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl restart rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;systmectl status rsyslog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Daha sonra şu komut çalıştırılır ve log dosyasının düştüğü görüntülenir:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt; /home/ubuntu/liman1.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht6bynxnq1bu84qvq44a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fht6bynxnq1bu84qvq44a.png" alt="Image description" width="800" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Log dosyasının içeriğini görebilmek adına şu komut çalıştırılır:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;tail&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt; /home/ubuntu/liman1.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Son olarak Liman arayüzünde çıkış-giriş ve gezinme yaptıkça logların düştüğü görüntülenir:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm726bnk7nfjf7etu3d0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frm726bnk7nfjf7etu3d0.png" alt="Image description" width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>log</category>
      <category>linux</category>
      <category>liman</category>
      <category>rsyslog</category>
    </item>
    <item>
      <title>Linux'ta TCPDump ve Wireshark Kullanarak Ağ Trafik Analizi</title>
      <dc:creator>Rümeysa Öz</dc:creator>
      <pubDate>Wed, 12 Jul 2023 11:04:57 +0000</pubDate>
      <link>https://dev.to/aciklab/linuxta-tcpdump-ve-wireshark-kullanarak-ag-trafik-analizi-55po</link>
      <guid>https://dev.to/aciklab/linuxta-tcpdump-ve-wireshark-kullanarak-ag-trafik-analizi-55po</guid>
      <description>&lt;p&gt;Linux'ta TCPDump ve Wireshark kullanarak ağ trafiğini analiz etmek, veri iletimini izlemenin ve ağ hatalarını veya güvenlik ihlallerini belirlemenin etkili bir yoludur.&lt;/p&gt;

&lt;h1&gt;
  
  
  Wireshark ile Paket Analizi
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Wireshark Kurulumu&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Debian tabanlı dağıtımlarda Wireshark'ı yüklemek için aşağıdaki komutları kullanabilirsiniz:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo apt-get update
sudo apt-get install wireshark


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Red Hat tabanlı dağıtımlarda ise şu komutları kullanabilirsiniz:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

sudo yum install wireshark


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Wireshark Kullanımı&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Wireshark'ı başlattıktan sonra, TCPDump ile oluşturulan veya herhangi bir şekilde erişilebilinen .pcap dosyasını açabilirsiniz. "File" menüsünden "Open" seçeneğini tıklayın ve .pcap dosyanızı bulun.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6uk18mkzljyw5loko31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi6uk18mkzljyw5loko31.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dosyayı açtıktan sonra, paketlerin listesini ve her bir paketin detaylarını görürsünüz. Bir paket seçtiğinizde, paketin ayrıntıları alt panellerde görünür.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e822gktsd8iwu89ghv5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e822gktsd8iwu89ghv5.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wireshark ayrıca gelişmiş filtreleme seçenekleri sunar. Bu filtreler, belirli bir protokol, IP adresi veya port numarası gibi özelliklere göre paketleri filtrelememizi sağlar. Bu, geniş veri setleri arasında belirli bilgileri bulmayı kolaylaştırır.&lt;/p&gt;

&lt;p&gt;Wireshark'ta "Display Filter" bölümüne yazarak paketleri filtreleyebilirsiniz. Örneğin, SSH paketlerini görmek için "ssh" yazabilirsiniz.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtxkofskdm0ulbres7ls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhtxkofskdm0ulbres7ls.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"Statistics" menüsünden erişilebilecek bir dizi istatistik ve grafik sunar. Bu özellikler, ağ performansı, TCP akış analizi, protokol hiyerarşisi ve daha fazlası hakkında bilgi sağlar.&lt;/p&gt;

&lt;p&gt;Sonuç olarak, TCPDump ve Wireshark, Linux'ta ağ trafiğini analiz etmek için oldukça etkili araçlardır. TCPDump, komut satırı tabanlı bir paket yakalama aracıdır ve hafifliği ve esnekliği nedeniyle popülerdir. Wireshark ise grafiksel bir kullanıcı arayüzü sunar ve ayrıntılı ağ analizi ve filtreleme yetenekleri ile bilinir. Bu iki araç birlikte kullanıldığında, ağ trafiğini detaylı bir şekilde analiz etmek mümkün hale gelir.&lt;/p&gt;

</description>
      <category>wireshark</category>
      <category>capturing</category>
      <category>network</category>
      <category>linux</category>
    </item>
  </channel>
</rss>
