:::: MENU ::::

setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory Hatası ve Çözümü

setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory:

 

Böyle bir hata aldığınızda aşağıdaki çözümü uygulayabilirsiniz.

/etc/ssh/ssh_config dosyasında aşağıdaki içeriği düzenleyerek çözüm bulabilirsiniz.

SendEnv LANG LC_ * değerin  

 


Mysql Root Parolası Restleme Bash Script

Mysql root parolasını reset’lemek için kullanabileceğiniz bir script 🙂

github linki…

 


Komut Satırından Netapp Snapshot Restore

Netapp storage kullanıyorsak snapshot’ın nekadar değerli bir nimet olduğunu söylemeye gerek yok. Bazen bir volume için aldığımız ss’ı başka bir volume restore etme ihtiyacı olabilir. Bu durumda aşağıdaki adımları takip edebilrisiniz.

 


nrpe installation error(configure: error: Cannot find ssl libraries)

nrpe installation error(configure: error: Cannot find ssl libraries)
HATA:
ÇÖZÜM:

 


Servis Durum Kontrol Script

Çok gelişmiş monitoring sistemleri olmasına rağmen bazen ihtiyaç olduğunda kullanabileceğiniz,linux ortamlarda çalıştırdığınız servisleri check etmek için basit bir Servis Durum Kontrol Scripti;

Github linki;

https://github.com/omeroner/sysadmin/blob/master/scripts/bash/service_check.sh


Nginx’e Letsencrypt ile SSL Kurmak

Web sitenizin güvenliğini , ziyaretçilerinizin sitenize olan güvenini  artırabilir. Web sunucunuzda şifrelemenin(https) ayarlanması, genellikle çoğu kişiye karmaşık ve pahalı gelmiştir. Letsencrypt,  bu karmaşıklığı sadeleştirerek bunu değiştirmeyi hedefliyor. Basit, otomatikleştirilmiş komutlarla sertifikaların alınmasına ve yüklenmesine izin veren açık ve ücretsiz bir projedir.

Letsencrypt, IdentTrust tarafından çapraz imzalanan ve son sertifikalarının tüm önemli tarayıcılar tarafından kabul edilmesine izin veren sertifikaları verebilen yeni bir Sertifika Yetkilisidir. Bu kılavuz, certbot istemcisi  sürüm 0.11.1’i yükleme adımlarını ve nginx çalıştıran CentOS 7 sunucunuzdaki sertifikaları yönetmek için Nginx’e Letsencrypt ile SSL Kurmak için gerekli adımları  özetlemektedir  .

certbot kurulumu

nginx kurulumu

güvenlik duvarı yapılandırması

centos üzerinde güvenlik duvarı varsa :

certbot  oluştur

nginx yapılandırmasını güncelle

nginx  servisini başlatma

SSL için otomatik yenileme oluştur

letsencryst’i oluşturduğumuz sertifikanın bir süresi var , otomatik yenilemek için yenileme komut dosyası oluştur

yenileme script’in içeriği

günde 2 kez güncellemeyi başlat

Manuel yenileme

 


Linux Komut Satırında Kullanıcıları Listelemek

Linux’ta iki tür kullanıcı bulunur; (useradd komutu kullanılarak yaratılan) ve sistem kullanıcıları. Sistem kullanıcılarının çoğu, çeşitli paket yüklemeleri sırasında oluşturulan ve OS’yi kurarken oluşturulan kullanıcılardır. Sistem kullanıcıları, /etc/login.defs dosyasında tanımlandığı gibi düşük UID değerlerine (genellikle 0-99) sahip olmalıdır.

/etc/login.defs dosyasında tanımlanan minimum değerlerden biraz daha yüksek UID alan kullanıcı adı“Useradd” komutu  kullanarak oluşturduğunuz kullanıcılardır.

Yukarıdaki /etc/login.def dosyasındaki değerler , normal kullanıcıların 500-60000 aralığında UID’leri olması gerektiğini tanımlar.

“Useradd” kullanarak bir kullanıcı adı oluşturduğunuzda, buna karşılık gelen bir girdi  /etc/passwd dosyasında yaratılır. Bu dosya, tüm kullanıcılar hakkında bilgi içerir.

/etc/passwd dosyasının bir örneği aşağıdaki gibidir.

Yani, Linux makinenizdeki tüm kullanıcıların listesini bulmak için bu dosyayı kullanabilirsiniz. !

1. Makinenizdeki tüm kullanıcıları listelemek

Makinenizdeki tüm kullanıcıları listelemek için aşağıdaki komutu kullanabilirsiniz.

Bu, tüm sistem kullanıcılarını ve normal kullanıcıları listeler.

2. Linux makinenizdeki tüm Sistem Kullanıcılarını listelemek

Sistem kullanıcıları /etc/login.defs dosyamızın ayarlarına göre UID’leri 500’den az kullanacaklardır. Böylece, tüm sistem kullanıcılarını listelemek için aşağıdaki komutu kullanabilirsiniz.

