Kategori arşivi: Kendime Not

Zabbix Discovery Özelliğini Kullanma

Merhabalar,

Bir önceki yazımda zabbix in nasıl kurulacağı hakkındaydı.
Bu yazımda zabbix de discovery özelliğini kullanarak networkümüzde bulunan servisleri ve cihazları nasıl bulacağımıza bakalım.

Configuration -> Discovery seçeneğine tıklayalım varsayılan olarak local network tanımlı geliyor.
Local networkü tıklayarak kendi networkümüzün ip bilgilerini giriyoruz.

Add linkine tıklayarak istediğimiz portları servisleri ekliyoruz.Burada varsayılan olarak ftp,ssh vb servisler geliyor.
Tcp olarak kendimiz de bulmak istediğimiz servis portlarını ekleyebiliyoruz.

Network bloğunu yazarken 192.168.1.1-254 olarak yazabileceğimiz gibi 192.168.1.0/23 geniş bir blok tanımlayabiliriz.

Port tanımlamalarında tek bir port tanımlaması yapılabildiği gibi port aralığı da verilebiliyor.

Örnek 139-445 gibi.

En altta bulunan update linkini tıklayarak zabbix in networkümüzü taramasını bekliyoruz.

Tarama sonucunu Monitoring -> Discovery altında bulabiliriz.

Bulunan cihaz ve servisler için daha sonra Configuration altında host olarak tanımlayıp gerekli bilgileri toplayabilirsiniz.

Bir sonraki yazıda buluşmak dileğiyle.

Zabbix Nedir? Nasıl kullanılır

Merhabalar,

Bu yazımda sizlere zabbix hakkında biraz bilgi ve deneyimlerimi paylaşacağım.

Zabbix, C ve PHP tabanlı, uç noktadaki ağ hizmetleri, sunucular, servisler ve ağ donanımlarını izlemek için Alexei Vladishev tarafından geliştirilmiştir.

Günümüzde git gide büyüyen yapılardan dolayı sistem yöneticileri için bu uç noktaların kontrolü büyük bir zorluk haline gelmiştir. Herhangi bir uç noktada meydana gelen bir aksaklık, sorunla bir süre sonra bir şekilde karşılaşılması ile haber olunur hale gelmiştir. Çünkü sistemler ve servisler artık çok genişledi ve takip edilmesi zor bir halde aldı.

İşte bu noktada zabbix işimize gerçektende çok yarayan bir tool. Zabbix üzerine tanımladığınız hostlarda, servislerde yada ağ cihazlarında herhangi bir anormallik tespit etmesi durumunda geliştirildiği sistem itibari ile bir çok aksiyonu sizin belirlediğiniz çerçevede gerçekleştirme sağlamaktadır.

Zabbix kurulumu nasıldır konusuna değinmeyeceğim çünkü artık kurulum yapmaya gerek kalmadan appliance olarak dağıtımları bulunmaktadır. Buradan appliance sürümlerine ulaşabilirsiniz. Böylece kurulum aşamalarından kurtulmuş olursunuz.

Siz var olan sisteminiz için kurulum yapacaksanız aşağıdaki adımları takip edebilirsiniz.
Şu an için Ubuntu 18.04 (Bionic Beaver) LTS versiyonu üzerinde paket olarak kurulabiliyor.

#wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
# dpkg -i zabbix-release_4.4-1+bionic_all.deb
# apt update

Veritabanı oluşturmak için

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

Veritabanı bağlantısı için zabbix_server.conf dosyasını editliyoruz.

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=#veritabanı şifresi#

Zabbix serverı çalıştırıp aktif etmek için aşağıdaki komutları giriyoruz.

# service zabbix-server apache2 php-fpm start
# update-rc.d zabbix-server apache2 php-fpm enable

Zabbix çalışma mantığını yukarıdaki resim üzerinden tanımlamaya çalışırsak.

İtem: Bilgi toplana modüldür ve her item farklı bir servis hakkında bilgi toplar. Ör: mysql bilgisini bir item alır, cpu bilgisini başka bir item

