MySql Exporter Örneği (docker-compose.yml)

Merhabalar,

Bu yazımda Promethues & Grafana ve Mysql Exporter örneğini inceliycez. Örneğimizi Docker ile yapacaz. İlk olarak nedir ne amaçla kullanıyoruz bunları öğrenelim.

Promethues: Hangi portları dinlememiz gerektiğini, dinlediğimiz bu portlarda çalışan entegre sistemlerle (node_exporter vb.) neler yapabileceğimizi söyleyen, herhangi bir hata durumunda tanımladığımız kural setlerini devreye sokan ve Alert Manager ile konuşan monitoring toolumuzun ana yapısıdır.

Prometheus, Hedeflerden metrikleri toplar, sonuçları görüntüler ve belirtilen koşullar gözlendiğinde alarmlar tetikleyebilir.

Grafana: Veritabanı verilerinin sorgulanmasını, görselleştirilmesini ve alarmlar oluşturulmasını sağlamaktadır. Grafana ile pek çok farklı kaynaktan verileri alıp tek bir gösterge tablosunda birleştirebililiriz. …


Photo by Ibrahim Boran on Unsplash

“Sunucu düştü”, “Çalışmıyor”, “502 alıyorum”, “Uygulama patladı” ve daha niceleri. Bu cümleler bilişim alanında çalışan veya faaliyet gösteren tüm kuruluşların korkulu rüyasıdır. Geliştirdiğimiz uygulamaları monitör etmek, loglarını incelemek ve belirli periyotlarda davranışlarını görmek geliştiricilere ve bilişim alanında faaliyet gösteren kuruluşlara iyi bir veri sağlar. Eğer bu veriler doğru yorumlanırsa planlama ve mevcut durumu değerlendirme gibi pek çok konuda doğru yerlere odaklanmamızı sağlayabilir.

Geçen haftalarda ekip arkadaşım Tahacan Atak’ın (AWS Lover 💗) önerisi ile yeni bir uygulama ile tanıştım. Statping isimli bu uygulama üzerinde yaptığım PoC sonuçlarını topladım, daha iyi öğrenmek için localimde ve test sunucularımda çalıştırdım, bozdum, kırdım, düzelttim ve…


Swarm & Node & Service & Visualizer

Merhabalar,

Bu yazımda Docker Swarm Yönetim komutlarını inceliycez. Basit olarak 1 manager 2 worker cluster kurulumu yapıp swarm komutları uyguluycaz.

İlk olarak docker swarm komutları neler buna bakalım. Bunun için terminal ekranından

docker swarm 

komutunu çalıştıralım.


.Net Core Örneği

Merhabalar,

Bu yazımda gitlab üzerinde CI/CD oluşturmayı inceliycez. İlk olarak tanımların ne olduğuna bakalım.

Continuous Integration ( Sürekli Entegrasyon ): Sürekli entegrasyon mimarisi yapılan değişiklikler/geliştirmeler sonucu oluşan yeni sürümün, bir boru hattı (pipeline) vasıtasıyla, mevcut sürüm ile sürekli şekilde otomatik olarak birleştirilmesini sağlar. Burada önemli olan nokta sürecin bir boru hattı (pipeline) üzerinden yürütülüyor olmasıdır.

Boru hattı (pipeline) dediğimiz şey aslında süreçleri uç uca eklemek ve ihtiyaçlarımız doğrultusunda akışlara yön vererek otomatize edilmiş bir düzen oluşturmaktır.

Continuous Delivery ( Sürekli Teslimat ) : Sürekli teslimat ise istenilen bir sürümün istenilen bir ortama elle tetiklemek suretiyle deploy edilebilmesidir. …


Twistlock ile ilgili olarak daha önce hem arayüz hem de işlevsellik yönünden notlarımı paylaşmıştım. Şimdi ise Twistlock’ ı Jenkins ile entegre ederek CI/CD pipeline’ da neleri yapabildiğini göstermeye çalışacağım.

Öncelikle ihtiyacımız ne idi bundan bahsetmek istiyorum. Mevcut Jenkins pipeline’ larımızda image build ve k8s ortamlarına deployment adımlarımız sorunsuz bir şekilde çalışmakta. Aynı zamanda Docker registry’ miz de Twistlock ile düzenli olarak taranmakta. Dolayısı ile ortamımıza deploy edilen image’ ları tarayıp bulguları raporlayabiliriyoruz.

İhtiyaç tam da bu noktada ortaya çıkıyor. Public bir docker image’ ını herhangi bir kontrolden geçirmeden Prod ortamımızda çalıştırıyoruz ve bize engel olan, uyaran bir araç yok!

Bu…


Docker CLI ile MySql Veritabanı Kurulumu

Merhabalar,

Bu yazımda Docker’a MySql container kurulumu inceliycez. Yapacağımız adımlar,

  • MySQL container kurulumu,
  • MySql database Kurulumu,
  • MySQL table Kurulumu ve tabloya veri kaydetme(insert) işlemlerinin nasıl yapıldığını öğrencez.