3. useradd komutu kullanılarak oluşturulan tüm normal kullanıcıları listeleme

Login.defs dosyasındaki ayarlara göre, normal kullanıcıların Linux makinemizde 500 ile 60000 arasında UID olması gerekir. Böylece, normal kullanıcıları listelemek için aşağıdaki komutu kullanabilirsiniz.


Sysdig Nedir ? Sysdig Kullanarak Sunucu İzleme

sysdig_logo

Sysdig Nedir ?

Bazı durumlarda bir işlem tarafından yapılan ve alınan sistem çağrılarını takip etmek gerekebilir bunun için  akla gelen ilk şey nedir? Muhtemelen haklı olarak düşünceniz strace olur ve haklısın. strace hakkında bilgi sahibi değilseniz ilgili paylaşımımı inceleyebilirsiniz.

Hangi araç ile komut satırından ham ağ trafiğini izlemek için kullanırsınız? Hakkında bilgi sahibiyseniz  tcpdump , kullanarak yine doğru bir seçim yapmış oluruz. (unix’de her şey bir dosyadır)

Açık dosyaları izlemek zorunda kaldığımızda ise ilk kullanacağımız lsof‘dur. lsof ile daha önce payaştığım yazıya göz atabilirsiniz.

Sysdig, açık kaynak kodlu linux (RHE,Debian,Container),OSX ve Windows sistemlerde çalışan ve strace , tcpdump ve lsof gibi (strace+tcpdump+lsof+iftop+htop) sysadmin’in sıklıkla kullandığı klasik ama gerçekten harika araçları tek çatıda toplayan ve  farklı birçok  kabiliyet ve özelliğe sahip gelişmiş bir araçtır.

Ayrıca, çok güzel de bir filtreleme sistemine sahiptir. Bu şekilde spesifik olarak system çağrıların(syscall) ve olayların(event) belirttiğiniz kriterlere göre görüntülenmesini veya istersek bir dosyaya(trace file) yazılmasını sağlayabiliriz. Bu trace file’ları MacOS X ya da Windows gibi farklı platformlar üzerinde de analiz edebiliriz.

Sysdig’in bir diğer güzel özelliği ise “chisels” adını verdikleri analiz scriptleridir. Bu scriptler toplanan verinin anlamlandırılması için kullanılan Lua dilinde yazılmış scriptlerdir ve sisteminiz hakkında detaylı bilgi edinmek için kullanabileceğiniz ve analiz ihtiyaçlarınıza göre kendi scriptlerinizi geliştirebileceğiniz bir mekanizmadır. Yazının sonunda örnekler ile bu kısmı daha iyi analayacaksınız.

Bu yazıda sysdig ile Linux sistem izleme ve sorun gidermek için kurulum ve temel kullanımını inceleyeceğiz.

Sysdig Kurulumu

Bu yazı için ben, kısalık ve kolaylık uğruna resmi internet sitesinde açıklanan otomatik yükleme işlemini kullanmayı tercih ettim.

Sysdig kurulumu gerçekleştirmek için sudo olarak aşağıdaki komutu çalıştırmanız yeterli oluyor. Herşey otomatik olarak kuruluyor. Tüm kurulum seçenekleri için sayfayı inceleyebilirsiniz.

Sysdig Kullanımı

Yükleme tamamlandıktan sonra, sysdig’in en basit (primitive) kullanımı komut satırından doğrudan sysdig komutunu çalıştırmaktır.

Bu şekilde o an çalışan sistem çağrıları ve event’ler ekrandan akacaktır. Bu çıktıda her bir olay bir satır olacak şekilde görüntülenmektedir ve her bir satırda aşağıda sıralaması verilen bilgiler ekrana basılacaktır:

İlgili bilgilerin açıklaması da şu şekildedir:

  • evt.num     :  Event numarası
  • evt.time     : Event tarihi
  • evt.cpu      : Event’in hangi kaç numaralı CPU core üzerinde çalıştığı
  • proc.name: Süreç ismi.
  • thread.tid : Thread ID ( tek thread’li süreçler için PID)
  • evt.dir        : Event yönü, giriş eventleri için > ve çıkışlar için <
  • evt.type      : Event tipi, örm: ‘open’, ‘read’, ‘write’
  • evt.args      : event’in aldığı argüman.

Sysdig Filtreleme (class.field) Parametreleri

Sysdig’i yukarıda verilen şekilde tüm sistem olaylarını görüntüleyecek şekilde kullanmak aynı anda binlerce olayın ekrandan akıp gitmesine ve bu bilgi akışı içerisinde kaybolup gitmenize neden olacaktır; işte strace’den alışık olduğumuz bu verimsiz durumu ortadan kaldırmak için sysdig’in çok gelişmiş bir filtreleme sistemi bulunmaktadır.

Bu sistem sayesinde binlerce sistem çağrısını en ince ayrıntısına kadar filtreleyerek spesifik aramalar yapabiliriz.