Trigger: Tetikleyici dersek direk bir çağrışım yapabilir. İtem’ın aldığı veride sizin belirlediğiniz durumlarda bir anormallik tespit edilirse trigger devreye girer.Ör: Mysql servisi için cevap veriyorsa 1 değeri döndürülür, fakar servis cevap vermiyorsa 0 değeri döner. Bu durumda siz mysql için 0 değeri aldığında bir trigger yazarsanız, servis cevap vermediğinde trigger devreye girmiş olur.Problem: Yukarıdaki örnekte belirtmiş olduğum problem modülünü içermektedir

Action: Bu modül ise servisin cevap vermemesi durumunda zabbix nasıl bir tepki versin onu belirliyoruz. Burada action modülü kullanmaz isek zabbix içeriğine girip triggerları izleyerek durumları kontrol edebiliriz. Fakat bir item’a bağlı bir trigger çalışmış ise bu trigger’a bağlı bir action gerçekleştirilip bu sorunun çözülmesi gerekmektedir.Action modülü bu sorunlara;
1 – Mail atarak
2 – SMS atarak
3 – Komut çalıştırarak müdahale edebilmektedir.

Sms atmak için usb modem kullanılabilir.

Gelin şimdi client makine üzerindeki mysql servisinin zabbix ile nasıl monitoring yapılacağını birlikte yapalım.

Ben appliance kurulumu yaptığım zabbix ile ilgili ayarlarla uğraşmadım direk ip adresi ile web üzerinden erişim sağlıyorum.

Giriş yapmak için varsayılan kullanıcı ismi Admin şifre zabbix.

Giriş yaptığımda beni bu şekilde bir sayfa karşılıyor. Burada ilk olarak host ekleme işlemini gerçekleştireceğim fakat bunun için client makine üzerinde öncelikle zabbix agent kuralım ve daha sonra burdan bağlantıyı gerçekleştirelim.

Zabbix Server -> 172.16.4.134 Ubuntu
Web Client -> 172.16.4.184 Centos 7

Komut satırı işlemleri CLİENT üzerinde yapılacaklartır.

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-agent

Yukarıdaki kurulumlardan sonra client makine üzerinde zabbix agent yapılandırmasına geçebiliriz.

vi /etc/zabbix/zabbix_agentd.conf#Dosyasında gerekli ayarları girelim.
Server= 172.16.4.134
ServerActive=172.16.4.134#Restart edelim
systemctl restart zabbix-agent

Yukarıdaki ayarlardan sonra artık client makine üzerinde zabbix agent restart ederek işlemi tamamlamış oluyor. Burada agent server tarafından gelecek isteği bekler. Server client üzerine hangi item için istek yollarda agent o servis ile ilgili bilgileri porttan iletir.

Şimdi zabbix üzerinden host tanımlamasına geçelim.

Zabbix web arayüzünden Configuration -> Hosts bölümüne giriyoruz. Kurmuş olduğum clienti tanıtacağız.

Bu bölümden Host sekmesinde bir isim veriyorum ve client makinenin IP adresini belirtiyorum. Default olarak 10050 portunu kullanıyor değiştirmediğim için öyle bırakıyorum. Daha sonra Templates sekmesinden hangi servisleri dinleyeceksem onları seçiyorum ve add diyorum. Daha sonra tekrar Hosts sekmesine tıklıyorum.

Burada ilk bir kaç dk yeşil olmayabilir istek ve cevap geldikten sonra artık yeşil olarak gözükmektedir. Burada Web Server yanında bazı Items Trigger’lar seçilen template ile otomatik gelmektedir. Buradan etkileşim kurarak actionlar oluşturulabilir.

Şimdi mysql servisinin durumunu dashboard üzerinde gösterelim. İlk olarak burada client üzerinde mysql’de kullanıcı oluşturmamız ve bunu agent tarafında göstermemiz gerekmektedir.

mysql# create user 'zabbix'@'localhost' IDENTIFIED BY 'Password';
Query OK, 0 rows affected (0.00 sec)
mysql# GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'Password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql# flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql# exit

