AWS’ye Giriş
AWS veya Amazon Web Services, Amazon.com tarafından sağlanan kapsamlı ve yaygın olarak kullanılan bir bulut bilişim platformudur. Bilgi işlem gücü, depolama seçenekleri, ağ iletişimi, veritabanları, makine öğrenimi, analitik ve daha fazlasını içeren ve tamamı internet üzerinden sunulan çeşitli bulut hizmetleri sunar.
AWS’nin bazı önemli yönleri şunlardır:
1. Bilgi İşlem Hizmetleri/Compute Services::
- Amazon EC2 (Elastic Compute Cloud): Bulutta ölçeklenebilir sanal sunucular sağlar.
- AWS Lambda: Sunucusuz bilgi işlem modelini izleyerek sunucuları tedarik etmeden veya yönetmeden kod çalıştırmanıza olanak tanır.
2. Depolama ve Veritabanları/Storage and Databases:
- Amazon S3 (Basit Depolama Hizmeti): Dosyalar, görüntüler ve veriler için ölçeklenebilir depolama sunan nesne depolama hizmeti.
- Amazon RDS (İlişkisel Veritabanı Hizmeti): MySQL, PostgreSQL ve SQL Server gibi çeşitli veritabanı motorlarını destekleyen yönetilen ilişkisel veritabanı hizmeti.
- Amazon DynamoDB: Her ölçekte sorunsuz ve öngörülebilir performansa ihtiyaç duyan uygulamalar için NoSQL veritabanı hizmeti.
3. Ağ Oluşturma/Networking:
- Amazon VPC (Sanal Özel Bulut): AWS bulutu içinde yalıtılmış ağlar oluşturmanıza olanak tanır.
- Amazon Route 53: Son kullanıcı isteklerini uç noktalara yönlendirmek için tasarlanmış, ölçeklenebilir bir Etki Alanı Adı Sistemi (DNS) web hizmeti.
4. Geliştirici Araçları/Developer Tools:
- AWS CodeDeploy: Herhangi bir örneğe kod dağıtımlarını otomatikleştirir.
- AWS CodePipeline: Yazılım yayınlama sürecinizi otomatikleştirmenize yardımcı olur.
5. Yapay Zeka ve Makine Öğrenimi/AI and Machine Learning:
- Amazon SageMaker: Geliştiricilerin makine öğrenimi modelleri oluşturmasına, eğitmesine ve dağıtmasına olanak tanıyan, tam olarak yönetilen bir hizmet.
- Amazon Polly: Doğal insan sesine benzeyen konuşmayı sentezlemek için derin öğrenme teknolojilerini kullanan metinden konuşmaya hizmeti.
6. Analitik:
- Amazon Redshift: Bulutta tümüyle yönetilen, petabayt ölçekli veri ambarı hizmeti.
- Amazon QuickSight: Görselleştirmeler oluşturmak, anlık analizler gerçekleştirmek ve çeşitli veri kümelerinden öngörüler elde etmek için iş analitiği hizmeti.
7. Güvenlik ve Kimlik:
- AWS Identity and Access Management (IAM): AWS hizmetlerine ve kaynaklarına erişimi güvenli bir şekilde yönetmenize olanak tanır.
- Amazon Inspector: AWS’de dağıtılan uygulamaların güvenliğini ve uyumluluğunu iyileştirmeye yardımcı olan otomatik güvenlik değerlendirme hizmeti.
8. Nesnelerin İnterneti (IoT):
- AWS IoT Core: Bağlı cihazların bulut uygulamaları ve diğer cihazlarla kolay ve güvenli bir şekilde etkileşim kurmasına olanak tanıyan yönetilen bulut hizmeti.
9. İçerik Dağıtımı ve CDN:
- Amazon CloudFront: Verileri, videoları, uygulamaları ve API’leri dünya çapındaki müşterilere güvenli bir şekilde sunan içerik dağıtım ağı (CDN) hizmeti.
AWS, her ölçekteki işletme için esneklik, ölçeklenebilirlik ve maliyet etkinliği sağlar. Yeni başlayanlar, kuruluşlar ve bireyler tarafından web sitelerini barındırmak, uygulamaları çalıştırmak, verileri depolamak ve makine öğrenimi ve büyük veri analitiği gibi ileri teknolojilerden yararlanmak dahil olmak üzere çeşitli amaçlarla yaygın olarak kullanılır. AWS ayrıca kullanıcıların herhangi bir ücret ödemeden platformu kullanmaya başlaması ve keşfetmesi için sınırlı hizmetlere sahip ücretsiz bir katman da sunuyor.
AWS Hesabı Oluşturun
1. AWS Web Sitesini Ziyaret Edin:
Web tarayıcınıza ‘aws.amazon.com’ yazarak AWS resmi web sitesine gidin.
2. “Bir AWS Hesabı Oluşturun”a tıklayın:
AWS ana sayfasında “Bir AWS Hesabı Oluşturun” düğmesine tıklayın.
3. Amazon Hesabınızda oturum açın:
Zaten bir Amazon.com hesabınız varsa mevcut Amazon kimlik bilgilerinizle oturum açabilirsiniz. Amazon.com hesabınız yoksa bir tane oluşturmanız gerekir. E-posta adresinizi girmek ve bir şifre oluşturmak için talimatları izleyin.
4. Hesap Bilgilerini Sağlayın:
İletişim bilgileriniz ve ödeme bilgileriniz de dahil olmak üzere bazı temel bilgileri sağlamanız gerekecektir. Ücretsiz kullanıma kaydolsanız bile AWS, kimliğinizi doğrulamak için bir kredi kartı veya banka kartı gerektirir. Ancak, ücretsiz kullanım kapsamındaki çoğu hizmetin, siz bu sınırları aşmadığınız sürece ücrete tabi olması muhtemel olmayan sınırları vardır.
5. Bir Destek Planı Seçin:
AWS farklı destek planları sunar. Yeni başlıyorsanız ücretsiz destek planını seçebilirsiniz. Daha gelişmiş destek seçeneklerine ihtiyacınız varsa ücretli planlardan birini seçebilirsiniz.
6. Telefon Numaranızı Doğrulayın:
AWS, bir kısa mesaj alarak veya doğrulama kodunu içeren bir telefon araması alarak telefon numaranızı doğrulamanızı isteyecektir. Telefon numaranızı doğrulamak için kodu girin.
7. İki Faktörlü Kimlik Doğrulamayı Kurun (İsteğe Bağlı ancak Önerilen):
İki faktörlü kimlik doğrulamanın (2FA) ayarlanması AWS hesabınızın güvenliğini artırır. Kayıt işlemi sırasında veya hesabınız oluşturulduktan sonra ayarlayabilirsiniz.
8. Kaydı tamamlayın:
Gerekli tüm bilgileri sağladıktan sonra AWS hesabınız oluşturulacaktır. Hesap kurulumunun tamamlanması için birkaç dakika beklemeniz gerekebilir.
9. AWS Management Console’a erişin:
Hesabınız kurulduktan sonra AWS kaynaklarınızı yönetmeye yönelik web tabanlı arayüz olan AWS Management Console’a erişebilirsiniz. Hizmetleri oluşturmaya ve yönetmeye buradan başlayabilirsiniz.
Erişim kimlik bilgilerinizi paylaşmamak, uygun izinleri ayarlamak ve kullanımınızı izlemek için faturalandırma uyarılarını etkinleştirmek gibi AWS’nin güvenlik açısından en iyi uygulamalarını takip etmeyi unutmayın.
CloudWatch’a Giriş
AWS CloudWatch, Amazon Web Services (AWS) tarafından sunulan ve AWS kaynaklarınızın ve uygulamalarınızın güvenilirliğini, performansını ve güvenliğini sağlamada önemli bir rol oynayan temel bir hizmettir. Altyapıyı, uygulamaları veya her ikisini de yönetmekten sorumlu olsanız da CloudWatch, AWS ortamınızı izlemek ve bu konuda öngörüler elde etmek için vazgeçilmez bir araçtır.
AWS CloudWatch Neden Önemlidir?
Bulut bilişimin dinamik dünyasında, AWS ortamınızda neler olup bittiğini anlamak çok önemlidir. Doğru izleme ve gözlemlenebilirlik araçları olmadan sorunları belirlemek, performansı optimize etmek ve kaynaklarınızın güvenliğini sağlamak inanılmaz derecede zorlayıcı olabilir. AWS CloudWatch’un devreye girdiği yer burasıdır.
AWS CloudWatch, ölçümleri toplayıp izlemenize, günlük dosyalarını toplayıp izlemenize ve alarm ayarlamanıza olanak tanır. AWS kaynaklarınızın ve uygulamalarınızın birleşik bir görünümünü sunarak gerçek zamanlı öngörüler elde etmenizi, sorunları gidermenizi ve olaylar meydana geldikçe yanıt vermenizi kolaylaştırır. AWS CloudWatch’un önemli olmasının bazı temel nedenleri şunlardır:
1. Proaktif İzleme: CloudWatch, AWS kaynaklarınızın ve uygulamalarınızın performansını gerçek zamanlı olarak izlemenize olanak tanır, böylece sorunları kullanıcılarınızı etkilemeden önce tanımlayıp çözebilirsiniz.
2. Özelleştirilebilir Alarmlar: Belirli eşik değerleri aşıldığında sizi otomatik olarak bilgilendirecek ve sorunları çözmek için anında harekete geçmenize olanak sağlayacak alarmlar ayarlayabilirsiniz.
3. Merkezi Günlük Kaydı: CloudWatch Logs, uygulamalarınızdan ve AWS kaynaklarınızdan günlük verilerini toplayıp saklamanıza olanak tanıyarak sorunları gidermenizi ve analiz etmenizi kolaylaştırır.
4. Kontrol Panelleri: CloudWatch Kontrol Panelleri ile ölçümlerinizin özel görselleştirmelerini oluşturarak AWS ortamınızın durumunu izlemenin net ve sezgisel bir yolunu sağlayabilirsiniz.
5. Olay Odaklı Analizler: CloudWatch Events ve EventBridge, eylemleri gerçek zamanlı tetikleyerek AWS ortamınızdaki veya uygulama durumundaki değişikliklere yanıt vermenize olanak tanır.
6. Maliyet Optimizasyonu: CloudWatch, geçmiş verileri ve eğilimleri analiz ederek kaynak kullanımını anlamanıza ve maliyet optimizasyonu fırsatlarını belirlemenize yardımcı olur.
AWS CloudWatch’u Kimler Kullanmalı?
AWS CloudWatch, aşağıdakiler de dahil olmak üzere çok çeşitli AWS kullanıcılarına fayda sağlayabilecek çok yönlü bir hizmettir:
– Sistem Yöneticileri : CloudWatch, sistem yöneticilerine sunucu ve uygulama performansını izlemek, uyarıları ayarlamak ve sorunları etkili bir şekilde gidermek için ihtiyaç duydukları araçları sağlar.
– Geliştiriciler : Geliştiriciler, uygulamalarının davranışına ilişkin görünürlük elde etmek, günlükleri yakalayıp analiz etmek ve özel uygulama ölçümlerini izlemek için CloudWatch’u kullanabilir.
– DevOps Ekipleri : DevOps ekipleri, olaylara ve alarmlara verilen yanıtları otomatikleştirmek için CloudWatch’u kullanabilir, böylece uygulamalarının sürekli kullanılabilirliğini ve performansını garanti edebilir.
– Güvenlik Ekipleri : CloudWatch, güvenlik ekiplerinin AWS ortamlarındaki güvenlikle ilgili olayları ve anormallikleri tespit edip bunlara yanıt vermeleri için değerli bir araç olabilir.
– İş ve Operasyon Yöneticileri : CloudWatch’un özelleştirilebilir kontrol panelleri ve raporlama yetenekleri, iş ve operasyon yöneticilerine AWS kaynaklarının genel durumu ve performansı hakkında öngörüler sağlar.
Bu eğitimde AWS CloudWatch’un çeşitli bileşenlerini daha derinlemesine inceleyeceğiz, yeteneklerini keşfedeceğiz ve AWS kaynaklarınızı ve uygulamalarınızı izlemek ve yönetmek için onu nasıl etkili bir şekilde kullanabileceğimizi öğreneceğiz.
AWS CloudWatch Bileşenleri
AWS CloudWatch, AWS ortamınız için kapsamlı izleme ve gözlemlenebilirlik özellikleri sağlamak üzere birlikte çalışan birkaç temel bileşenden oluşur. Bu bileşenleri anlamak, CloudWatch’u etkili bir şekilde kullanmak için çok önemlidir. İşte temel bileşenler:
Metrikler:
– Metrikler AWS CloudWatch’un temelidir. Bunlar esas olarak çeşitli AWS kaynaklarının ve hizmetlerinin performansını temsil eden veri noktalarıdır. Metrikler, AWS kaynaklarının zaman içindeki davranışını ve durumunu yakalayan zaman serisi verileri olarak düşünülebilir.
– AWS, hizmetleri için EC2 bulut sunucuları için CPU kullanımı veya bir S3 klasörü için istek sayısı gibi önceden tanımlanmış çok çeşitli ölçümler sağlar. Uygulamalarınızın veya kaynaklarınızın belirli yönlerini izlemek için özel ölçümler de oluşturabilirsiniz.
– Metrikler düzenli aralıklarla toplanabilir ve CloudWatch bu verileri belirli bir saklama süresi boyunca saklayarak geçmiş eğilimleri analiz etmenize olanak tanır.
Alarmlar:
– CloudWatch’taki alarmlar, ölçümleri izlemek ve belirli koşullar karşılandığında veya eşikler aşıldığında otomatik eylemleri tetiklemek için kullanılır. Sorunlara yanıt vermenin ve düzeltici önlem almanın proaktif bir yoludur.
– Örneğin, bir EC2 bulut sunucusunun CPU kullanımı belirli bir eşiği aştığında sizi bilgilendirecek bir alarm ayarlayabilirsiniz. Alarmlar, Amazon SNS aracılığıyla bildirim gönderme, bulut sunucularını durdurma veya sonlandırma ya da AWS Lambda işlevlerini çağırma gibi eylemleri tetikleyebilir.
– Alarmlar, AWS kaynaklarınızın ve uygulamalarınızın istenen çalışma durumunu korumanıza yardımcı olabilir.
Gösterge tabloları:
– CloudWatch Kontrol Panelleri, AWS ortamınızın durumunu ve performansını izlemenin özelleştirilebilir ve görsel bir yolunu sunar. İzleme ihtiyaçlarınızla en alakalı ölçümleri, günlükleri ve alarmları görüntülemek için bir kontrol panelinde widget’lar oluşturabilir ve düzenleyebilirsiniz.
– Kontrol panelleri, AWS kaynaklarınızın merkezi bir görünümünü oluşturmanıza olanak tanıyarak ölçümleri gerçek zamanlı olarak izlemenizi ve analiz etmenizi kolaylaştırır. Özellikle altyapılarına üst düzey bir genel bakışa ihtiyaç duyan ekipler için kullanışlıdırlar.
Kütükler:
– CloudWatch Logs, uygulamalarınızdan, hizmetlerinizden ve AWS kaynaklarınızdan günlük verilerini toplamanıza, saklamanıza ve analiz etmenize olanak tanır. Günlükler, ortamınızda olup bitenlere ilişkin değerli bilgiler sağlar.
– Günlük verilerinin ayrı kaynakları olan günlük akışlarını düzenlemek için günlük gruplarını yapılandırabilirsiniz. Örneğin, uygulamanızın farklı bölümleri için günlük akışlarınız olabilir.
– Günlük verileri CloudWatch Logs Insights kullanılarak aranabilir, filtrelenebilir ve analiz edilebilir veya gelişmiş analiz ve işleme için Amazon Elasticsearch veya AWS Lambda gibi diğer AWS hizmetleriyle entegre edilebilir.
Etkinlikler ve EventBridge
– CloudWatch Events (eski adıyla CloudWatch Events) ve EventBridge, AWS ortamınızdaki olaylara ve değişikliklere gerçek zamanlı olarak yanıt vermenize olanak tanır. Etkinlikler AWS hizmetleri, özel uygulamalar veya üçüncü taraf kaynaklar tarafından oluşturulabilir.
– Belirli olayları eşleştirmek için kurallar oluşturabilir ve AWS Lambda işlevlerini çağırmak, AWS Step Functions’ı başlatmak veya olayları Amazon SNS konularına göndermek gibi eylemleri tetikleyecek hedefleri tanımlayabilirsiniz.
– Olaylar ve EventBridge, olay odaklı mimarilere olanak tanır ve AWS ortamınızdaki değişikliklere verilen yanıtların otomatikleştirilmesi için gereklidir.
Sentetik İzleme (Kanarya)
– AWS CloudWatch Synthetics, uygulamalarınızla kullanıcı etkileşimlerini simüle eden yapılandırılabilir komut dosyaları olan kanaryalar oluşturmanıza olanak tanır. Canaries, uygulamalarınızın kullanılabilirliğini ve performansını izler ve özel ölçümler ve alarmlar oluşturmak için veri sağlar.
Bu bileşenlerin birlikte nasıl çalıştığını anlamak, AWS ortamınızda etkili izleme ve gözlemlenebilirlik uygulamanın anahtarıdır. Bu eğitimin sonraki bölümlerinde, bu bileşenlerin her birini daha derinlemesine inceleyerek, bunların özel izleme ihtiyaçlarınızı karşılayacak şekilde nasıl oluşturulacağını ve yapılandırılacağını açıklayacağız.
Bu bileşenlerin her birini daha ayrıntılı olarak incelemeye devam edelim ve daha iyi AWS kaynak yönetimi ve uygulama performansı izleme için bunlardan nasıl yararlanacağımızı öğrenelim.
AWS CloudWatch’taki ölçümler
Metrikler AWS CloudWatch’un temel yapı taşlarıdır. Bunlar, AWS kaynaklarınızın ve hizmetlerinizin performansına ve davranışına ilişkin öngörü sağlayan sayısal veri noktalarıdır. Metrikler zaman içinde toplanarak AWS ortamınızdaki değişiklikleri izlemenize, analiz etmenize ve bunlara yanıt vermenize olanak tanır.
Metrikler Nasıl Toplanır?
– Veri Toplama: Metrikler düzenli aralıklarla, genellikle her dakika toplanır ve CloudWatch’a gönderilir. AWS hizmetleri ve kaynakları önceden tanımlanmış ölçümleri otomatik olarak CloudWatch’a gönderir.
– Özel Metrikler: Uygulamalarınızın veya kaynaklarınızın belirli yönlerini izlemek için özel metrikler oluşturabilirsiniz. Bu, metrik verilerini yayınlamak için CloudWatch API’nin veya AWS SDK’ların kullanılmasını içerir. Özel ölçümler, uygulamaya özel performans göstergelerini veya iş KPI’larını izlemek için gereklidir.
Özel Metrik Oluşturmayı Gösterme
1. AWS SDK’yı yükleyin: Özel ölçümler oluşturmak istiyorsanız öncelikle CloudWatch ile programlı olarak etkileşim kurmanıza olanak tanıyan AWS SDK veya CLI’nin yüklü olduğundan emin olun.
2. Özel Metrikleri Yayınlayın: Özel metrik verilerini CloudWatch’ta yayınlamak için SDK’yı veya CLI’yi kullanın. Metriğin adını, ad alanını ve boyutlarını (varsa) belirtmeniz gerekir.
3. Metrik Filtreleri Ayarlayın: CloudWatch’un günlük verilerini işlemesini ve analiz etmesini sağlamak için CloudWatch Logs’da metrik filtreleri ayarlayın. Metrik filtreler verileri çıkarır ve bunları özel metriklere dönüştürür.
4. Özel Bir Kontrol Paneli Oluşturun: Özel ölçümlerinizi aldıktan sonra, bu ölçümleri görselleştirmek ve izlemek için özel bir kontrol paneli oluşturun. Gösterge tabloları, verilerinizin özel görünümlerini oluşturmanıza olanak tanır.
Özel ölçümler, AWS kaynaklarınızın ve uygulamalarınızın kullanım senaryonuza özgü belirli yönlerini izleme ve bunlara yanıt verme esnekliği sağlar.
CloudWatch Alarmları
CloudWatch Alarmlar, ölçümleri izlemenize ve belirli koşullar veya eşikler karşılandığında otomatik eylemler gerçekleştirmenize olanak tanıyan güçlü bir özelliktir. Alarmlar, AWS kaynaklarınızı ve uygulamalarınızı yönetmenin proaktif bir yoludur.
CloudWatch Alarmları Konsepti
– Eşikler: Alarmlar metrik eşiklere göre ayarlanır. Bir eşik değeri tanımlarsınız ve ölçüm bu değeri aştığında (örneğin, CPU kullanımının beş dakika boyunca %90’ı aşması), alarm tetiklenir.
– Eylemler: Bir alarm tetiklendiğinde gerçekleştirilecek eylemleri yapılandırabilirsiniz. Bu eylemler, Amazon SNS aracılığıyla bildirim göndermeyi, EC2 bulut sunucularını durdurmayı veya sonlandırmayı, AWS Lambda işlevlerini çağırmayı veya Otomatik Ölçeklendirme politikalarını çalıştırmayı içerebilir.
Alarm Oluşturma ve Yapılandırma
1. Bir Metrik Seçin: Bir alarmla izlemek istediğiniz metriği seçin. Bu, önceden tanımlanmış bir AWS metriği veya oluşturduğunuz özel bir metrik olabilir.
2. Eşiği Tanımlayın: Alarmı tetikleyecek ölçüm için eşik değerini ayarlayın.
3. Eylemleri Belirleyin: Alarm tetiklendiğinde gerçekleştirilecek eylemleri tanımlayın. Ekibinizi uyarmak veya yanıtları otomatikleştirmek için bildirim eylemleri ayarlayabilirsiniz.
4. Ek Alarm Yapılandırmasını Ayarlayın: Alarmın adı, açıklaması ve değerlendirme süresi gibi isteğe bağlı ayarları yapılandırın.
5. Alarmı Oluşturun: Alarmı yapılandırdıktan sonra oluşturun. Alarm, ölçümü hemen izlemeye başlayacaktır.
CloudWatch Alarmlar, sorunlara karşı proaktif olarak uyarılmanızı ve AWS ortamınızın sağlığını ve performansını korumak için hızlı bir şekilde yanıt verebilmenizi sağlar.
CloudWatch Kontrol Panelleri
CloudWatch Kontrol Panelleri, ölçümlerinizin sunumunu izlemek ve özelleştirmek için görsel bir yol sağlar. Kontrol panelleri, izleme ihtiyaçlarınız için en önemli verileri görüntüleyen özelleştirilmiş görünümler oluşturmanıza olanak tanır.
CloudWatch Kontrol Panellerinin Amacı
– Özelleştirme: Kontrol panelleri, AWS ortamınızın özel görünümlerini oluşturmanıza olanak tanır. Kullanım durumunuzla ilgili belirli ölçümleri, alarmları veya günlükleri görüntülemek için widget’ları düzenleyebilirsiniz.
– Gerçek Zamanlı İzleme: Kontrol panelleri gerçek zamanlı görselleştirmeler sağlayarak AWS kaynaklarınızın durumunu ve performansını bir bakışta izlemenize olanak tanır.
Özel Kontrol Panelleri Oluşturma
1. CloudWatch Konsoluna erişin: AWS Management Console’da oturum açın ve CloudWatch’a gidin.
2. Yeni Bir Kontrol Paneli Oluşturun: CloudWatch konsolunda, “Kontrol Panelleri”ni seçin ve ardından “Kontrol Paneli Oluştur”u tıklayın.
3. Widget Ekle: Widget’lar ekleyerek kontrol panelinizi özelleştirin. Widget’lar dokümantasyon için metrikleri, alarmları veya metni/Markdown’ı görüntüleyebilir.
4. Widget’ları Yapılandırın: Her widget, belirli ölçümleri veya günlükleri görüntüleyecek şekilde yapılandırılabilir. Zaman aralığını ayarlayabilir ve widget’ın görünümünü özelleştirebilirsiniz.
5. Kontrol Panelini Kaydet: Kontrol panelinize bir ad verin ve kaydedin. Ayrıca kontrol panellerini diğer AWS hesaplarıyla paylaşabilir veya herkese açık hale getirebilirsiniz.
CloudWatch Kontrol Panelleri, AWS ortamınızın durumunu ve performansını izlemek için merkezi ve görsel bir yol sunarak sorunları tanımlamayı ve bunlara yanıt vermeyi kolaylaştırır.
CloudWatch Günlükleri
CloudWatch Logs, uygulamalarınızdan, hizmetlerinizden ve AWS kaynaklarınızdan günlük verilerini toplamanıza, depolamanıza ve analiz etmenize olanak tanır. Sorun gidermede ve sisteminizin davranışı hakkında bilgi edinmede çok önemli bir rol oynar.
CloudWatch Günlükleri Nasıl Çalışır?
– Günlük Grupları: Günlük verileri, ilgili günlük akışlarının mantıksal bir gruplamasını temsil eden “günlük grupları” halinde düzenlenir. Örneğin uygulamanızın erişim günlükleri için bir günlük grubunuz olabilir.
– Günlük Akışları: Bir günlük grubu içindeki günlük akışları, ayrı günlük verileri kaynaklarıdır. Her günlük akışı, EC2 bulut sunucusu veya Lambda işlevi gibi farklı bir kaynağı veya örneği temsil edebilir.
Günlük Gruplarını ve Günlük Akışlarını Ayarlama
1. Bir Günlük Grubu Oluşturun: CloudWatch konsolunda “Günlük grupları”na gidin ve yeni bir günlük grubu oluşturun. Toplayacağınız günlüklerin türünü yansıtan bir ad verin.
2. Günlük Akışlarını Yapılandırın: Bir günlük grubu içinde günlük akışlarını yapılandırabilirsiniz. Günlük akışları genellikle yeni günlük verileri alındıkça otomatik olarak oluşturulur. Ancak gerekirse özel günlük akışları da oluşturabilirsiniz.
3. Günlük Verilerini Yayınlayın: Günlük verilerini uygun günlük akışında yayınlamak için CloudWatch Logs SDK’yı veya AWS CLI’yi kullanın. Uygulamalarınız ve AWS kaynaklarınız günlük verilerini CloudWatch Logs’a gönderebilir.
Günlük Saklama Politikaları
– CloudWatch Logs, günlük verileri için saklama politikaları tanımlamanıza olanak tanır. Bu, günlük verilerinin ne kadar süre saklanacağını belirler. Birkaç günden süresiz olarak değişen saklama sürelerini belirleyebilirsiniz.
Günlük verileri sorun giderme, güvenlik analizi ve uyumluluk için değerli bir bilgi kaynağıdır. Günlükleri CloudWatch’ta merkezileştirerek bu verilere kolayca erişebilir ve bunları analiz edebilirsiniz.
CloudWatch’ta Etkinlikler ve EventBridge
CloudWatch Events ve EventBridge, AWS ortamınızdaki değişikliklere ve olaylara gerçek zamanlı olarak yanıt vermenize olanak tanıyan olay odaklı izleme ve otomasyon araçlarıdır.
CloudWatch Events ve EventBridge ile Tanışın
– Etkinlikler: Etkinlikler, AWS hizmetleri, özel uygulamalar veya üçüncü taraf kaynaklar tarafından oluşturulur. Bu olaylar, bulut sunucusu başlatmaları, S3 klasör nesnesi oluşturmaları veya CloudTrail günlük olayları gibi AWS ortamınızdaki değişiklikleri gösterebilir.
– Etkinlik Kuralları: CloudWatch Events, belirli etkinlikleri niteliklerine göre eşleştirmek için “kuralları” kullanır. Kullanım durumunuzla ilgili olayları yakalamak için kurallar tanımlayabilirsiniz.
– Hedefler: Bir etkinlik bir kuralla eşleştiğinde, hangi eylemin yapılması gerektiğini tanımlamak için “hedefler” belirleyebilirsiniz. Hedefler AWS Lambda’yı içerebilir.
CloudWatch için En İyi Uygulamalar
1. Erişim Denetimi için AWS Identity and Access Management’ı (IAM) kullanın:
– CloudWatch kaynaklarına erişimi kontrol etmek için IAM politikalarını uygulayın. Kullanıcıların ve uygulamaların yalnızca görevlerini gerçekleştirmek için ihtiyaç duydukları izinlere sahip olmasını sağlamak için en az ayrıcalık ilkesini izleyin.
2. Çok Faktörlü Kimlik Doğrulamayı (MFA) etkinleştirin:
– Özellikle CloudWatch ve diğer AWS hizmetlerine yönetim erişimi olan kullanıcılar için AWS hesaplarınız için MFA’yı etkinleştirin. MFA, yetkisiz erişime karşı koruma sağlamak için ekstra bir güvenlik katmanı ekler.
3. CloudWatch Logs ile Günlük Kaydını Merkezileştirin:
– Uygulama ve sistem günlüklerinizi merkezileştirmek için CloudWatch Logs’u kullanın. Bu, birden fazla kaynaktan gelen günlük verilerinin daha kolay izlenmesine, sorun gidermesine ve denetlenmesine olanak tanır.
4. Günlük Grubu ve Akış Adlandırma Kurallarını Uygulayın:
– Günlük verilerinizi etkili bir şekilde düzenlemek ve kategorilere ayırmak için günlük grupları ve günlük akışları için tutarlı bir adlandırma kuralı benimseyin. Bu, günlükleri aramayı ve filtrelemeyi kolaylaştırır.
5. Günlük Şifrelemeyi Etkinleştirin:
– CloudWatch Logs verileriniz için şifrelemeyi etkinleştirin. Kullanımda olmayan günlük verilerini korumak için AWS Key Management Service (KMS) ile sunucu tarafı şifrelemeyi kullanabilirsiniz.
6. Saklama Politikalarını Belirleyin:
– Uyumluluk ve operasyonel gereksinimlerinize göre günlük saklama politikalarını tanımlayın. Günlük depolama maliyetlerini etkili bir şekilde yönetmek için bu politikaları düzenli olarak inceleyin ve güncelleyin.
7. Metrikleri İzleme ve Alarm:
– AWS kaynaklarınızın ve uygulamalarınızın performansını ve durumunu proaktif olarak izlemek için CloudWatch Metriklerini ve Alarmlarını kullanın. Eşikler ihlal edildiğinde sizi bilgilendirecek alarmlar kurun.
8. Özel Kontrol Panelleri Oluşturun:
– En önemli ölçümlerinizin görsel bir temsilini oluşturmak için özel CloudWatch Kontrol Panelleri oluşturun. Gösterge tabloları temel performans göstergelerinin merkezi bir görünümünü sağlar.
9. Ad Alanlarını ve Boyutları Kullanın:
– Özel metrikler oluştururken, metrikleri kategorilere ayırmak ve aralarında ayrım yapmak için anlamlı ad alanları ve boyutlar kullanın. Bu, metrik verilerinin etkili bir şekilde düzenlenmesine ve sorgulanmasına yardımcı olur.
10. Metrik Matematik ve Bileşik Alarmları Kullanın:
– Mevcut olanlardan yeni metrikler türetmek için Metrik Matematik ifadelerini kullanın. Bileşik Alarmlar, karmaşık senaryoların izlenmesini kolaylaştırmak için birden fazla alarmı birleştirmenize olanak tanır.
11. Maliyetleri Optimize Edin:
– Maliyetleri optimize etmek için CloudWatch kullanımınızı inceleyin. Gereksiz alarmları silin, yüksek çözünürlüklü ölçüm verilerinin saklanmasını azaltın ve maliyet ile görünürlüğü dengelemek için kayıt düzeylerini ayarlayın.
12. CloudWatch Events ile Eylemleri Otomatikleştirin:
– AWS ortamınızdaki belirli olaylara ve değişikliklere verilen yanıtları otomatikleştirmek için CloudWatch Events ve EventBridge’den yararlanın. Olaylara dayalı olarak AWS Lambda işlevlerini, Adım İşlevlerini veya diğer eylemleri tetikleyin.
13. Hesaplar Arası İzlemeyi Kurun:
– Birden fazla hesap ve bölgedeki AWS kaynaklarını ve uygulamalarını merkezi bir konumdan izlemek için CloudWatch’un hesaplar arası ve bölgeler arası yeteneklerini kullanın.
14. Kritik Kaynaklar için Ayrıntılı İzlemeyi Etkinleştirin:
– Daha ayrıntılı izleme gerektiğinde Amazon EC2 bulut sunucuları gibi kritik kaynaklar için ayrıntılı izlemeyi etkinleştirin. Bunun ek maliyetlere yol açabileceğini unutmayın.
15. Alarmları Düzenli Olarak İnceleyin ve İnce Ayar Yapın:
– Hala alakalı ve etkili olduklarından emin olmak için CloudWatch Alarmlarınızı düzenli olarak inceleyin. Değişen kullanım kalıplarına ve gereksinimlere göre alarm eşiklerini ve eylemlerini gerektiği gibi ayarlayın.
16. CloudWatch Logs Insights’ı kullanın:
– Günlük verilerini hızlı bir şekilde sorgulamak ve analiz etmek için CloudWatch Logs Insights’tan yararlanın. Günlüklerinizdeki sorunları ve eğilimleri verimli bir şekilde belirlemenize yardımcı olabilir.
17. Güvenli Uygulamaları Uygulayın:
– Günlükler ve ölçümler dahil tüm CloudWatch bileşenlerinin güvenli yapılandırma uygulamalarına tabi olduğundan emin olun. Güvenlik yamaları ve güncellemeleriyle tüm bileşenleri güncel tutun.
18. CloudWatch’un Kendisini İzleyin:
– CloudWatch hizmetiyle ilgili sorunları tespit etmek ve bunlara yanıt vermek için CloudWatch’un kendisi için izleme ve alarmları ayarlayın.
Bu en iyi uygulamaları takip ederek AWS kaynaklarınızı ve uygulamalarınızı izlemek ve yönetmek, performansı optimize etmek, sorunları gidermek ve ortamınızın güvenilirliğini ve güvenliğini sağlamak için AWS CloudWatch’u etkili bir şekilde kullanabilirsiniz.
CloudWatch’u kullanmanın faydaları
Bir Mavi Takım üyesi veya Güvenlik Operasyon Merkezi (SOC) analisti olarak AWS CloudWatch’u kullanmak, AWS ortamınızın güvenliğini izlemek ve geliştirmek için çeşitli önemli avantajlar sunar. İşte örneklerle bazı faydalar:
Gerçek Zamanlı Güvenlik Görünürlüğü:
– Avantajı: CloudWatch, AWS kaynaklarınızın güvenlik durumuna ilişkin gerçek zamanlı görünürlük sağlayarak SOC analistlerinin güvenlik tehditlerini anında tespit etmesine ve bunlara yanıt vermesine olanak tanır.
– Örnek: Ağ trafiğindeki olası bir Dağıtılmış Hizmet Reddi (DDoS) saldırısına işaret eden olağandışı ani artışları izlemek için CloudWatch Alarmları oluşturabilirsiniz. Bir alarm tetiklendiğinde, sorunu araştırmak için anında bir uyarı alırsınız.
Merkezi Kayıt ve Analiz:
– Avantajı: CloudWatch Logs, çeşitli AWS hizmetlerinden ve uygulamalarından gelen günlük verilerini merkezileştirmenize olanak tanıyarak SOC analistlerinin güvenlikle ilgili olay ve vakaları analiz etmesini kolaylaştırır.
– Örnek: VPC Akış Günlüklerini, CloudTrail günlüklerini ve uygulama günlüklerini CloudWatch Logs’ta toplayabilirsiniz. SOC analistleri, CloudWatch Logs Insights’ı kullanarak, yetkisiz erişim girişimleri veya güvenlik grubu kurallarındaki değişiklikler gibi güvenlik anormalliklerini belirlemek için bu günlükleri sorgulayabilir.
Otomatik Tehdit Algılama:
– Avantajı: CloudWatch Events ve EventBridge, otomatik tehdit tespitine ve müdahalesine olanak tanır. AWS ortamınızdaki güvenlik olaylarına veya değişikliklere göre eylemleri tetikleyecek kurallar ayarlayabilirsiniz.
– Örnek: CloudTrail günlükleri potansiyel olarak kötü amaçlı bir API çağrısını gösterdiğinde AWS Lambda işlevini tetikleyen bir olay kuralı oluşturun. Lambda işlevi, etkilenen örneği otomatik olarak izole edebilir veya daha fazla araştırma için SOC ekibine bildirimde bulunabilir.
Özel Güvenlik Metrikleri:
– Faydası: SOC analistleri, kuruluşlarının güvenlik duruşuna özel güvenlikle ilgili performans göstergelerini izlemek için özel CloudWatch Metrikleri tanımlayabilir.
– Örnek: Başarısız oturum açma denemelerinin, başarılı oturum açma etkinliğinin veya başarısız kimlik doğrulama olaylarının sayısını izlemek için özel ölçümler tanımlayın. Bu ölçümlere alarm ayarlayarak şüpheli oturum açma davranışını hızlı bir şekilde tespit edip yanıt verebilirsiniz.
Olay Müdahalesi ve Adli Tıp:
– Avantajı: CloudWatch Logs ve Insights, olaylara müdahale ve adli tıp çalışmalarını destekler. SOC analistleri, güvenlik olaylarının kapsamını ve etkisini anlamak için günlük verilerini arayabilir, filtreleyebilir ve analiz edebilir.
– Örnek: Potansiyel bir güvenlik olayını tespit ettikten sonra SOC analistleri, ilgili günlük girişlerini aramak, kanıt toplamak ve ihlalin boyutunu belirlemek için CloudWatch Logs Insights’ı kullanabilir, böylece olay müdahalesine ve olay sonrası analize yardımcı olabilir.
Güvenli Yapılandırma İzleme:
– Avantajı: CloudWatch, SOC analistlerini AWS yapılandırmalarındaki değişiklikleri izleyip uyararak olası güvenlik açıklarının belirlenmesine yardımcı olabilir.
– Örnek: Güvenlik grubu kurallarında hassas bağlantı noktalarını internete açık hale getiren değişiklikler yapıldığında uyarı tetikleyecek bir CloudWatch Etkinliği kuralı ayarlayın. SOC analistleri daha sonra bu güvenlik grubu değişikliklerini inceleyebilir ve düzeltebilir.
Uygun Maliyetli Ölçeklenebilirlik:
– Avantajı: CloudWatch, AWS ortamınıza göre ölçeklenecek şekilde tasarlanmıştır. SOC analistleri, hızla değişen ve genişleyen bir bulut altyapısındaki güvenlik verilerini izleyebilir ve analiz edebilir.
– Örnek: Kuruluşunuzun AWS kaynakları büyüdükçe CloudWatch, artan günlük hacimlerine ve ölçüm verilerine uyum sağlayacak şekilde sorunsuz bir şekilde ölçeklenir ve güvenlik izlemenin kaynak kısıtlamalarına neden olmadan etkili kalmasını sağlar.
SOC analistleri, AWS CloudWatch’un yeteneklerinden yararlanarak güvenlik tehditlerini gerçek zamanlı olarak izleme, tespit etme, yanıtlama ve azaltma becerilerini geliştirerek AWS ortamlarının güvenlik duruşunu güçlendirebilir.
CloudWatch yapılandırmasını ve saldırı senaryosunu içeren ayrıntılı bir gerçek dünya örneği oluşturalım.
Gerçek Dünya Senaryosu: AWS CloudWatch ile Kaba Kuvvet SSH Saldırısını Algılama
Arka plan
Bir finansal hizmetler şirketi için AWS ortamının güvenliğini izlemekten sorumlu bir Güvenlik Operasyon Merkezi (SOC) analistisiniz. Kuruluşunuz kritik uygulamaları ve verileri AWS bulutunda barındırır. Bu senaryoda, AWS CloudWatch’u kaba kuvvet SSH saldırısını algılayacak ve yanıt verecek şekilde ayarlayacaksınız.
Senaryo Detayları
1. İlk CloudWatch Yapılandırması
– Metrik Yapılandırması: Bir Amazon EC2 örneğinde başarısız SSH oturum açma girişimlerini izlemek için özel bir CloudWatch ölçümü yapılandırın. “Uygulamam/Güvenlik” gibi özel bir ad alanı kullanın ve izlenen örneği tanımlamak için bir boyut oluşturun.
– Alarmlar: Özel ölçüm önceden tanımlanmış bir eşiği aştığında tetiklenen bir CloudWatch Alarmı oluşturun. Örneğin eşiği bir dakika içinde üç başarısız oturum açma girişimine ayarlayın.
– Bildirim: Alarmı, tetiklendiğinde Amazon Simple Notification Service (SNS) aracılığıyla SOC ekibine bildirim gönderecek şekilde yapılandırın.
2. Saldırı Senaryosu: Kaba Kuvvet SSH Saldırısı
– Saldırı Açıklaması: Bir saldırgan, kaba kuvvet SSH saldırısı başlatarak EC2 bulut sunucunuza yetkisiz erişim elde etmeye çalışıyor. Saldırgan, SSH şifrelerini sistematik olarak tahmin etmek için bir komut dosyası kullanıyor.
– Saldırı İlerlemesi: Saldırgan, ortak kullanıcı adlarını ve çeşitli şifreleri kullanarak oturum açmayı deneyerek başlar. Birkaç başarısız giriş denemesinden sonra saldırgan, “admin” kullanıcısının SSH şifresini başarıyla tahmin eder.
3. Tespit ve Yanıt
– CloudWatch Alarmı Tetiklendi: Saldırganın kaba kuvvet SSH saldırısı bir dakika içinde üç başarısız oturum açma girişimi eşiğini aştığında CloudWatch Alarmı tetiklenir.
– Bildirim: CloudWatch, SNS aracılığıyla SOC ekibine anında bir bildirim göndererek onları olası güvenlik olayına karşı uyarır.
– Soruşturma: SOC analistleri, etkilenen EC2 bulut sunucusu için SSH oturum açma günlüklerini sorgulamak üzere CloudWatch Logs Insights’a erişir. Saldırganın IP adresini belirler ve saldırı hakkında zaman çerçevesi ve başarısız girişim sayısı gibi ek bağlamları toplarlar.
– Anında Yanıt: Bulgulara dayanarak SOC ekibi derhal harekete geçer. Aşağıdaki adımları başlatırlar:
– Gelen SSH trafiğini kısıtlamak için güvenlik grubu kurallarını değiştirerek EC2 örneğini yalıtın.
– Daha fazla yetkisiz erişimi önlemek için “yönetici” kullanıcısının SSH anahtarlarını ve kimlik bilgilerini güncelleyin.
– AWS Ağ ACL’lerini veya güvenlik grubu kurallarını kullanarak saldırganın IP adresini engelleyin.
4. Olay Sonrası Analiz
– Kök Neden Analizi: SOC analistleri, saldırganın nasıl erişim kazandığını belirlemek için CloudWatch Logs’u kullanarak olay sonrası bir analiz gerçekleştirir. Zayıf SSH şifre politikalarının katkıda bulunan bir faktör olduğunu tespit ediyorlar.
– Azaltıcı Önlemler: SOC ekibi gelecekteki kaba kuvvet saldırılarını önlemek için önlemler uyguluyor:
– Güçlü parola politikalarını zorlar ve çok faktörlü kimlik doğrulamayı (MFA) teşvik eder.
– Tekrarlanan başarısız oturum açma denemeleriyle IP adreslerini otomatik olarak engellemek için CloudWatch Alarmları ve Lambda işlevlerini ayarlar.
– Kullanıcıları en iyi uygulamalar ve güvenlik farkındalığı konusunda eğitmek için güvenlik eğitimleri düzenler.
Bu gerçek dünya senaryosunda AWS CloudWatch, brute force SSH saldırısının tespit edilmesinde ve buna yanıt verilmesinde önemli bir rol oynayarak SOC ekibinin AWS ortamını korumak için hızlı bir şekilde harekete geçmesine olanak tanıdı. Ayrıca olay sonrası analiz, güvenlik politikalarındaki zayıflıkların tespit edilmesine yardımcı oldu ve proaktif hafifletme önlemlerinin alınmasına yol açtı.
CloudWatch Günlük Analizleri
Amazon CloudWatch Logs Insights, çeşitli kaynaklardan gelen günlük verilerinin gerçek zamanlı analizine olanak tanıyan bir AWS hizmetidir. – benzeri bir sözdizimi kullanarak etkileşimli sorgulama sunarak kullanıcıların verileri verimli bir şekilde filtrelemesine, toplamasına ve görselleştirmesine olanak tanır. Hizmet, otomatik ayrıştırma, CloudWatch ile kusursuz entegrasyon sağlar ve çeşitli grafik görselleştirmelerini destekler. CloudWatch Logs Insights, çalıştırdığınız sorgular için ödeme yaptığınız için uygun maliyetlidir ve ayrıntılı erişim kontrolü sunar. Günlük analizini basitleştirerek kullanıcıların kalıpları belirlemesine, sorunları gidermesine ve uygulama performansını etkili bir şekilde izlemesine yardımcı olur.
Temel Sorgu Yapısı
CloudWatch Logs Insights’ta sorgulara benzer bir sorgu dili kullanarak sorgular oluşturursunuz. Bir sorgunun temel yapısı aşağıdaki bileşenleri içerir:
1. Alanların Seçilmesi:
fields @timestamp, @message, @fieldName
Örnek:
fields @timestamp, @message, statusCode
Açıklama: Sorgu sonuçlarına dahil etmek istediğiniz alanları belirtir. Ortak alanlar arasında günlük etkinliği zaman damgası için “@timestamp” ve günlük mesajı için “@message” yer alır. Günlük etkinliklerinize özel özel alanlar da ekleyebilirsiniz.
2. Verileri Filtreleme:
filter @fieldName = 'value' filter @fieldName like 'pattern'
Örnek:
filter @logStream = 'your-log-stream-name' filter @message like 'error'
Açıklama: Günlük olaylarını belirli ölçütlere göre filtreler. Olayları tam eşleşmeye (‘=’) göre filtreleyebilir veya kalıp eşleştirme için joker karakterlerle birlikte “beğen” seçeneğini kullanabilirsiniz. Filtreler, günlük etkinliklerinizdeki yerleşik alanlara (@logGroup, @logStream vb.) veya özel alanlara uygulanabilir.
3. Verileri Sıralama:
sort @fieldName desc
Örnek:
sort @timestamp desc
Açıklama: Sorgu sonuçlarını belirli bir alana (bu durumda zaman damgası) göre artan (“artan”) veya azalan (“azalan”) düzende sıralar.
4. Sonuçların Sınırlandırılma:
| limit number
Örnek:
| limit 50
Açıklama: Görüntülenen sonuç sayısını belirtilen sayıyla (bu durumda ’50’) sınırlar. Büyük sonuç kümelerini önlemek için kullanışlıdır.
Kesinlikle! AWS CloudWatch Logs Insights’taki gelişmiş günlük sorguları, günlük verilerinizden daha derin öngörüler elde etmek için daha karmaşık işlevlerin, operatörlerin ve tekniklerin kullanılmasını içerir. Gelişmiş günlük sorguları oluşturmaya yönelik bir kılavuzu burada bulabilirsiniz.
Gelişmiş Günlük Sorguları
1. Normal İfadeler:
- Günlük alanlarını normal ifadeler kullanarak eşleştirmek için `=~` operatörünü kullanın.
Örnek:
filter @message =~ /error|exception/
Açıklama: `@message` alanının, ‘hata’ veya ‘istisna’ içeren normal ifade modeliyle eşleştiği günlük olaylarını filtreler.
2. İç İçe Sorgular:
- Başka bir sorgunun sonuçlarına göre günlük verilerini filtrelemek için alt sorguları kullanın.
Örnek:
fields @timestamp, @message | filter @message like 'error' | sort @timestamp desc | limit 10
Açıklama: Bu örnekte, ‘hata’ içeren günlük olaylarını filtrelemek için bir alt sorgu kullanılır ve ardından dış sorgu, alt sorgudan elde edilen sonuçları sıralar ve sınırlar.
3. Matematiksel ve Karşılaştırmalı İşlemler:
- Gelişmiş veri analizi için matematiksel operatörleri (+, -, *, /) ve karşılaştırma operatörlerini (<, >, <=, >=, ==, !=) kullanın.
Örnek:
fields @timestamp, @responseTime | stats avg(responseTime) as avgResponseTime | filter @responseTime > avgResponseTime * 2
Açıklama: Ortalama yanıt süresini hesaplar ve `@responseTime`ın hesaplanan ortalamanın iki katından fazla olduğu günlük olaylarını filtreler.
4. Veri Toplama ve Gruplama:
- “İstatistikler” gibi işlevleri ve belirli alanlara dayalı grup günlüğü olaylarını kullanarak verileri toplayın.
Örnek:
fields @timestamp, @logLevel | stats count(*) by @logLevel
Açıklama: `@logLevel` alanına göre gruplandırılan günlük olaylarını sayarak günlük düzeylerinin dağılımına ilişkin bilgiler sağlar.
5. Zamana Dayalı Fonksiyonlar:
- Belirli zaman aralıklarındaki verileri analiz etmek için zamana dayalı işlevlerden yararlanın.
Örnek:
fields @timestamp, @message | filter @timestamp > now() - 1d
Açıklama: ‘@timestamp’ alanına göre son 24 saatteki günlük olaylarını filtreler (“1 gün” 1 günü temsil eder).
Örnekler
1. Güvenlik Olayı Tespiti:
Senaryo: Başarısız Oturum Açma Girişimlerini Algılama
Sorgu:
fields @timestamp, @message | filter @message like 'Failed login attempt' | sort @timestamp desc | limit 10
Açıklama: Bu sorgu, mesajın ‘Başarısız oturum açma denemesi’ni içerdiği günlük olaylarını filtreler. Güvenlik ekiplerinin potansiyel yetkisiz erişim girişimlerini hızlı bir şekilde tespit etmesine ve araştırmasına yardımcı olur.
2. Uygulama Performansının Takibi:
Senaryo: Yavaş API İsteklerini Belirleme
Sorgu:
fields @timestamp, @requestDuration | filter @requestType = 'API' and @requestDuration > 500 | sort @timestamp desc | limit 20
Açıklama: Bu sorgu, süresi 500 milisaniyeden uzun olan API istekleriyle ilgili günlük olaylarını filtreler. Bu tür yavaş isteklerin izlenmesi, uygulamadaki performans darboğazlarının belirlenmesine yardımcı olabilir.
3. Mikro Hizmet Mimarisinde Hata Analizi:
Senaryo: Mikro Hizmetlerdeki Hataları Analiz Etme
Sorgu:
fields @timestamp, @message | filter @logStream like '/microservices/' | filter @message like 'error' | sort @timestamp desc | limit 15
Açıklama: Bir mikro hizmet mimarisinde, günlükler çeşitli akışlara dağıtılabilir. Bu sorgu, mikro hizmetlerle ilgili günlük akışlarındaki hataları filtreleyerek mimari genelinde sorunların giderilmesine yardımcı olur.
4. Kaynak Kullanımının Takibi:
Senaryo: EC2 Bulut Sunucularında Yüksek CPU Kullanımını İzleme
Sorgu:
fields @timestamp, @message | filter @resourceType = 'EC2' and @metricType = 'CPUUtilization' and @metricValue > 80 | sort @timestamp desc | limit 10
Açıklama: Bu sorgu, CPU kullanımı %80’i aşan EC2 bulut sunucularıyla ilgili günlük olaylarını filtreler. Bu tür örneklerin izlenmesi, kaynak kısıtlamaları nedeniyle performans düşüşünü önleyebilir.
5. Makine Öğrenimi ile Anormallik Tespiti:
Senaryo: Erişim Günlüklerinde Olağandışı Kalıpların Tespiti
Sorgu:
fields @timestamp, @ipAddress | stats count(*) as requestCount by @ipAddress | filter requestCount > 100 | sort requestCount desc | limit 10
Açıklama: Bu sorgu, günlük olaylarını IP adresine göre toplar ve 100’den fazla istek içeren IP adreslerini tanımlar. İstek sayılarındaki ani artışlar, potansiyel bir DDoS saldırısına veya diğer anormal etkinliklere işaret edebilir.
6. Uyumluluk İzleme:
Senaryo: Hassas Verilere Erişimin İzlenmesi
Sorgu:
fields @timestamp, @userName, @filePath | filter @filePath like '/sensitive-data/' | sort @timestamp desc | limit 10
Açıklama: Bu sorgu, hassas veriler içeren dosyalara erişim denemeleriyle ilgili günlük olaylarını filtreler. Bu tür erişimin izlenmesi, veri güvenliği politikalarına uygunluğun sağlanmasına yardımcı olabilir.
Sorguları belirli günlük biçimlerine, alanlara ve uygulamanızın veya sisteminizin bağlamına göre özelleştirmek önemlidir.
CloudWatch Gerçek Dünya Örneği
EC2 örneğinde çalışan bir uygulamamız var ve bunu izlemek için CloudWatch’u kurduk. Öncelikle awslog’ları EC2’ye nasıl kuracağımıza bakacağız. Apache sunucusunda ve günlük dosyasında uygulama barındırma, “/var/log/apache2/access.log” olan varsayılan bir günlük yoludur.
Awslog’ları EC2 örneğine yükleyin
AWS CloudWatch Logs aracısını (awslogs) bir EC2 bulut sunucusuna yüklemek, günlükleri Amazon CloudWatch’ta merkezi olarak izlemenize ve depolamanıza olanak tanır. Sağlanan ‘curl’ komutunu kullanarak awslog’ları yüklemek için adım adım talimatlar aşağıda verilmiştir:
1. EC2 Bulut Sunucunuza Bağlanın:
EC2 bulut sunucunuza bağlanmak için SSH’yi kullanın. “örneğinizin-ip” kısmını gerçek EC2 bulut sunucunuzun genel IP adresiyle değiştirin.
ssh ec2-user@örneğinizin-ip’si
2. awslogs Agent Komut Dosyasını indirin:
Amazon S3’ten awslogs aracısı kurulum komut dosyasını indirmek için “curl” komutunu kullanın:
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
3. Kurulum Komut Dosyasını çalıştırın:
İndirilen kurulum komut dosyasını Python kullanarak çalıştırın. Bu komut dosyası, yapılandırma işlemi boyunca size yol gösterecektir.
sudo python ./awslogs-agent-setup.py –region us-east-1
‘us-east-1’i istediğiniz AWS bölgesiyle değiştirin.
4. Yapılandırma Sihirbazını izleyin:
Kurulum komut dosyası sizden çeşitli yapılandırma seçenekleri isteyecektir. Yapılandırmanız gerekebilecek şeyler şunlardır:
- AWS Erişim Anahtarı Kimliği ve Gizli Erişim Anahtarı: CloudWatch Logs grupları ve akışları oluşturmak için AWS kimlik bilgilerinize gerekli izinleri sağlayın.
- Varsayılan Bölge Adı: Günlüklerinizin gönderileceği AWS bölgesini girin.
- Varsayılan Çıkış Formatı: Uygun bir çıkış formatı seçin. JSON yaygın bir seçimdir.
- Gönderilecek Günlük Dosyası: CloudWatch Logs’a göndermek istediğiniz günlük dosyalarını belirtin. Birden fazla dosya ve dosya deseni belirtebilirsiniz.
- Günlük Grubu Adı: CloudWatch Logs’ta günlük grubu için bir ad tanımlayın.
- Günlük Akışı Adı: İsteğe bağlı olarak, günlük akışı adlarını oluşturmak için bir model belirtin.
5. awslogs Hizmetini Başlatın ve Etkinleştirin:
Yapılandırma tamamlandıktan sonra, sistem önyüklemesinde otomatik olarak başlatılmasını sağlamak için awslogs hizmetini başlatın ve etkinleştirin:
sudo service awslogs start
6. Kurulumu Doğrulayın:
Hatasız çalıştığından emin olmak için awslogs hizmetinin durumunu kontrol edin:
sudo service awslogs status
Bu kadar! AWS CloudWatch Logs aracısı (awslogs) artık EC2 bulut sunucunuza yüklenip yapılandırılmıştır ve günlükleri belirtilen CloudWatch Logs grubuna göndermektedir. Yapılandırmaları özel kullanım durumunuza ve en iyi güvenlik uygulamalarına göre ayarladığınızdan emin olun.
Cloudwatch Logs Insights ile SQL Enjeksiyonunu Algılama
CloudWatch Logs Insights’ı kullanarak SQL Injection (SQLi) saldırılarını potansiyel olarak tespit edebilirsiniz ancak günlük tabanlı tespit yöntemlerinin sınırlamalarını anlamak önemlidir. Günlük analizi, SQL Enjeksiyon girişimlerinin göstergesi olan belirli kalıpları tanımlayabilse de, tüm karmaşık saldırı tekniklerini yakalayamayabilir.
CloudWatch Logs Insights’ı kullanarak Apache erişim günlüklerinizdeki olası SQL Enjeksiyon (SQLi) saldırılarını tespit etmek için, SQL enjeksiyon denemelerini gösteren belirli kalıpları veya anahtar kelimeleri arayan özel günlük sorguları oluşturmanız gerekir. CloudWatch Logs Insights’ta sorgular oluşturarak günlük verilerinizdeki potansiyel güvenlik tehditlerini tanımlayabilirsiniz.
- AWS Yönetim Konsolu’na gidin.
- CloudWatch’a gidin.
- CloudWatch kontrol panelinde gezinme bölmesindeki “Günlükler”e tıklayın.
- Apache erişim günlüklerinizi içeren günlük grubunu seçin.
- Günlük grubu ayrıntıları sayfasında “Günlük Analizleri”ne tıklayın.
- Sorgunuzu sorgu düzenleyicisine yazın.
- Sorguyu yürütmek için “Sorguyu çalıştır” düğmesine tıklayın.
Örneğin Apache erişim günlüklerindeki olası SQL Enjeksiyon saldırılarını tanımlamak için aşağıdakine benzer bir sorgu yazabilirsiniz:
fields @timestamp, @message | filter @message like /.*(SELECT|UNION|INSERT|UPDATE|DELETE|FROM|WHERE|DROP|AND|OR).*/
CloudWatch Logs Insights’taki sorgumuzun taranan 746 kayıttan 121 kayıtla eşleştiğini gösteriyor gibi görünüyor. Bu, Apache erişim günlüklerinizdeki 121 günlük girişinin, çalıştırdığınız sorguya dayalı olarak olası SQL Enjeksiyon denemelerini gösteren kalıplar içerdiği anlamına gelir.
Eşleşen bu kayıtları daha fazla araştırmak istiyorsanız olası SQL Enjeksiyon girişimleri hakkında daha fazla bağlam elde etmek için belirli günlük girişlerini analiz edebilirsiniz. Saldırıların doğasını anlamak için bu günlük girişlerinde IP adresleri, istenen URL’ler ve diğer parametreler gibi ayrıntıları arayın.