Elasticsearch, Fluentd, Kibana

EFK (Elasticsearch, Fluentd, Kibana) stack’ini Kubernetes üzerinde kurduktan sonra log toplama işlemi için Fluentd, Kubernetes pod’larından logları alıp Elasticsearch’e gönderir. Bu süreç adım adım aşağıda açıklanmıştır:

Docker ile elasticsearch kurulumu

git clone https://github.com/ousiax/efk-docker.git

Oluşan klasör içine geçip

sudo docker compose up -d

 

1. Fluentd Konfigürasyonu

Fluentd, Kubernetes’teki pod’lar tarafından üretilen logları toplar. Varsayılan olarak, Fluentd, Kubernetes’in var/log/containers dizinindeki logları izler ve toplar.

  • Fluentd bir DaemonSet olarak çalıştırılır, bu sayede her Kubernetes node’una bir Fluentd pod’u yerleştirilir.
  • Fluentd, Kubernetes API’sine erişerek logların hangi pod, namespace ve container’dan geldiğini öğrenir.

Örnek DaemonSet:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: fluentd
  namespace: kube-system
spec:
  selector:
    matchLabels:
      name: fluentd
  template:
    metadata:
      labels:
        name: fluentd
    spec:
      containers:
      - name: fluentd
        image: fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch
        env:
        - name: FLUENT_ELASTICSEARCH_HOST
          value: "elasticsearch-service"
        - name: FLUENT_ELASTICSEARCH_PORT
          value: "9200"
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

2. Logların Fluentd ile Toplanması

Kubernetes node’larındaki Fluentd pod’ları, node’un dosya sisteminde yer alan /var/log/containers dizinini izleyerek burada bulunan tüm container loglarını toplar. Fluentd, bu logları yapılandırmasına göre Elasticsearch’e gönderir.

3. Elasticsearch ile Logların Saklanması

Fluentd, topladığı logları Elasticsearch’e gönderir ve Elasticsearch bu logları indeksleyerek saklar. Elasticsearch’ü kurarken aşağıdaki gibi bir Service tanımlayarak Fluentd’ın Elasticsearch ile bağlantı kurmasını sağlayabilirsiniz:

Elasticsearch Service:

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-service
  namespace: kube-system
spec:
  selector:
    app: elasticsearch
  ports:
  - port: 9200
    targetPort: 9200

4. Kibana ile Logların Görselleştirilmesi

Kibana, Elasticsearch’teki logları görselleştirmenizi sağlar. Kibana’yı da Kubernetes’e bir Deployment olarak kurduktan sonra, Elasticsearch’ü Kibana’ya tanımlamanız gerekir.

Kibana Configuration:

apiVersion: v1
kind: Service
metadata:
  name: kibana-service
  namespace: kube-system
spec:
  ports:
  - port: 5601
    targetPort: 5601
  selector:
    app: kibana

5. Logların Görüntülenmesi

Kibana’yı kullanarak topladığınız logları analiz edebilir ve görselleştirebilirsiniz. Kibana arayüzüne gidip, Elasticsearch indekslerinizi ekleyip, logları görmeye başlayabilirsiniz.

6. RBAC Yetkisi Verme

Fluentd’ın Kubernetes metadata’larını toplaması için uygun yetkilere sahip olması gerekir. Bunun için, Kubernetes’teki RBAC (Role-Based Access Control) kullanarak Fluentd’a gerekli izinleri vermelisiniz.

Role ve RoleBinding Oluşturma:

  1. Role (Yetki Tanımlama): Aşağıdaki Role tanımını kullanarak namespaces kaynaklarına listeleme yetkisi verebilirsiniz:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: fluentd-role
  namespace: kube-system
rules:
- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["list", "get", "watch"]
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: fluentd-rolebinding
  namespace: kube-system
subjects:
- kind: ServiceAccount
  name: default
  namespace: kube-system
roleRef:
  kind: Role
  name: fluentd-role
  apiGroup: rbac.authorization.k8s.io

 


