gurcanozturk.com

başka türlü bir şey benim istediğim

CLI üzerinden VMware ESX/ESXi güncellenmesi

VMware ESX/ESXi hostlarınızı vSphere yerine host sunucuya SSH ile bağlanıp CLI üzerinden güncellemek daha hızlı olacaktır. Bunun için;

- http://downloads.vmware.com/d/info/datacenter_downloads/vmware_vsphere_4/4 adresinden host versiyonlarınıza uygun update zip paketini indirin ve ESX/ESXi hostlarınızın görebileceği ortak bir datastore altına yerleştirin.

- ESX/ESXi host sunucuya SSH ile bağlanın.
(Host ESXi ise SSH ile bağlanabilmek için daha önceden ESXi konsoldan “Remote Tech Mode” seçeneğini aktif etmiş olmalısınız.)

- Aşağıdaki örnek “esxupdate” komutları ile sisteminizi güncelleyin.

~ # esxupdate -m /vmfs/volumes/DATASTORE1/offline-bundle/metadata.zip stage
~ # esxupdate -m /vmfs/volumes/DATASTORE1/offline-bundle/metadata.zip update

- Güncellemelerin aktif olması için ESX/ESXi sunucunuzu yeniden başlatın.

Ubuntu 11.04 (Natty Narwhal) ‘de GRUB2 boot sorunu ve GRUB1 ‘e geri dönüş

Önceki gün evdeki bilgisayarıma Ubuntu 11.04 (Natty Narwhal) kurup test edeyim dedim. Kurulum normal bir şekilde tamamlanmasına rağmen bir türlü GRUB2 boot edemedi. (GRUB2′ nin oldukça fazla özelliği var bu arada, ama yapılandırmasını henüz tam çözebilmiş değilim.) Bir çok rescue tool (SuperGrub, SuperGrub2, RescueCD, Hiren’s BootCD vs.) kullanmama rağmen bir türlü beceremedim. Sonunda Ubuntu dokümanlarında reinstall çözümü ararken eski GRUB’ a dönme yöntemini buldum. Benim gibi sorun yaşayanların işine yarayabilir. Yapılması gerekenler aşağıdaki gibi.

- Terminal uygulamasını çalıştırın.
Applications -> Accessories ->Terminal

- GRUB2 dizinlerininin yedeğini alın. (Size kalmış elbette, ama önerilir.)

sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old

- GRUB2 ‘yi kaldırın.

sudo apt-get purge grub2 grub-pc

* GRUB2 ‘yi kaldırdığınız için sisteminiz başka bir bootloader kurulana kadar açılmayabilir.

- GRUB1 ‘i kurun.

sudo apt-get install grub

- GRUB1 yapılandırma dosyalarını oluşturun. (menu.lst dosyasının oluşturulması ile ilgili soruya Yes yanıtını verin.)

sudo update-grub

- Ubuntu ‘nun kurulu olduğu disk adresini belirtin.

sudo grub-install /dev/sdX

- Sisteminizi yeniden başlatın.

sudo reboot

SNMP ile Linux sunucunun bandwidth verilerini izlemek

Linux sunucunuzun ne kadar bandwidth kullandığını merak ediyorsanız ve veri alabileceğiniz switch/router sizin kontrolünüzde değilse linux üzerine SNMPd kurarak bu verileri alabilirsiniz. Gerekenler;

1- Iptables ayarları,
2- Gerekli BASH scriptleri,
3- SNMPd kurulması,
4- SNMP testleri

1. IPTABLES ayarları

Bandwitdh verisi en kolay iptables üzerinden alınabileceği için IPtables kurulması ve birkaç kural yapılması gerekiyor. Bunlar; inbound ve outbound trafik için yeni IPtables chain oluşturulması ve isim verilmesi.

# iptables -N inbound_traffic
# iptables -N outbound_traffic
# iptables -I INPUT 1 -j inbound_traffic
# iptables -I OUTPUT 1 -j outbound_traffic

