Can’t locate Net/SNMP.pm in @INC – Net::SNMP module hatası ve çözümü

Can’t locate Net/SNMP.pm in @INC – Net::SNMP module hatası ve çözümü

root@icinga2-ayhanarda:/usr/lib/nagios/plugins# ./check_bgp -H X.X.X.X -C snmpcommunity -p Y.Y.Y.Y
Can’t locate Net/SNMP.pm in @INC (you may need to install the Net::SNMP module) (@INC contains: /usr/lib/nagios/plugins /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1 /usr/lib/x86_64-linux-gnu/perl5/5.24 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.24 /usr/share/perl/5.24 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at ./check_bgp line 77.

Icınga ve nagios gibi yazılımlarda SNMP protokolü kullanan pluginleri çalıştırmaya kalktığınızda yukarıdaki hatayı alıyorsanız aşağıdaki işlemi ile kurulumu sağlayabilirsiniz.

root@icinga2-ayhanarda:/usr/lib/nagios/plugins# perl -MCPAN -e shell

cpan[1]> install Net::SNMP

Ayhan ARDA

icinga2’de Agent Cevabında The parameter is incorrect. hatası ve çözümü

icinga2’de Agent Cevabında The parameter is incorrect. hatası ve çözümü

İicnga2 den agenttan beklenen cevapta tüm aynı sunucular aynı düzgün cevabı verebilirken bazı makinalardan The parameter is incorrect hatası dönüyor ise o agent ın kurulu olduğu sunucunun sistem sayaçları bozulduğu anlamına gelmektedir. Bu sorunu aşmak için aşağıdaki komutu cmd de çalıştırabilir ve sorunu manual giderebilirsiniz.

lodctr /r

Sonrasında Info: Successfully rebuilt performance counter setting from system backup store cevabı aldı iseniz oranımı başarı ile tamamladı demektir.

Eğer hata alır iseniz

sysWOW64 dizinine girip yukarıdaki komutu orada çalıştırınız.

C:\Windows>cd SysWOW64

C:\Windows\SysWOW64>lodctr /R

Info: Successfully rebuilt performance counter setting from system backup store

Ayhan ARDA

icinga2 node wizard execvp: Argument list too long hatası ve çözümü

icinga2 node wizard execvp: Argument list too long hatası ve çözümü

Linux sistemlerde icinga2 agent kurulumu sonrası icinga2 node wizard komutu ile agent yapılandırma sihirbazını çalıştırmak istediğinizde execvp: Argument list too long hatasını alabilirsiniz.

Çözüm için, /usr/sbin/icinga2 dosyasını nano , vi ya da sevdiğiniz bir ediyor ile açınız , son satırında aşağıdaki kodu göreceksiniz.

exec $ICINGA2_BIN “$@”

Bu satırı aşağıdaki gibi olacak şeklde değiştiririp icinga2 node wizard ı tekrar çalışmayı deneyebilirsiniz.

exec $ICINGA2_BIN –no-stack-rlimit “$@”

Ayhan ARDA

Icinga2’ye Director Modulü Kurulumu

Icinga2’ye Director Modulü Kurulumu

Mevcutta icinga2 kurduğunuz varsayarak anlatılacaktır.

Icinga2 director müdülü bir nevi icinga’nın config deployment aracıdır , yani siz dilerseniz hostları , objeleri , servisleri manual ekleyebilirsiniz , dilerseniz api ile ekleyebilirsiniz , dilerseniz de icinga2’nin director modülünü kullanarak ekleyebilirsiniz.

Öncelikle modülü github üzerinden indirelim,

# cd /usr/share/icingaweb2/modules
# wget https://github.com/Icinga/icingaweb2-module-director/archive/master.zip
# unzip master.zip
# mv icingaweb2-module-director-master director
# restorecon -R director

restorecon komutu çalışmaz ise https://www.ayhanarda.com/blog/2018/10/bash-restorecon-command-not-found-hatasi-ve-cozumu/ adresinde yer alan işlemi uygulayabilirsiniz.

Evet modulümüzü indirdik ve açtık, şimdi director için ayrı bir mysql veritabanı açmamız gerekiyor. Sunucumuzda veritabanına bağlanıyoruz , tabi localde olduğunu farzederek belirtiyorum , aşağıdaki komutu kullanabilirsiniz.

mysql -h localhost -u root -p

Size mysql root şifrenizi soracaktır , sonrasında giriş yapmış olacaksınız. Aşağıda sırası ile önce director isminde bir veritabanı oluşturyoruz , charset önemli çünkü mutlaka utf8 i görmek istiyor. Sonrasında director isimli user oluşturup , haklarını verip , şifresini belirliyoruz , flush privileges demeyi unutayalım , komut sonrası her şey aktif olacaktır.

mysql> CREATE DATABASE director CHARACTER SET ‘utf8’;
mysql> GRANT ALL ON director.* TO ‘director’@’localhost’ IDENTIFIED BY ‘directoricinsifrebelirleyiniz’;
mysql> FLUSH PRIVILEGES;

Şimdi veritabanı ve user açtığımıza göre bu veritabanına director modülünde hazır gelen veritabanı dosyasını import etmemiz gerekiyor. Aşağıdaki komut ile yapabilirsiniz , çalıştırdığınızda root password ünüzü isteyecek ve aktarımı yapacaktır.

# mysql -u root -p director < /usr/share/icingaweb2/modules/director/schema/mysql.sql

Buraya kadar her şey yolunda ise aşağıdaki komutları çalıştırabilirsiniz.

# setsebool -P httpd_can_network_connect 1
# icinga2 api setup

Son komut ile icinga2 için API,’yi aktif etmiş olacaksınız. Bir sorun olursa öncesinde icinga2 feature enable api komutu ile de aynı işi yapabilirsiniz.

API için bir user ve şifre belirlememiz gerekiyor , ben user bölümüne director yazdım ve password alanına bir şifre belirledim , bu bilgiler director kurulumu sırasında gerekecektir.

/etc/icinga2/conf.d/api-users.conf dosyasında bu bilgileri doldurabilirsiniz, tabi dilediğiniz text editorü ile, sonuçta kimi nano sever , kimi vi sever , bir tercih meselesi.

/**
* The APIUser objects are used for authentication against the API.
*/
object ApiUser “director” {
password = “SIFREBELIRLEYIN”
// client_cn = “”

permissions = [ “*” ]
}

Icinga2’de API’yi aktif ettiğimiz için sunucuda 5665 nolu port aktif olacaktır , bunu netstat tan doğrulayabilirsiniz. Aşağıdaki komutları da kullanmanızda fayda var.

# system-config-firewall-tui
# systemctl restart icinga2

Buraya kadar her şey yolunda ise şimdi Icinga2’nin web arayüzüne erişiniz , Buradan Configuration menusu altında Modules ve onun altında director  menüsüne gelerek sağ bölümden enable ediniz.

Şimdi sıra konfigure etme kısmına geldi , DB Resource bölümünde director isimli veritabanını görüyor olmalısınız , eğer göremiyor iseniz aşağıdaki dosyayı açıp içinde ilgili alana director yazınız.

/etc/icingaweb2/modules/director/config.ini

ve icinga2 servisini yeniden başlatınız.

service icinga2 restart

Eğer yine göremiyor iseniz, aşağıdaki dosyayı açınız , bu bölümde icinga2web ve icinga_ido için 2 bölüm göreceksiniz , o bölümlerden birini kopyalayıp 3. bölüm olarak director veritabanı için dosyanın altına ekleyiniz.

/etc/icingaweb2/resources.ini

[director]
type = “db”
db = “mysql”
host = “localhost”
port = “3306”
dbname = “director”
username = “director”
password = “SIFRENIZ”
charset = “utf8”
persistent = “0”
use_ssl = “0”

ve icinga2 servisini tekrar yeniden başlatınız.

Ve bu arada bazı dökümanlarda perfdata özelliğini de açın demişler , aşağıdaki komut ile açalım.

icinga2 feature enable perfdata

service icinga2 restart

Şimdi web arayüzünde director isimli veritabanını görüp göremediğimize tekrar bakalım , eğer görebiliyor isek bir sonraki adıma geçebiliriz. Bu bölümde bize api’nin portunu , api kullanıcı adı ve şifresini soracaktır , /etc/icinga2/conf.d/api-users.conf dosyasında bunları belirlemiş idik , endpoint ve icingahost kısmına da sunucunun tam adını yazınız. Hepsi bu kadar , Şimdi sol menüden Director ü kullanmaya başlayabilirsiniz.

Ayhan ARDA

 

Icinga2 Director’de No valid elements specified for display group hatası ve çözümü

Icinga2 Director’de No valid elements specified for display group hatası ve çözümü

Icinga2 Director’de Hosts Menüsünden Host Template’iniz için Servis eklerken No valid elements specified for display group hatası alabilirsiniz , endişelenmeyin , Öncelikle Icınga2 Director de Hosts Değil de Service alanına erişip Service Template’i oluşturmanız gerekmekte , Sonrasında hata aldığınız bölüme tekrar gittiğinizde hatanın ortadan kalktığını göreceksiniz.

No valid elements specified for display group

#0 /usr/share/icingaweb2/modules/director/application/forms/IcingaAddServiceForm.php(66): Zend_Form->addDisplayGroup(Array, ‘object_definiti…’, Array)
#1 /usr/share/icingaweb2/modules/director/application/forms/IcingaAddServiceForm.php(35): Icinga\Module\Director\Forms\IcingaAddServiceForm->groupMainProperties()
#2 /usr/share/icingaweb2/modules/director/library/Director/Web/Form/QuickForm.php(356): Icinga\Module\Director\Forms\IcingaAddServiceForm->setup()
#3 /usr/share/icingaweb2/modules/director/library/Director/Web/Form/QuickForm.php(517): Icinga\Module\Director\Web\Form\QuickForm->prepareElements()
#4 /usr/share/icingaweb2/modules/director/library/Director/Web/Form/QuickForm.php(530): Icinga\Module\Director\Web\Form\QuickForm->setRequest(Object(Icinga\Web\Request))
#5 /usr/share/icingaweb2/modules/director/library/Director/Web/Form/QuickForm.php(367): Icinga\Module\Director\Web\Form\QuickForm->getRequest()
#6 /usr/share/icingaweb2/modules/director/application/controllers/HostController.php(57): Icinga\Module\Director\Web\Form\QuickForm->handleRequest()
#7 /usr/share/icingaweb2/library/vendor/Zend/Controller/Action.php(507): Icinga\Module\Director\Controllers\HostController->serviceAction()
#8 /usr/share/php/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch(‘serviceAction’)
#9 /usr/share/icingaweb2/library/vendor/Zend/Controller/Front.php(937): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#10 /usr/share/php/Icinga/Application/Web.php(389): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response))
#11 /usr/share/php/Icinga/Application/webrouter.php(109): Icinga\Application\Web->dispatch()
#12 /usr/share/icingaweb2/public/index.php(4): require_once(‘/usr/share/php/…’)
#13 {main}

Ayhan ARDA

 

“/var/run/icinga2/cmd/icinga2.cmd”: Permission denied hatası

“/var/run/icinga2/cmd/icinga2.cmd”: Permission denied hatası

Icınga2 de, icingaweb2 üzerinden işlem yapmaya çalıştığınızda aşağıdaki hatayı alıyor olabilirsiniz.

Icinga\Module\Monitoring\Exception\CommandTransportException in /usr/share/icingaweb2/modules/monitoring/library/Monitoring/Command/Transport/LocalCommandFile.php:161 with message: Can’t send external Icinga command to the local command file “/var/run/icinga2/cmd/icinga2.cmd”: Permission denied

Öncelikle /var/run/icinga2/cmd/ dizininde icinga2.cmd dosyasının olup olmadığını kontrol edelim.

ayhanarda@icinga2:/var/run/icinga2/cmd# ls -al
total 0
drwxr-s— 2 nagios www-data 60 Oct 5 11:18 .
drwxrwx— 3 nagios www-data 80 Oct 5 11:18 ..
ayhanarda@icinga2:/var/run/icinga2/cmd#

Gözüken o ki dosyamız burada değil. O halde icinga2 mizin özellik listesinde neler olup olmadığına bir göz atalım.

ayhanarda@icinga2:/var/run/icinga2/cmd# icinga2 feature list
Disabled features: compatlog command debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: api checker ido-mysql mainlog notification

Bu icinga2.cmd dosyamızın çalışması için command özelliğinin disabled feature larda değil enable feature larda olması gerekir yani command özelliğini aktif etmeliyiz. Komutumuz aşağıdaki gibi olmalı.

ayhanarda@icinga2:/var/run/icinga2/cmd# icinga2 feature enable command

Şimdi tekrar feature list e bakalım.

ayhanarda@icinga2:/var/run/icinga2/cmd# icinga2 feature list
Disabled features: compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: api checker command ido-mysql mainlog notification

Görüldüğü üzere enable olmuş durumda , peki dosyamız yerine gelmiş mi?

ayhanarda@icinga2:/var/run/icinga2/cmd# ls -al
total 0
drwxr-s— 2 nagios www-data 60 Oct 5 11:18 .
drwxrwx— 3 nagios www-data 80 Oct 5 11:18 ..
prw-rw—- 1 nagios www-data 0 Oct 5 11:20 icinga2.cmd

O halde şimdi tekrar icinga2web üzerinden tekrar işlem yaptığınızda konu başlığındaki hatayı almıyor olacaksınız.

Ayhan ARDA

bash: restorecon: command not found hatası ve çözümü

bash: restorecon: command not found hatası ve çözümü

Genelde firewall kurallarını save ederken karşılaşabileceğiniz bu hata için aşağıdaki paketi sunucunuza kurmanız yeterlidir.

Debian, ubuntu türevleri için ; apt-get install policycoreutils

Centos ve türevleri için , yum install policycoreutils

Debian 7.8 üzerine Icınga 2 Kurulumu

Icınga bildiğiniz üzere open source bir monitoring uygulaması , kurulumu için sıfır bir debian 7.8 hazırladım ve debian kurulumu esnasındaki seçeneklerde sadece ssh ve standart sistem araçlarını dahil ettim.

İlk olarak ssh tan erişelim ve icinga nın paket reposunu, debian ın paket konfigürasyonuna ekleyelim ve böylelikle sistem indireceği adresi biliyor olsun.Sonrasında repoları güncelliyor olacağız.

root@ayhanarda-icinga2:~# wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
OK
root@ayhanarda-icinga2:~# echo 'deb http://debmon.org/debmon debmon-wheezy main' >/etc/apt/sources.list.d/debmon.list
root@ayhanarda-icinga2:~# apt-get update
... Done
root@ayhanarda-icinga2:~#

Şimdi Icinga 2 yi kurabiliriz.

root@ayhanarda-icinga2:~# apt-get install icinga2

Mysql Kurup DB IDO aktif edelim.Komut; mysql için tanımlamak istediğiniz şifre vs gibi bilgiler soracak , yönergeleri takip edin.

root@ayhanarda-icinga2:~# apt-get install mysql-server mysql-client icinga2-ido-mysql
root@ayhanarda-icinga2:~# icinga2 feature enable ido-mysql
Enabling feature ido-mysql. Make sure to restart Icinga 2 for these changes to take effect.
root@ayhanarda-icinga2:~# service icinga2 restart

 

Apache , php ve diğer gereksinimleri kuralım , icinga web 2 yi git üzerinden indireceğiz , bu yüzden git te kuracağız.Sonrasında rewrite modul ünü aktif edelim.

root@ayhanarda-icinga2:~# apt-get install apache2 git php5 php-pear php5-mysql php5-ldap php5-intl php5-gd php5-imagick php5-pgsql
root@ayhanarda-icinga2:~# a2enmod rewrite
root@ayhanarda-icinga2:~# service apache2 restart

Timezone u ayarlayalım.

Nano ve ya sevdiğiniz bir editör ile aşağıdaki dosyayı açınız ve ;date.timezone = ile başlayan satırı bulup date.timezone = “Europe/Istanbul” şeklinde değiştirip kaydediniz ve apache yi yeniden başlatınız.

root@ayhanarda-icinga2:~# nano /etc/php5/apache2/php.ini
;date.timezone =
date.timezone = "Europe/Istanbul"
root@ayhanarda-icinga2:~# service apache2 restart

 

Icınga web 2 yi git ten indirip taşıyalım.

root@ayhanarda-icinga2:~# git clone git://git.icinga.org/icingaweb2.git
root@ayhanarda-icinga2:~# mv icingaweb2 /usr/share/icingaweb2
root@ayhanarda-icinga2:~# cd /usr/share/icingaweb2

 

Icingacli ile web server konfigürasyonunu icingaweb2 için regenerate edelim ve erişim haklarını tanımlayalım.

root@ayhanarda-icinga2:/usr/share/icingaweb2# ./bin/icingacli setup config webserver apache
root@ayhanarda-icinga2:/usr/share/icingaweb2# addgroup --system icingaweb2
root@ayhanarda-icinga2:/usr/share/icingaweb2# usermod -a -G icingaweb2 www-data

 

Şimdi icinga nın config dizinini oluşturup kurulumda kullanacağımız token ı oluşturalım.

root@ayhanarda-icinga2:/usr/share/icingaweb2# ./bin/icingacli setup config directory
Successfully created configuration directory /etc/icingaweb2
root@ayhanarda-icinga2:/usr/share/icingaweb2# ./bin/icingacli setup token create
The newly generated setup token is: 3a70b2180db86ad0
root@ayhanarda-icinga2:/usr/share/icingaweb2# ./bin/icingacli setup token show
The current setup token is: 3a70b2180db86ad0 ---Bu numarayı kurulumu web arayüzünden tamamlarken kullanacağız.

 

Şimdi icinga için apache default sitesinin config ini düzenleyelim , aşağıdaki dosyayı nano ile açınız ve içini boşaltıp aşağıdakileri yazıp kaydediniz ve apacye yi yeniden başlatınız.

root@ayhanarda-icinga2:/usr/share/icingaweb2# nano /etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
Alias /icingaweb2 "/usr/share/icingaweb2/public"
 
<Directory "/usr/share/icingaweb2/public">
    Options SymLinksIfOwnerMatch
    AllowOverride None
 
    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAll>
            Require all granted
        </RequireAll>
    </IfModule>
 
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order allow,deny
        Allow from all
    </IfModule>
 
    SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"
 
    EnableSendfile Off
 
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteBase /icingaweb2/
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ index.php [NC,L]
    </IfModule>
 
    <IfModule !mod_rewrite.c>
        DirectoryIndex error_norewrite.html
        ErrorDocument 404 /error_norewrite.html
    </IfModule>
</Directory>
</VirtualHost>

 

root@ayhanarda-icinga2:/usr/share/icingaweb2# service apache2 restart

Aslında şu anda ip adresimiz/icingaweb2 yazarak icinga2 web arayüzüne erişebilirsiniz fakat işimiz henüz bitmedi , veritabanlarını bir kontrol edelim. SSH tan mysql e aşağıdaki komut ile bağlanıyoruz ve sonrasında mysql kurarken belirlediğiniz şifreyi girmeniz istenecek.

root@ayhanarda-icinga2:/usr/share/icingaweb2# mysql -u root -p

Şimdi mevcut veritabanlarını kontrol edelim.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| icinga2idomysql    |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
 
mysql>

Icinga isminde bir veritabanı oluşturalım ve erişim haklarını tanımlayalım.

mysql> CREATE DATABASE icinga;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
Query OK, 0 rows affected (0.00 sec)
 
mysql>

Şimdi icinga mysql şemasını icinga database ine sorgu olarak gönderelim.

root@ayhanarda-icinga2:/usr/share/icingaweb2# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Şimdi web arayüzü kurulumunuza ilerleyebilirsiniz, hepsi bu kadar.

http://ipadresi/icingaweb2/

icinga-installation-ayhanardaAyrıca detaylı kullanım bilgisi için Icinga Network Monitoring kitabını incelemenizi öneririm.

Saygılarımla

Ayhan ARDA