Yukarıda mysql üzerinde zabbix kullanıcı oluşturma aşaması gözükmektedir. Şimdi agent tarafında mysql ile ilişkili dosyayı oluşturalım.

Eğer bu dosya yoksa oluşturalım ve yukarıdakini içerisine olduğu gibi yapıştıralım. Bu dosya içerisinde /var/lib/zabbix belirtilen yere mysql erişim bilgilerini ekleyelim.

Bu dosyayı oluşturduktan sonra agenti restart ediyorum. Bu aşamalardan sonra Web Server hostu üzerinde Items bölümüne girdiğimizde MySQL ile ilgili alanları inceleyelim.

Yukarıda gözükeceği üzere MySQL items konfigürasyon öncesi bilgi alamadığı için uyarı vermektedir.

Server ve client iletişim kurduktan sonraki hali yukarıdaki gibi olacaktır. Mysql items artık bilgi toplamaya başlamış ve uyarı kaybolmuştur.

Şimdi iletişim sağlandığına göre dashboard kısmına geçebiliriz.

Monitoring -> All Dashboard -> Create Dashboard diyerek yeni bir dashboard oluşturalım. Daha sonra dashboard üzerinde Add widget ile dashboard ekranını görselleştirelim.

Windows search servisini yeniden kurmak

Windows search servisini yeniden kurmanız gerekiyor.Fakat windows search servisi windows özellik aç kapat da görünmüyor.
Nasıl yeniden kurulum yapacaksınız?
Powershell i yönetici olarak açalım.
Windows search servisini kaldırmak için aşağıdaki komutu kullanıyoruz.

Dism /Online /Disable-Feature  /FeatureName:SearchEngine-Client-Package

Tekrar aktif etmek için aşağıdaki komutu kullanıyoruz.

Dism /Online /Enable-Feature  /FeatureName:SearchEngine-Client-Package

Let’s Encrypt Free ssl sertifika kurulumu

Merhaba arkadaşlar.
Bugün sizlere let’s encrypt free ssl nasıl kurulur.Nasıl otomatik yenileme yapılır onu anlatacağim.
Elimizde bulunan sunucuya ssh ile bağlanıyoruz.
Sunucumuzda git kurulu değilse git i sunucumuza kuruyoruz.
Let’s encrypt GitHub deposundan klon oluşturuyoruz.

sudo git clone https://github.com/certbot/certbot /opt/letsencrypt(Siz kendinizin kullanmak istediği yolu yazabilirisiniz.)

Klon oluşturduktan sonra klon oluşturduğumuz dizine geçiyoruz.

cd /opt/letsencrypt

Kurulum için aşağıdaki komutu kullanıyoruz.

./certbot-auto certonly --standalone

küçük bir yükleme yapacak sonra size mail adresinizi ve ssl oluşturmak istediğiniz site adresini soruyor.Buraya kullanmak istediğiniz alan adını yazın.
Örnek

example.com, www.example.com

Oluşturulan keyleri

/etc/letsencrypt/live/domain ismi/

dizininin altına oluşturuyor.
Daha sonra kullandığınız webserver a göre ayarlarınızı yapmanız gerekiyor.
Örnek olarak nginx de şu şekilde yapılır.

server {
 #http ye geln istekleri https e yönlendiriyoruz.
       listen 80;
        server_name example.com www.example.com;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
        server_name example.com www.example.com;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

        root /var/www/example.com;
        index index.php;
#
       location / {
                try_files $uri /index.php;
        }

        location ~ /.well-known{
                allow all;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;

        }
}

Ayarlarımızı yaptıktan sonra webserver restart ediyoruz.
Sitemize tekrar giriş yaptığımızda https ile bağlantı yaptığımızı göreceksiniz.
Gelelim ssl sertifikasının yenilenme ayarlarının yapılmasına.
web serverimizda location izni veriyoruz.

location ~ /.well-known{
                allow all;
        }

Aşağıdaki kodu kullanarak ayar dosyasının örneğini kopyalıyoruz.

