Ağ Yöneticiliği günümüz bilişim teknolojilerinin en zorlu alanlarından birisidir. Zira bir ağdan bahsedildiğinde eskiden birkaç bilgisayarın, sunucu ve yazıcının bulunduğu yapılar akla geliyordu. Fakat bugün ağ dediğimiz zaman dev veri ambarlarından minicik bir akıllı düğmeye varana kadar türlü türlü cihazlardan bahsediyoruz. Haliyle yüzlerce bilgisayar, onlarca sunucu, ağ anahtarları, yönlendiriciler ve diğer cihazlardan oluşan bir ağ yapısını yönetmek oldukça zordur. Üstüne bir de bu yapıyı sürekli izlemek gerektiğinden ağ yöneticilerin işi başından aşkın desek yeridir.
Ağ Yöneticiliğinin bu ağır yükünü sırtlanmak için “Network Monitoring” ürünü olarak piyasada birçok ağ izleme yazılımı bulunuyor. Bu yazılımlar ağ yöneticilerine büyük kolaylıklar sağlasa da çoğu zaman oldukça pahalı yazılımlar. Ücretsiz çözümler ise bir elin parmağını geçmemekle birlikte ekseriyetle ücretli ürünlerin kısıtlı versiyonları olarak yayınlanmakta.
Fakat temel fonksiyonları ücretsiz olan ve gelişmiş bir ağ izleme yazılımı arıyorsanız -benim de uzun yıllardır kullandığım- Observium bu iş için biçilmiş kaftan.
Bu Yazının İçeriği
Observium Nedir?
Observium, piyasadaki ağ izleme yazılımlarından umduğunu bulamayan bir ağ yöneticisi tarafından 15 yıl kadar önce açık kaynak kodlu geliştirilmeye başlanan bir network izleme platformudur. Network yapınız dâhilinde bulunan cihazlardan SNMP ile aldığı verileri grafiksel bir ara yüzde sunmaktadır. Birçok markanın (Cisco, Windows, Linux, HP, Juniper, Dell, FreeBSD, F5, Brocade, Citrix, NetApp vb.) ürününe ait CPU, RAM, hafıza, port, trafik vb. verileri otomatik olarak tespit edip toplamaktadır. Geliştirici ekibe şuradan ulaşabilirsiniz: observium.org/team
Donanım Gereksinimleri
Observium görece küçük bir yazılım. Kurulum için her ne kadar 256MB RAM bellek yeterli olsa da kaynak konusunda kısıtlamanız yoksa tavsiyem 2GB RAM, çok çekirdekli işlemci ve 50GB disk alanı kullanmanızdır. Ek olarak SSD disk kullanırsanız maksimum verim sağlayabilirsiniz.
Yazılım Gereksinimleri
Observium popüler Linux dağıtımları olan Debian ve Ubuntu üzerine inşa edilmiştir. RHEL ve CentOS işletim sistemlerine de kurabilirsiniz. Temel gereksinimler Apache, fping, MySQL, Net-SNMP, RRDtool ve PHP’den oluşur. Ek olarak GraphViz, Ipmitool ve libvirt-bin paketleri de yüklenebilir. Kullanmak istediğiniz Linux platformunun ise her zaman son sürüme sahip olduğundan emin olmanızı tavsiye ederim.
Observium’u Ubuntu Üzerinde Yüklemek
Observium platformu Ubuntu/Debian/RHEL/CentOS gibi farklı Linux dağıtımlarında çalışıyor olsa da tavsiye edilen Ubuntu kullanarak yüklemenizdir.
Bu yazıda Ubuntu 20.04 ve daha üst sürümler üzerinde Observium platformunu nasıl kuracağınızı anlatacağım. (Daha eski sürümler için: docs.observium.org)
İlk olarak kurulma geçmeden önce son sistem güncellemelerini kontrol edin ve varsa yükleyin:
apt update
apt upgrade
Sisteminizin en son güncellemelere sahip olduğundan emin olduktan sonra Observium kurulum aşamalarına geçebilirsiniz.
Otomatik Kurulum
Observium kurulumu için daha önceden tamamen manuel olarak adımları teker teker uygulamak gerekiyordu. Fakat artık otomatik kurulum yapılabiliyor. Şu komutları sırayla çalıştırarak otomatik kurulum yapabilirsiniz:
wget http://www.observium.org/observium_installscript.sh
chmod +x observium_installscript.sh
./observium_installscript.sh
Manuel Kurulum
Kurulum aşamalarını tek tek kendiniz de gerçekleştirebilirsiniz.
Öncelikle gereken paketlerin yüklemesini yapıyoruz:
apt install libapache2-mod-php7.4 php7.4-cli php7.4-mysql php7.4-mysqli \ php7.4-gd php7.4-json php-pear snmp fping mysql-server mysql-client \ python3-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz \ imagemagick apache2 python3-pymysql python-is-python3
Daha sonra Observium’u indireceğimiz dizini oluşturuyoruz:
mkdir -p /opt/observium && cd /opt
Observium Topluluk Sürümü’nü indiriyoruz ve sıkıştırılmış dosyayı çıkarıyoruz:
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
Gerekli ayarları yapmak için Observium dizinine geçiyoruz:
cd observium
MySQL Veritabanı Ayarları
Observium’un kullanabilmesi için MySQL ayarlarını yapmamız gerekiyor. Bunun için öncelikle MySQL’e giriş yapın:
mysql -u root -p
Yukarıdaki komutta mysql root password kısmını en başta MySQL paketini kurarken oluşturuyorsunuz. Paket kurulumunda belirlediğiniz şifreyle MySQL’e giriş yapabilirsiniz.
Veritabanını oluşturun:
CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Veritabanının adı observium’dur. Kullanıcıyı oluşturun:
CREATE USER observiumadmin@localhost IDENTIFIED BY 'observiumpassword';
Kullanıcı adı observiumadmin şifresi ise observiumpassword olarak oluşturuldu. Sonraki aşamada yetkilendirmeyi gerçekleştirin:
GRANT ALL ON observium.* TO observiumadmin@localhost;
Ayarları sonlandırıp çıkış yapın:
FLUSH PRIVILEGES;
exit
Bir sonraki adımda ayarlar dosyasını kopyalayıp düzenliyoruz.
cp config.php.default config.php
Ayarları Uygulamak
Öntanımlı olarak gelen ayar dosyasını kopyalayın ve düzenlemek için açın:
cp config.php.default config.php
nano config.php
Buradaki veritabanı bilgilerini az önce oluşturduğunuz bilgilerle güncelleyin ve kaydedip kapatın:
$config['db_host'] = 'localhost';
$config['db_user'] = 'observiumadmin';
$config['db_pass'] = 'observiumpassword';
$config['db_name'] = 'observium';
Ayar dosyasını güncelledikten sonra komut satırından öntanımlı MySQL şemasını kaydedin:
./discovery.php –u
Sonraki aşamada RRD dosyalarını kaydetmek ve kayıt için gerekli izni sağlamak için şu satırları çalıştırın:
mkdir rrd
chown www-data:www-data rrd
Log kayıtlarını tutmak için dizin oluşturun ve izin sağlayın:
mkdir -p /var/log/observium
chown apache:apache /var/log/observium
Apache Ayarları
Sıra geldi Apache ayarlarını düzenlemeye. Ubuntu’da Apache 2.4 dizini şöyledir: /etc/apache2/sites-available/000-default.conf
Bu dizindeki 000-default.conf dosyasını açarak şu şekilde güncelleyin:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>
Ardından PHP mcrypt modülünü aktif edin:
phpenmod mcrypt
Sonrasında PHP’yi etkinleştirin:
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.0
a2enmod rewrite
Ayarların etkin olabilmesi için Apache’yi yeniden başlatın:
apache2ctl restart
Observium’u Kullanmak
Tüm adımları başarılı bir şekilde tamamladığınız takdirde Observium’u kullanmaya hazırsınız. Şimdi Observium’u kullanmak için gerekli olan kullanıcı bilgisini oluşturun:
./adduser.php <username> <password> <level>
Administrator yetkisine sahip kullanıcı oluşturmak için <level> alanına 10 yazmalısınız.
İlk cihazınızı ekleyin:
./add_device.php <hostname> <community> v2c
Eklediğiniz cihazın üzerindeki bilgiler otomatik olarak keşfedilip çekilecektir. Manuel olarak keşfetmek ve verileri Observium yazılımına aktarmak için şu komutları çalıştırın:
./discovery.php -h all
./poller.php -h all
All dediğinizde sistemde eklenmiş tüm cihazlara dair veriler gözden geçirilecektir. All yerine cihazın ID numarasını yazarak sadece tek bir cihaz üzerinde discovery.php ve poller.php uygulamalarını çalıştırabilirsiniz. ID numarası ilk eklediğiniz cihazla birlikte 1’den başlar ve cihaz ekledikçe otomatik artar.
Otomatik Olarak Verileri Kontrol Etmek
Sistemi otomatikleştirmek için cron jobs oluşturmak gerekmektedir:
/etc/cron.d/observium
Oluşturduğunuz observium dosyasının içine şunları kopyalayın:
# Her 6 saatte 1 defa tüm cihazlar için discovery.php çalıştır.
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
# Yeni eklenen cihazlar için her 5 dakikada 1 defa discovery.php çalıştır.
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
# Her 5 dakikada 1 defa poller-wrapper.py çalıştır. Çoklu işlemle birden fazla cihazdan veri alır.
*/5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1
# syslog, eventlog ve alert log kayıtları için günlük verileri topla.
13 5 * * * root /opt/observium/housekeeping.php -ysel >> /dev/null 2>&1
# rrds, ports, orphaned entries in the database and performance data için günlük verileri topla.
47 4 * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1
Sonuç
Artık hazırsınız. Yazılımı kurduğunuz sunucunun IP adresini tarayıcınızdan açtığınızda karşınıza gelen ekrandan kullanıcı bilgilerini girerek Observium’u kullanmaya başlayabilirsiniz.