İlk olarak bir tane Mysql containerı ayağa kaldıralım. Bunun için aşağıdaki komutu çalıştıralım.

docker container run --name deniz-mysql --detach --publish 3306:3306 -e MYSQL_ROOT_PASSWORD=secret mysql

MySql containerı ayağa kaldırırken,

  • -e (enviroment) ile veritabanı bağlanacağımız şifreyi belirledik.
  • -d (detach) arka planda çalışmasını sağladık.
  • -p (publish ) mysql çalışacağı portu belirttik. Daha doğrusu tarayıcımızdan erişebilceğimiz port’u belirledik.
  • - name ile de containerımızın adını tanımladık.


“İnsanlar ne yaptığınızla değil neden yaptığınızla ilgilenir.”
Teknik muhabbetler serisinin bu yazısına son zamanlarda okuduğum ve mesleğe karşı bakış açımı değiştiren “Neden İle Başla” kitabından bir cümle ile başlamak istedim. Bu cümlede geçen insanlar kelimesi oldukça soyut. Kim bu insanlar? Eşimiz, ailemiz, müşterilerimiz, takım arkadaşlarımız bazen ise kendimiz. Her ne olursa olsun bu insanlara ilham vermek veya bakış açılarını zenginleştirmek istiyorsanız onlara “Neden” sorusunun önemini anlatın. Yeter mi? Hayır. Sizler de her zaman “Neden” sorusunun önemini bilen insanlarla ömrümünüzü geçirin. Bu yazıda teknik bir konu üzerinde neden sorusunu soracağız. Bu soruyu sormakla kalmayıp bir çözüm önerisi sunmaya çalışacağız. Bu kadar felsefe…


Docker Swarm Nedir

Merhabalar,

Bu yazımda Docker Swarm ne olduğu, bize sağladıkları, komutları ve basit bir örnek ile swarm inceliycez.

Docker Swarm, fiziksel veya sanal sunucuların bir küme(cluster) halinde Docker uygulamalarını yönetildiği orkestrasyon aracıdır. Docker Swarm ile yoğun sunucu yüklerini istediğiniz şekilde dağıtan, bir sorun olması halinde sistemin sürekli çalışır halde kalmasını sağlayan bir alt yapı oluşturmamızı sağlar.

Docker container’ların bir orkestratör yardımı ile küme(cluster) içerisindeki nodelarda yönetilmesi ve bu işlemleri otomatize edilmesi büyük çaplı sistemlerin yönetilebilmesini kolaylaştırmakta yüksek erişebilirlik (high availability) gibi kavramların uygulanabilmesine imkan tanımaktadır. Bu gibi konular için container’ların yönetildiği ve orkestre edildiği bir çok çözüm mevcuttur. …


Modüller Redis’in çalışma zamanında veya başlangıçta yükleyebileceğiniz C kitaplıklarıdır (yani .so dosyalarıdır). Redis’in desteklemediği yeni komutlar yapabilirsiniz.

Redis modüllerini güçlü yapan özellikler ise,

  • Hesaplama işlemlerinde c dilini kullandığı için baya hızlıdır.
  • Oluşturacağınız yeni bir komut ile client tarafında karışık olan sorgularınız redis içerisine gömerek daha performanslı hale getirebilirisiniz.
  • Modüller ile akla gelebilecek herhangi bir veri yapısını kullanarak yeni veri türleri oluşturabilirsiniz.
  • Modüller üçüncü taraf kütüphanelere bağlanabilir ve işlem yapmanıza olanak sağlar. Örneğin, Unicode işlemeyi, görüntü işlemeyi vb işlemler yapılabilir.

Not : Lua script ile de redis e özel script işlemler yapılabilir ancak kötü bir huyu vardır. Oda Lua script ile…


Photo by Markus Winkler on Unsplash

.Net dünyası yeni bir versiyon hazırlığında. .Net 5 yayını oldukça önemli bir dönüş noktasıydı ve bu süreci tamamladık. Umarım projelerinizde .Net 5 upgrade yapmışsınızdır çünkü yeni bir sürüme geçmenin en kolay yolu bir önceki sürümde hazır ve nazır beklemektir. 🧐 Eğer projeleriniz .Net Core 2.x veya .Net Core 3.x sürümlerinde ise adım adım upgrade yapmanızı öneririm aksi takdirde çok fazla breaking change ile karşı karşıya kalabilirsiniz.

.Net 5 sürümünde aramıza katılan ve aramızdan ayrılan özelliklerin listesini görmek ister misiniz? 🤔 Cevabınız evet ise o zaman aşağıdaki linklere tıklayabilirsiniz. 🎉
(.Net 5 ve Yenilikleri #1-.Net 5 ve Yenilikleri #2)

Geçtiğimiz günlerde…

Devops Türkiye☁️ 🐧 🐳 ☸️

Medium independent DevOps publication. Join thousands of aspiring developers and DevOps enthusiasts

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store