cp /opt/letsencrypt/examples/cli.ini /usr/local/etc/le-renew-webroot.ini

Daha sonra editor ile ayar dosyamızı açıyoruz.

nano /usr/local/etc/le-renew-webroot.ini

içeriği şu şekilde olmalı

rsa-key-size = 4096

email = info@example.com(buraya sizin mail adresiniz gelecek)

domains = example.com, www.example.com(Buraya sizin sertifika oluşturduğunuz domainler)

webroot-path = /var/www/example.com(Buraya websitenizin dizini gelecek)

Dizin olarak letsencrypt i indirdiğimiz dizine geçiyoruz.

cd /opt/letsencrypt/

Aşağıdaki komutu çalıştırıyoruz.

./letsencrypt-auto certonly -a webroot --renew-by-default --config /usr/local/etc/le-renew-webroot.ini

Kontrol yapacak dosyayı curl ile indiriyoruz.

curl -L -o /usr/local/sbin/le-renew-webroot http://do.co/le-nginx-renew

Çalışma izni verelim.

chmod +x /usr/local/sbin/le-renew-webroot

Kaç gün kaldığını control etmek için indirdimiz komut dosyasını kullanacağız.

le-renew-webroot

Bunu cron la otomatik hale getirelim.

crontab -e
30 2 * * 1 le-renew-webroot >> /var/log/le-renewal.log

Cron servisini tekrar başlatıyoruz.

service cron restart

işlemimiz tamamlanmıştır.
yararlı olması dileğiyle.

Outlook 2007 Çince oldu düzeltme aracı

Office 2007 güncelleme sonrası outlook programı çince oluyor.Bu sorunu gidermek için son yüklenen gülcellemeleri kaldırabilir veya sistem geri yükleme yapabilirsiniz.Başka bir yol olarak da bizim hazırladığımız düzeltme aracını kullanabilirsiniz.Düzeltme aracını aşağıdaki link ten windows sürümünüze uygun olanı indirin. Uygun bir yere rar veya zip dosyasını açın çalıştırıp onar butonuna basın.
Windows xp için Düzeltme aracını Indirin.
Windows 8-10 için Düzeltme aracını Indirin.
Not :Windows 7-8-10 sürümlerinde uygulamaya sağ tıklayıp yönetici olarak çalıştır demeniz gerekmekte.

wordpress de wp-json özelliğinin kapatılması

WordPress 4.7.1 sürümüyle res-api özelliğini duyurdu.Bizde güncelleme var diye wordpress i güncelledik.Fakat wordpress in 4.7.1 sürümüyle gelen rest-api de açık bulundu.Kötü niyetli kişi post id ile içeriği değiştirebiliyor.Bu yüzden rest-api yi kapatmak isteyebilirsiniz.Wordpress in bunun için bir plugini var.isterseniz wp-includes/rest-api/class-wp-rest-server.php php dosyasını düzenleyerek kapatabilirsiniz.Bu dosya bir class __construct() yapıcı methoduna die(); eklerseniz sayfa bilgi sağlamayacaktir.Aynı işlemi wp-includes/rest-api/class-wp-rest-request.php php dosyasında da yapabilirsiniz.Bazen güncellemek sizi korumuyor demek ki.

Windows 8.1 ve Windows 10 da .NET Framework 3.5’i aktif etme

Merhaba arkadaşlar bu yazı da windows 8 ve üzeri sürümlerde .Netframework nasıl aktif edilir onu anlatacağım.
Normal yoldan(Denetim masası>program yükle kaldır>windows özelliklerini ac/kapa) kurmayı herkes bildiği için ben komut satırından nasıl kurulur onu anlatacağım.Yükleme yapacağımız bilgisayara windows 8 se, windows 8 dvd si windows 10 sa, windows 10 dvd si takıyoruz.Komut satırını administrator mode da çalıştırıyoruz.Yazacağımız komut

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E\sources\sxs