Böylelikle Kubernetes cluster’ındaki tüm pod’lardan Fluentd aracılığıyla logları toplar ve Elasticsearch’e gönderip, Kibana ile görüntüleyebilirsiniz. Fluentd’ı düzgün yapılandırdığınızdan ve Elasticsearch’ün Fluentd tarafından ulaşılabilir olduğundan emin olmanız gerekir.

KVM sanal windows için unutulan admin şifresi değiştirme

KVM’de kullandığınız Windows 10 yönetici şifresini unutursanız,qcow image üzerinde işlem yaparak şifrenizi resetleyebilirsiniz.

İlk olarak Linux KVM hostunuza guestfish kurmalısınız..Kurulumu

 

sudo apt install libguestfs-tools

 

 

komutuyla yaptım.

Daha sonra ;

sudo guestfish -i win_11.qcow2

 

komutunu uyguladım ve beni fs alanına getirdi.

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: ‘help’ for help on commands
‘man’ to read the manual
‘quit’ to quit the shell

Operating system: Windows Server 2012 R2 Standard
/dev/sda1 mounted on /

><fs> mv /Windows/System32/utilman.exe /Windows/System32/utilman1.exe
><fs> cp /Windows/System32/cmd.exe /Windows/System32/utilman.exe
><fs> exit

 

utilman.exe ile cmd.exe yi yer değiştirerek,windows 10 login sayfasında accesibility butonuna tıklayarak cmd.exe yi çağırmış oluyoruz.

Guestfish konsoldan exit yazarak çıktıktan sonra işletim sistemimizi normal şekilde başlatıyoruz.Aşağıdaki ekranda gördüğünüz butona tıklayınca utilman yerine cmd çalışacak.

Cmd komut satırında ekranda göreceğiniz komutu uygulayın.

 

 

 

Postfix mail kuyruğunu filtreleyerek temizleme

Bu örnekte göndericisi [email protected] olan tüm emailler kuyruktan silinir.

postqueue -j | jq -r ‘select(.sender == “[email protected]”) | .queue_id’ | xargs -I {} postsuper -d {}

jq kurulu olmalıdır ( apt install jq)

başka filtreleme kriterleri için

postqueue -j | jq

yazıp json çıktısındaki alanları görebilirsiniz.

Phalcon Php Framework 3.x Kurulumu

Cyber Panel + Ubuntu 20 sunucu üzerinde phalcon 3.x (eski versiyon) kurulum aşamaları

1.Dilediğin php versiyonu için pecl ve pear eklentisini kur.

apt install lsphp72-pecl lsphp72-pear

 

2.Phalcon 3.4.5 tar dosyasını indir.

wget https://github.com/phalcon/cphalcon/archive/refs/tags/v3.4.5.tar.gz

tar zxvf v3.4.5.tar.gz

cd cphalcon-3.4.5/build/

./install

 

 

3.Tüm adımlar başarılı ise ini dosyasını ekle

/usr/local/lsws/lsphp72/etc/php/7.2/mods-available altında phalcon.ini dosyası oluştur.openlitespeed'i restart et.

cat phalcon.ini

#extension=psr.so #v4 ve sonrası için gerekli.
extension=phalcon.so

 

 

Not:Benzer şekilde phalcon v4 de kurabilirsin ancak Phalcon v4 psr eklentisine gereksinimi var.Bunun için;

cd /usr/local/lsws/lsphp72/bin

./pecl install psr-1.1.0

 

 

 

Vmware esx flat vmdk dosyası kurtarma

Eğer sanal sunucunuzun (vmware esx) vmdk dosyasını bir şekilde yitirdiyseniz ve -flat vmdk dosyanız hala duruyorsa bu yöntem ile sunucunuzu kurtarabilirsiniz.

1.Esx sunucunuza root olarak ssh üzerinden login olun.

2.Sanal sunucuların disklerinin bulunduğu ana klasöre geçin;

cd /vmfs/volumes/SİZİN_DATASTORE_KLASÖRÜNÜZ/SANAL_MAKİNA_ADI

3. Flat dosyanızın güncel boyutunu kontrol edin;

ls -l vmdisk0-flat.vmdk

4.yeni bir geçici vmdk dosyası oluşturun;

vmkfstools -c (dosya boyutunu buraya yazın) -d thin temp.vmdk