2. Gerekli BASH scriptleri
Daha sonra SNMPd servisi için sistemin IP adreslerini alacak scriptin hazırlanması. Script -g parametresiyle veri alacaktır. -i parametresi ise sadece index içindir.
(/usr/local/bin/traffic_ip.sh)

#!/bin/bash
case “$1″ in
-g)
ifconfig | grep “inet addr” | grep “Bcast:” | awk ‘{print $2}’ | awk -F: ‘{print $2}’
;;

-i)
ipcount=`ifconfig | grep “inet addr” | grep “Bcast:” | awk ‘{print $2}’ | awk -F: ‘{print $2}’ | wc -l`
for i in `seq 1 $ipcount`; do
echo $i;
done
exit $ipcount # OID .1.3.6.1.4.1.2021.49.42.100.1
;;

*)
exit 254
;;
esac

Daha önce oluşturulan iptables chainlerine trafiği oluşturmak için aşağıdaki script kullanılacaktır.
(/usr/local/bin/traffic_gen.sh )

#!/bin/bash

case “$1″ in
-f)
iptables -F inbound_traffic;
iptables -F outbound_traffic;
;;
esac

for ip in `/usr/local/bin/traffic_ip.sh -g`; do
iptables -vnL outbound_traffic | grep $ip || iptables -A outbound_traffic -i ! lo -s $ip;
iptables -vnL inbound_traffic | grep $ip || iptables -A inbound_traffic -o ! lo -d $ip;
done

Daha önce oluşturulan iptables tablolarından trafik verisi okumak için aşağıdaki script kullanılacaktır.

(/usr/local/bin/traffic_get.sh)

#!/bin/bash
[ $1 ] || exit 42;

iptables -vxnL $1_traffic | grep -v Chain | grep -v bytes | awk {‘print $2′}

3. SNMPd kurulması
SNMPd servisini kurup ayarlarını tamamlayın. Debian tabanlı sistemlerde apt-get install snmpd komutu ile kolayca kurulacaktır. Kurulumdan sonra /etc/snmp/snmpd.conf dosyasında aşağıdaki satırları ekleyin. (Aşağıdaki satırlar dosyada bulunması gereken minimum ayarlardır, orjinal dosyayı başka bir isme taşıyıp yeni dosyaya sadece bu satırları yazmanız da yeterli olacaktır.)

com2sec readonly default public
group MyROGroup v1 readonly
group MyROGroup v2c readonly
view all included .1 80
access MyROGroup “” any noauth exact all none none

exec .1.3.6.1.4.1.2021.49 iplist /usr/local/bin/traffic_ip.sh -g
exec .1.3.6.1.4.1.2021.49.42 ipindex /usr/local/bin/traffic_ip.sh -i
exec .1.3.6.1.4.1.2021.50 inbound_traffic /usr/bin/sudo /usr/local/bin/traffic_get.sh inbound
exec .1.3.6.1.4.1.2021.51 outbound_traffic /usr/bin/sudo /usr/local/bin/traffic_get.sh outbound

Yapılandırma dosyasını oluşturduktan sonra SNMPd servisini yeniden başlatmanız gerekir. Bu amaçla “/etc/init.d/snmpd restart” komutunu kullanın.

Debian sistemlerde SNMPd “snmp” kullanıcısı ile çalıştığı için bu kullanıcıya sudo ile çalıştırma yetkisi vermek gerekiyor. Bunun için aşağıdaki satırın /etc/sudoers dosyasına eklenmesi yeterli olacaktır.

snmp ALL = NOPASSWD: /usr/local/bin/traffic_get.sh

4. SNMP testleri
Ayarlar tamamlandığına göre sıra son testlerde;

Gelen trafik bilgisi için ;

snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.50

Giden trafik bilgisi için ;

snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.51

komutlarını verin. Herhangi bir problem yoksa byte olarak o ethernetten geçen trafikleri görebilirsiniz.

Not : SNMPd servisine dışarıdan erişmek için TCP/UDP 161, UDP 162 portlarını açmayı unutmayın.

NAGIOS ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek

NAGIOS NRPE ile Wowza sunucusunu ve kullanıcı sayısını kontrol etmek yazısının geliştirilmiş ve NRPE yerine Wowza ‘nın XML arayüzü kullanılarak değiştirilmiş halidir.

Ocak ayında yazdığım makalede kullandığım JMX arayüzü Wowza ‘nın ve haliyle Java ‘nın doğası gereği oldukça yavaştı. Eğer sunucuda yoğun bir kaynak (CPU, RAM, disk I/O) kullanımı varsa JMX arayüzü kısa sürede timeout olup hata veriyordu. Bu sebeple işlemi hem daha basit hale getirmek hem de tek bir noktada toplayabilmek için Wowza ‘nın XML arayüzünü kullanmaya karar verdim. İşte nasıl yapıldığı.
Read the rest of this entry »

Nagios NRPE ile sunucunun zaman kontrolünü yapmak

Linux ya da Windows, production ortamında çalışan tüm sunucuların saatlerinin tek bir saate bağlı olarak çalışması gerekiyor. Bu sebeple NTP (Network Time Protocol) sunucu ve istemleri kullanılmakta. Bilgisayarların işlemcilerinin clock hataları sebebiyle ileri ya da geri kalmalarını engellemek için NTP kullanılsa da, bazı durumlarda sunucu saatinin hatalı kalması normal bir durum. İşte bu zaman hatalarını algılamak ve sistem yöneticilerini konuyla ilgili olarak uyarmak için her zaman ki gibi çok sevdiğim yazılım olan NAGIOS kullandım :) Nasıl mı?
Read the rest of this entry »

Netscaler HTTP Callout ve PHP ile IP adresine göre coğrafik yönlendirme yapılması

NetScaler 9.0 versiyonu ile birlikte, gelen isteklerin NetScaler arkasındaki herhangi bir Virtual Server’a, back-end sunucuya veya 3. bir servise gönderilerek işlenmesi mümkün olabiliyor. Bu işleme “HTTP Callout” adı verilmiş. (Türkçe bu kadar kötü anlatılabilirdi.)

Bir HTTP callout işlemi aşağıdaki aşamalardan oluşuyor;
Read the rest of this entry »

IBM FastT600 (DS4300) SAN Yapılandırması

IBM FastT600 model storage yapılandırması için null modem kablosu (Her 2 ucu 9 pin dişi seri kablo) ile cihaz üzerindeki seri port kullanılarak yapılabiliyor. Windows için HyperTerminal, Linux için Minicom, Mac OS X için ise goSerial isimli programı kullanabilirsiniz.

Seri port ayarları aşağıdaki gibi olmalıdır:

Port speed : 19200 baud
Data bits : 8
Parity : None
Stop Bits : 1
Flow Controls : Xon/Xoff

Null kablo ile bağlandıktan sonra ekranda CTRL-BREAK basılıp “Press within 5 seconds: for SHELL, for baud rate” uyarısı alınınca klavyeden tuşuna basılır. Cihazın default parolası “infiniti” olarak tanımlıdır.

Cihazın network tanımlamaları için aşağıdaki komutlar kullanılabilir.

# IP yapılandırmasını görüntülemek için
netCfgShow

# IP yapılandırmasını oluşturmak/değiştirmek için
netCfgSet


* Tüm ayarlar cihazda her iki controllerda yapılmalıdır. Yapılandırma sırasında fiber kablolar HBA ayarları yapılarak bağlanmalıdır.

* Cihaz üzerinde RAID ve LUN ayarları için yönetim programları (Windows için Fasttmanager, linux için ise FasttMSJ) kurulmalıdır.

NetScaler ‘da Hostname tabanlı load-balance izlenmesi

NetScaler ‘da load-balance izlemek istendiğinde HTTP için HTTP ve HTTP-ECV monitorleri hazır olarak geliyor. Ancak bu monitorler hostname tabanlı değil IP tabanlı geliyor. Bu durumda Netscaler, o hostname üzerindeki web uygulamasını değil, web sunucunun durumunu kontrol etmiş oluyor. Özellikle IIS web sunucularda bir web sitesine ait applicaton pool ‘da sorun çıktığında ve o web sitesine ulaşılamadığında, web sunucu ayakta olduğu için Netscaler o web sitesine istekleri yöneltmeye devam ediyor.

Bu sorunu aşmak için NetScaler ‘da “name based load-balancing monitoring” yapılmalı. Bu işlem için;

- Web sunucuda (10.10.2.1) , web sitesinin (www.hebele.com) root dizininde status.txt dosyasını oluşturmalı, içine OK yazmalısınız.
- Cihaza SSH ile bağlanmalı, GUI’de carriage return ve newline problemleri sebebiyle, command line ‘dan aşağıdaki komutları kullanmalısınız.

add lb monitor hebele.com-HTTP HTTP-ECV -send “GET /status.txt HTTP/1.1\r\nHost:www.hebele.com\r\nConnection:Close\r\n\r\n” -recv OK -LRTM ENABLED
add dns addRec hebele.com-srv1 10.10.2.1
add server hebele.com-SRV1 hebele.com-srv1
add service hebele.com-HTTPSVC1 hebele.com-SRV1 HTTP 80 -gslb NONE -maxClient 0 -maxReq 0 -cip ENABLED Client-IP -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CKA YES -TCPB YES -CMP YES
bind lb monitor hebele.com-HTTP hebele.com-HTTPSVC1

Xen ‘den VMware ‘e migration (V2V)

Uzun süredir çalıştığım şirkette VMware kullandığımız için, eski Xen sunucumuzdaki bir RHEL sistemi taşımamız gerekiyordu. İlk başta göz korkutsa da fizikselden sanala geçiş (P2V) kadar kolay bir işlem aslında.

* Bu yazida Xen uzerinde çalışan RHEL5 bir sistemin VMware ESXi 4.1 yapısına aktarılması anlatılacaktır.

Aktarma işleminde kopyalama için birden fazla yöntem kullanabilirsiniz. Bunlar;

- Xen image dosyasını convert etme. (qemu-convert ile dönüştürme işlemi)
- Image backup/restore. (Partimage/GHost/Acronis vb.)
- Networkten kopyalama. (Rsync/SCP/Netcat/Tar vb.)

Xen -> VMware VM Migration Adımları (Kernel Adımı)

Xen sunucuda para-virtualized kernel kullanılıyor ancak VMware üzerinde desteklenmediği icin öncelikle Xen üzerindeki guest sistemin kernelinin değiştirilmesi ve Xen kernelin silinmesi gerekiyor. Bunun için;

1. İşlemler riskli olduğu icin, guest sisteminizin yedeğini almanız onerilir.

2. Öncelikle, Xen üzerinde çalışan guest sistemdeki kernelin aynı versiyonundaki generic kernel dosyasını download edin. Örneğin, Xen üzerindeki RHEL’in kerneli “2.6.18-53.1.14.el5xen” ise “2.6.18-53.1.14.el5″ kernel RPM dosyasını bulup download edin. Eğer sisteminize ait CD/DVD varsa, icerisinde bu dosyayı bulabilirsiniz.

3.

rpm -iv kernel_dosyasi.rpm

komutu ile kerneli sisteminize kurun.

Xen – > VMware VM Migration Adımları (Disk Adımı)

a) Xen image dosyasını dönüştürme

Xen üzerindeki sunucunuzun .img dosyasını QEMU ile .vmdk haline dönüştürebilir ve ESX sunucunuza aktarabilirsiniz.

1. QEMU programini aşağıdaki linkten indirebilir ve rpm ile kurabilirsiniz.

http://dag.wieers.com/rpm/packages/qemu/

Daha sonra aşağıdaki komutla dönüştürme işlemini yapabilirsiniz.

qemu-img convert source_xen_machine -O vmdk destination_vmware.vmdk

2. Oluşan .vmdk dosyasi VMware Server 1.x versiyonuna ait olacağı icin oluşan ESXi üzerine aktarmak için VMware Converter kullanabilirsiniz. Bunun için, ESXi üzerinde yeni bir VM oluşturun, disk olarak oluşturduğunuz .vmdk dosyasını kullanın. Daha sonra oluşan VM’i converter ile dönüştürün.

b) İstediğiniz herhangi bir image backup/restore aracı ile partition->partition kopyalama yapın. Bu amaçla daha önce yazdığım dokümanını kullanabilirsiniz.

c) Rsync ile kopyalama yapmak için, VMware üzerinde kopyalanacak sunucunuzun disk büyüklüğüne uygun bir VM oluşturun. Networkünü kopyalanacak sunucu ile aynı şekilde ayarlayın, iki sunucunun birbirine ssh ile erişiyor olduğundan emin olun.

Oluşturduğunuz VM’i RHEL CD/DVD ile “linux rescue” komutu ile açıp, network ayarlarını tamamlayın, root kullanıcıya bir parola tanımlayın, sshd servisini çalıştırın.

Xen uzerindeki sunucudan rsync ile kopyalama başlatın.

# rsync -avxP –exclude-from=’/tmp/exclude.txt’ / / vm_sunucu_ip_adresi:/

/tmp/exclude.txt icine kopyalanmayacak dizinleri satır satır yazabilirsiniz. (Ornegin; /proc , /net , /sys vb.)

Xen -> VMware VM Migration Adımlari (ESX Adımı)

1. Oluşturduğunuz ve dataları kopyaladığınız VM ‘in ayarlarını değiştirin.
Edit > Virtual Machine Settings > SCSI Controller 0 > Change type > LSI Logic.

2. VM’i RHEL5 CD/DVD ile boot edin, açıldıktan sonra, “chroot /mnt/sysimage”
komutu ile işlemi kopyalanmış diski mount edin.

3. /etc/fstab dosyasını yeni sisteminize uygun olarak düzenleyin. (LSI Logic ile oluşturulan diskler /dev/sdX seklinde olacaktır. İlk disk için /dev/sda kullanılmalıdır.)

4. /etc/modprobe.conf dosyasını aşağıdaki şekilde düzenleyin.

alias eth0 xennet
alias scsi_hostadapter xenblk

satırlarını silerek, aşağıdaki satırları ekleyin ve dosyayı kaydedin.

alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix

5. /etc/inittab dosyasını düzenleyin. mingetty satırlarındaki XEN console satırını kapatın (satırın başına # koyun.)

6. Sistemin yeni disk sürücülerini görmesi için aşağıdaki işlemi yapmalısınız.
(LSI Logic ile oluşturulan diskler için RHEL “mptbase” modülünü kullanır.)

# mkinitrd –preload mptbase /boot/initrd-2.6.18-53.1.14.el5 2.6.18-53.1.14.el5

7. /boot/grub/grub.conf dosyasında kullanılan kernelin initrd satırını değiştirerek 5. adımdaki initrd dosyasını kullanacak hale getirin.

8. “grub-install /dev/sda” komutunu kullanarak bootloaderı tekrar yazın.

9. Yeni VM sunucuyu reboot edin ve normal açılması için dua edin :)

TippingPoint IPS admin parolası unutulursa

TippingPoint IPS cihazının admin parolasını unuttuguğunuzda, yeni bir vermek için aşağıdaki işlemler sırayla yapılmalıdır.

- TPP ‘yi bypass edin. (Zero Power modulunun USB kablosunu çıkarabilir veya segmentlerde network kablosu değişimi yapabilirsiniz.)
- Seri kablo ile cihaza bağlanın.
- Cihazın ön kısmındaki menuden Reload OS secilir, cihaz reboot edilir,
- Seri konsolda ANSI yazi ile “TPP” ciktiginda “mkey” yazılır.
- Password restriction 0 seçilir.
- Admin kullanıcı için bir kullanıcı ismi verilir,
- Admin kullanıcı için bir parola verilir.
- Cihaz boot edilir.