Komutu yazdık çalıştırdık gerekli kopyalamayı yaptıktan sonra kurulumu yapacaktır.
Eğer kurulumu bu şekilde tamamlayamadıysanız.Windows settings
Bilgisayar ayarlarını değiştiri tıklıyoruz.
Windows recovery update
Güncelleştirme ve kurtarma ya basıyoruz.
windows adventage startup
Kurtama yı tıklıyoruz.Gelen ekranda gelişmiş başlangıç yeniden başlat diyoruz.
Önümüze sorun gider ekranı geliyor orayı tıklıyoruz.Gelen ekrandan komut istemini tıklıyoruz.
Bilgisayar komut ekranında bizi karşılıyor burada şu komutu veriyoruz.

DISM /Image:C:\ /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:E:\sources\sxs

Bur da dikkat etmemiz gereken yer Image:C: yazdığımız yer bizim Windows umuzun kurulu olduğu yer.
Source:E:\sources\sxs yazan yer ise Windows dvd mizin içindeki dosyaların yoludur.
yararlı olması dileğiyle.

WordPress de eklentisiz facebook share button ekleme

Merhaba arkadaşlar bu yazımda sizlere wordpress üzerinde eklenti kurmadan facebook share button nasıl eklenir onu göstereceğim.
Wordpress de kullandığımız tema klasöründeki header.php dosyasını açıyoruz.
Facebook share button
Resimde görüldüğü gibi

<div id="main" class="wrapper">

div in altına aşağıdaki kodu yapıştırıyoruz.

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/tr_TR/sdk.js#xfbml=1&version=v2.7";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Paylaş butonunun her yazının altında çıkması için tema klasörümüzdeki content.php dosyasını açıyoruz.

<footer class="entry-meta">

tag ını buluyoruz.
Aşağıdaki kodları hemen altına yapıştırıyoruz.

<div class="fb-share-button" data-href="<?php the_permalink();?>" data-layout="button_count" data-size="small" data-mobile-iframe="true"><a class="fb-xfbml-parse-ignore" target="_blank" href="#">Paylaş</a></div>

Not : Benim kullandığım tema twentytwelve örnek de ona göre yapılmıştır.Siz kendi temanıza göre düzenlersiniz.

ilk verilen kodlar body tag ı içinde olmalı.

MySQL de son satırdaki veriyi alma

Merhaba arkadaşlar
Bu gün MySQL de tablolarda bulunan son satırdaki veriyi nasıl alabiliriz onu anlatacağım.
MySQL de tablolar oluştururken genelde id oluştururuz.Bu id ler benzersiz ve sırayla gidecek şekilde ayarlanır.
Biz burdan yola çıkarak id leri büyükten küçüğe doğru sıralayacağız.Bu şekilde oluşturacağımız sorgu tablodaki son satırı getirecektir.
Örnek kod

SELECT * FROM `city` ORDER BY ID DESC LIMIT 1

Yukarıdaki sorgu kodumuzla city tablosunda id değeri en yüksek bir satırı getirdik. Mysql Order by

Limit değerini yükselterek daha çok satır elde edebiliriz.

SELECT * FROM `city` ORDER BY ID DESC LIMIT 5

Mysql Order By LIMIT 5
Birde php de örnekleyelim.

<?php
/*
*mysqli db connect
*site:http://www.ramazantufekci.com
*/
/*
*Bağlantı Kuruluyor
*parametreler sırasıyla host,kullanıcı ismi,şifre,database ismi
*/
$db = new mysqli("127.0.0.1","root","şifre","world") or die("mysql bağlantısı yapılamadı !");
//Mysql bağlantısı yapılmışsa karakter set ini ayarlıyoruz
if(!$db->set_charset("utf8")){
    echo "karakter set i ayarlandi";
}
//City tablosundaki son satırı getirelim.
$kaynak = $db->query("SELECT * FROM city ORDER BY ID DESC LIMIT 1");
var_export($kaynak->fetch_object());
$db->close();

?>

Kodları çalıştırdığımızda aşağıdaki gibi bir sonuç elde etmiş olacağız.
Php Mysql Order By LIMIT
Yararlı olması dileğyle