5.Yukarıdaki komutu uyguladığınızda temp.vmdk ve temp-flat.vmdk oluşturulmuş olacaktır.Kontrol edin.Not : Esx 5.5 öncesi -a ile iscsi tipini de ilave etmelisiniz.Örnek -a lsilogic

6.Şimdi temp-flat.vmdk yı silin;

rm -i temp-flat.vmdk

7.Şimdi sıra temp.vmdk yı gerekli sunucunuz için tekrar adlandırmanız gerekiyor;

mv -i temp.vmdk SANAL_MAKİNA_ADI.vmdk

8.Yukarda rename ettiğiniz dosyayı konsolda vi veya benzeri bir editorle açın.Açamıyorsanız dosyayı pc nize indirin.Notepad++ ile açın ve RW ibaresi geçen satırı bulun.Orada flat dosyasının adının bulunduğu kısmı değiştirmeli.kendi flat dosyanızın adını yazmalısınız.temp-flat.vmdk ibaresini orjinal sunucu ismi (SANAL_MAKİNA_ADI)-flat.vmdk olarak değiştirin.

9.Sonraki işlemler esx arayüzünde yapılıyor.Sanal sunucunuza varolan diski seçip diskinizi seçip ekleyin ve vm sunucunuzu start edin.

WordPress anasayfada gereksiz css nasıl kaldırılır?

Temanızın functions.php dosyasında veya code snippets pluginini kurarak aşağıda size uygun olan bölümleri yazın.

Dequeuing CSS files conditionally
*/
function stramaxon_remove_unnecessary_styles() {

$remove_always = array(
// an empty array
);

// If home
if ( is_home() || is_front_page() ) {
$remove_always[‘font-awesome-css’] = ‘font-awesome’;
$remove_always[‘learnpress-widgets-css’] = ‘learnpress-widgets’;
$remove_always[‘structured-content-frontend-css’] = ‘structured-content-frontend’;
}

// Run the loop
foreach( $remove_always as $item_script ) {
wp_dequeue_style( $item_script );
wp_deregister_style( $item_script );
}
}
add_action( ‘wp_print_styles’, ‘stramaxon_remove_unnecessary_styles’, 1 );
//
// Alternative
// Fully Disable Gutenberg editor.
add_filter(‘use_block_editor_for_post_type’, ‘__return_false’, 10);
// Don’t load Gutenberg-related stylesheets.
add_action( ‘wp_enqueue_scripts’, ‘remove_block_css’, 100 );
function remove_block_css() {
wp_dequeue_style( ‘wp-block-library’ ); // WordPress core
wp_dequeue_style( ‘wp-block-library-theme’ ); // WordPress core
wp_dequeue_style( ‘wc-block-style’ ); // WooCommerce
wp_dequeue_style( ‘dashicons’ ); // WooCommerce
wp_dequeue_style( ‘storefront-gutenberg-blocks’ ); // Storefront theme
}

Eğer wordpress sitenizde embedded video kullanmıyorsanı mediaelements eklentisi için de aynı yolu izleyebilirsiniz.

function deregister_media_elements(){
   wp_deregister_script('wp-mediaelement');
   wp_deregister_style('wp-mediaelement');
}
add_action('wp_enqueue_scripts','deregister_media_elements');

Kaynak

https://www.stramaxon.com/2021/10/conditionally-loading-js-css-files-in.html

https://smartwp.com/remove-gutenberg-css/

https://wordpress.stackexchange.com/questions/355228/how-do-i-disable-or-remove-the-native-wordpress-video-player

Linuxta tüm dosyalarda bul değiştir komutu

Örnek olarak tüm eposta hesaplarının spamassassin config dosyalarında puan değişikliği aşağıdaki şekilde yapılabilir.

find . -name user_prefs -exec sed -i ‘s/required_score 0.0/required_score 5.0/g’ {} \;

Konsolda çok satırlı dosyayı tek satıra dönüştürmek.

Aşağıdaki komutla birden fazla satır veri olan dosyanızı tek satır haline çevirebilirsiniz.

tr -d ‘\n’ < dosyaniz.txt