Örnek olarak vim komutuna ait aktiviteyi görüntülemek için sysdig’i aşağıdaki şekilde kullanabilirsiniz:

Yukardaki komutu verip aşağıdaki gibi bir vim komutu çalıştırırsanız.

Aşağıdaki şekle benzer bir çıktı görürsünüz.

Sysdig’in fitreleme yapısı standart karşılaştırma operatörlerini ( =, !=, <, <=, >, >= ) ve boolean operatörleri (“and”, “or” ve “not”) desteklediği için filtrelemeyi genişletmek çok kolaydır.

Örnek olarak cat ve vim komutunun aktivitelerini görüntülemek için komutu şu şekilde kullanmak mümkündür:

ya da ping haricindeki tüm diğer süreçlerin kapadığı dosyaları görüntülemek için örnek şu şekildedir:

Tüm filtreleme (class.field) seçeneklerini aşağıdaki komut ile görebiliriz:

Sysdig Kullanışlı Örnekler

Belirli bir dizin altında işlem yapan süreçleri görüntülemek için:

Bellibir süreç haricinde dosyalar üzerinde aktivite gerçekleştiren süreçler ve yaptıkları işlemler:

Java ve MySQL süreçlerine ait aktivite:

Komutların aldığı parametreler üzerinden filtreleme yapmak için proc.args filtresi yani class.filed’i kullanılmaktadır.

Örnek olarak parametre olarak www.omeroner.com alan bir uygulamanın hareketlerini izlemek için (örn: dig www.omeroner.com)

Spesifik bir ip adresi tarafından yapılan bağlantılar sonucu oluşan ve sshd süreci ile alakalı olmayan aktiviteyi incelemek için:

Mysql dışındaki süreçler tarafından karşılanan gelen network bağlantılarını incelemek için:

Belli bir  kullanıcıya ait tüm aktivitenin izlenmesi:

Belli bir gruba ait tüm aktivitenin izlenmesi:

Event tipine göre çağrıları görüntülemek için: (LINUX System Call Quick Reference için bu dosyayı inceleyebilirsiniz.)

Tüm event listesini görmek için:

Sysdig Çıktı Formatlarını Düzenleme

Sysdig ile filtreleme sonuçlarının  çıktılarını customize edebililiyoruz. Örnek olarak event tipi chdir (change dir) olan sistem çağrılarını, komutu (cd) çalıştıran kullanıcı ve ilgli dizini görüntülemek üzere formatlı bir şekilde ekrana basmak için şu komut kullanılabilir:

shell üzerinden gerçekleştirilen tüm komutları, kullanıcı, komut ve komut agrümanını içerecek şekilde ekrana basmak için:

Sysdig ile Trace Dosyaları

Yazının başında’da ifade ettiğim gibi sysdig ile elde ettiğimiz sonuçları daha sonra incelemek için bir dosyaya (trace file) yazdırabiliriz.

Örnek olarak tüm sysdig çıktısını trace.scap dosyasına yazılması için kullanılacak komut:

Sadece 50 adet event’in ilgili dosyaya yani trace.scap yazılmasını sağlamak için komut:

Trace dosyasına yazdırdığımız bir sysdig çıktılarını okumak için kullanılacak komut:

 

Sysdig ‘de Chisels Kullanımı

chisels , sysdig üzerinden elde edilen verinin anlamlandırılması üzere kullanılan scriptlere verilen addır ve öntanımlı olarak bir çok chisel bulunmaktadır.

Öncelikle bu chisel’lerin bir listesini -cl parametresi kullanarak görebiliriz:

chisel’ler hakkında daha detaylu bilgi almak üzere -i parametresi kullanılabilir. Örnek olarakbottlenecks isimli chisel’in ne iş yaptığına bakmak için aşağıdaki komut kullanılabilir:

 

Sysdig  Chisels Kullanışlı Örnekler

Ençok cpu kullanan süreçleri görmek için:

1 ms’den uzun süren I/O aktivitesi:

1 ms’den uzun süren network aktivitesi:

Syscall bazında en çok error üreten süreçler:

Süreçlere ait standart çıktıları ekrana basmak için (class.field kullanılabilir):

Yazma + Okuma anlamında en çok disk I/O’nun yapıldığı dosyalar:

En çok disk I/O üreten (Read + Write) süreçler:

Byte cinsinden toplam I/O miktarı:

Hangi süreçlerin hangi log dosyalarına ne yazdığının ekrana basılması:

Syslog’a yazılan her mesajın görüntülenmesi:

Spesific bir ip’nin ürettiği trafiğin görüntülenmesi (dikkat edeceğiniz üzere chisel’leri filtreleme seçenekleri kullanabiliyoruz):

Spesifik bir port üzerinde gerçekleşen trafiğin görüntülenmesi:

Byte cinsinden en çok trafik üreten bağlantıların listenmesi:

En çok trafik üreten portların listelenmesi: