LibreNMS - Linux için Tam Özellikli Ağ İzleme Aracı


LibreNMS, SNMP protokolünü kullanan, açık kaynaklı, güçlü ve zengin özelliklere sahip, otomatik keşfeden PHP tabanlı bir ağ izleme sistemidir. Linux, FreeBSD dahil geniş bir işletim sistemi yelpazesinin yanı sıra Cisco, Juniper, Brocade, Foundry, HP ve çok daha fazlasını içeren ağ cihazlarını destekler.

LibreNMS'in Özellikleri:

  1. Şu protokolleri kullanarak tüm ağı otomatik olarak keşfeder: CDP, FDP, LLDP, OSPF, BGP, SNMP ve ARP.
  2. Özelleştirilebilir kontrol panellerine sahip, mobil uyumlu bir Web kullanıcı arayüzüne sahiptir.
  3. Bir Unix aracısını destekler.
  4. Ağınızla birlikte genişlemek için yatay ölçeklendirmeyi destekler.
  5. Son derece esnek ve özelleştirilebilir bir uyarı sistemini destekler; e-posta, irc, slack ve daha fazlası yoluyla bildirimler gönderir.
  6. Sisteminizden verileri yönetmek, grafik haline getirmek ve almak için bir API'yi destekler.
  7. Trafik faturalandırma sistemi sunar.
  8. Ayrıca temel işlevler sunan Android ve iOS uygulamalarını da destekler.
  9. NfSen, Collectd, SmokePing, RANCID ve Oxidized ile entegrasyonu destekler.
  10. MySQL, HTTP, LDAP, Radius ve Active Directory gibi birden fazla kimlik doğrulama yöntemini destekler.
  11. Otomatik güncellemeye ve diğer birçok özelliğe izin verir.

LibreNMS'i Linux sistemlerine kurmadan önce deneyebileceğiniz çevrimiçi bir demo mevcuttur.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Test ortamı:

  1. LEMP Yığını ile Ubuntu 16.04
  2. LEMP Yığını ile CentOS 7

Bu eğiticide, yeni yüklenen Ubuntu veya CentOS Linux'a LibreNMS Ağ İzleme Aracı'nın nasıl kurulacağını öğreneceğiz (aynı talimatlar üzerinde de çalışır). >Debian ve RHEL tabanlı dağıtımlar).

NOT: Bu makaledeki tüm bu talimatlar root kullanıcısı olarak çalıştırılmalıdır, eğer değilseniz root kazanmak için sudo komutunu kullanın. kullanıcı ayrıcalıkları.

Adım 1: Gerekli Paketleri Kurun

1. İlk olarak, gösterildiği gibi varsayılan paket yöneticisini kullanarak gerekli tüm paketleri yükleyerek başlayın.

Ubuntu/Debian'da

sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois

CentOS/RHEL'de

yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool

2. Tüm paketler yüklendikten sonra nginx, php-fpm, mariadb ve snmp< hizmetleri başlatılacak ve önyükleme sırasında otomatik olarak başlatılacak şekilde etkinleştirilecektir (bu normalde Ubuntu'da geçerlidir), aksi takdirde, bunları başlatmak ve etkinleştirmek için aşağıdaki komutları çalıştırabilirsiniz.

------------ On Debian/Ubuntu ------------ 
sudo systemctl nginx start php7.0-fpm mysql snmp 
sudo systemctl enable nginx php7.0-fpm mysql snmp

------------ On CentOS/RHEL ------------ 
systemctl nginx start php-fpm mariadb snmpd 
systemctl enable nginx php-fpm mariadb snmpd

Adım 2: LibreNMS İzleme Aracını Kurun

3. Daha sonra, useradd komutuyla librenms adında bir sistem kullanıcısı oluşturun; burada -M bayrağı kullanıcının ana dizininin oluşturulmasını devre dışı bırakır ve -r bir sistem hesabının oluşturulmasını sağlar. Ardından librenms kullanıcısını www-data (Ubuntu'da) veya nginx ('de) grubuna ekleyin CentOS) aşağıdaki gibidir.

------------ On Debian/Ubuntu ------------ 
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data   

------------ On CentOS/RHEL ------------ 
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx           

4. Ardından, gösterildiği gibi composer komutunu kullanarak LibreNMS'i yükleyin.

------------ On Debian/Ubuntu ------------ 
cd /opt
sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

------------ On CentOS/RHEL ------------ 
cd /opt
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

3. Adım: LibreNMS Veritabanını Oluşturun

5. MariaDB sunucusunu kullanmaya başlamadan önce kurulumunuzun güvenliğini sağlamanız, ikili pakette sağlanan güvenlik komut dosyasını çalıştırmanız gerekir. Sizden bir root şifresi belirlemenizi, anonim kullanıcıları kaldırmanızı, root girişini uzaktan devre dışı bırakmanızı ve test veritabanını kaldırmanızı isteyecektir.

Aşağıdaki komutu vererek scripti başlatabilir ve tüm soruları yes/y ile cevaplayabilirsiniz.

sudo mysql_secure_installation   [On Debian/Ubuntu]
mysql_secure_installation        [On CentOS/RHEL]

6. Daha sonra LibreNMS için bir veritabanı oluşturmak üzere MariaDB veritabanında oturum açın (üretim ortamında güçlü/güvenli bir şifre kullanmayı unutmayın).

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Daha sonra MySQL katı modunu şimdilik devre dışı bırakın (MySQL katı moduyla uyumluluk henüz eklenmemiştir).

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
vi /etc/my.cnf        [On CentOS/RHEL]

[mysqld] bölümüne lütfen ekleyin.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Daha sonra değişiklikleri uygulamak için veritabanı sunucusunu yeniden başlatın.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Adım 4: PHP-FPM'yi Yapılandırın ve Başlatın

8. Ardından, php.ini dosyasındaki date.timezone'unuzu geçerli saat diliminize ayarlayın, örneğin “Africa/Kampala” ”, aşağıdaki ekran görüntüsünde gösterildiği gibi.

------------ On Debian/Ubuntu ------------ 
sudo vim /etc/php/7.0/fpm/php.ini
sudo vim /etc/php/7.0/cli/php.ini

------------ On CentOS/RHEL ------------ 
vi /etc/php.ini

9. Daha sonra Ubuntu'da mcrypt PHP modülünü etkinleştirin ve gösterildiği gibi php-fpm'yi yeniden başlatın.

------------ On Debian/Ubuntu ------------ 
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

10. CentOS/RHEL'de php-fpm yapılandırma dosyasında aşağıdaki değişiklikleri yapmanız gerekir.

vi /etc/php-fpm.d/www.conf

Aşağıdaki değişiklikleri yapın.

;user = apache
user = nginx

group = apache   ; keep group as apache

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php7.2-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

11. php-fpm hizmetini gösterildiği gibi yeniden başlatın.

systemctl restart php-fpm

Adım 5: LibreNMS için Nginx'i yapılandırın

12. Bu adımda, web kullanıcı arayüzüne erişmek amacıyla librenms için bir Nginx sunucu bloğu yapılandırmanız gerekir. Bunun için gösterildiği gibi bir .conf dosyası oluşturun.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

Aşağıdaki config'i ekleyin, sunucu_adı'nı gerektiği gibi düzenleyin.

server {
 listen      80;
 server_name librenms.example.com;
 root        /opt/librenms/html;
 index       index.php;

 charset utf-8;
 gzip on;
 gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
 location / {
  try_files $uri $uri/ /index.php?$query_string;
 }
 location /api/v0 {
  try_files $uri $uri/ /api_v0.php?$query_string;
 }
 location ~ \.php {
  include fastcgi.conf;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

13. Ardından dosyayı kaydedip çıkın. Ayrıca varsayılan sunucu bloğu yapılandırmasını kaldırın ve Nginx sunucusunu yeniden başlatın.

------------ On Debian/Ubuntu ------------ 
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
systemctl restart nginx

NOT: CentOS/RHEL'de, varsayılan site bölümünü devre dışı bırakmanız gerekecektir. Barındırdığınız tek site. /etc/nginx/nginx.conf dosyasından sunucu bölümünü silin.

14. Ayrıca CentOS/RHEL'de, SELinux için politika aracını yüklemeniz ve Aşağıdaki komutları kullanarak LibreNMS'in ihtiyaç duyduğu >bağlamlar.

------------ On CentOS/RHEL ------------ 
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
restorecon -RFvv /opt/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
restorecon -RFvv /opt/librenms/rrd/
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1

15. Aşağıdaki içeriklere sahip http_fping.tt dosyasını oluşturarak fping'e izin verin.

module http_fping 1.0;

require {
type httpd_t;
class capability net_raw;
class rawip_socket { getopt create setopt write read };
}

#============= httpd_t ==============
allow httpd_t self:capability net_raw;
allow httpd_t self:rawip_socket { getopt create setopt write read };

16. Ardından bu komutları çalıştırın.

------------ On CentOS/RHEL ------------ 
checkmodule -M -m -o http_fping.mod http_fping.tt
semodule_package -o http_fping.pp -m http_fping.mod
semodule -i http_fping.pp

17. CentOS/RHEL'de Güvenlik Duvarı kullanıyorsanız, güvenlik duvarı üzerinden HTTP/HTTPS erişimini etkinleştirin.

------------ On CentOS/RHEL ------------ 
firewall-cmd --zone public --add-service http
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --zone public --add-service https
firewall-cmd --permanent --zone public --add-service https

Adım 6: LibreNMS için SNMPD'yi yapılandırın

18. Şimdi, yapılandırma dosyanızı oluşturmak ve düzenleme için aşağıdaki gibi açmak için örnek snmp yapılandırmasını kullanın.

------------ On Debian/Ubuntu ------------ 
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf

------------ On CentOS/RHEL ------------ 
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf

RANDOMSTRINGGOESHERE dizesini bulun ve bunu ekran görüntüsünde gösterildiği gibi kendi topluluk dizenizle değiştirin.

19. Ardından, sisteminize bir kabuk komut dosyası indirin; bu, hangi işletim sistemini tespit etmenize yardımcı olur ve Linux ise hangi Linux dağıtımını kullandığınızı tespit eder:

------------ On Debian/Ubuntu ------------ 
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

------------ On CentOS/RHEL ------------ 
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

Adım 7: Cron Oluşturun ve Logrotate'i Yapılandırın

20. Şimdi LibreNMS için bir cron işi ayarlamak üzere aşağıdaki komutu çalıştırın.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

21. Ardından, tüm LibreNMS günlükleri /opt/librenms/logs dosyasına kaydedilir; bu günlükleri otomatik olarak döndürülecek şekilde yapılandırmanız gerekebilir , sağlanan logrotate yapılandırma dosyasını kullanarak bu şekilde.

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Ardından LibreNMS kurulumunun kök dizininde ve günlük dosyalarında uygun izinleri ayarlayın.

------------ On Debian/Ubuntu ------------
sudo chown -R librenms:librenms  /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

------------ On CentOS/RHEL ------------ 
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

Adım 8: LibreNMS Web Yükleyicisine Erişim

22. Ardından, web yükleyicisine erişmek için aşağıdaki URL'yi kullanın ve ekrandaki talimatları izleyin.

http://librenms.tecmint.lan/install.php

Bu adresin yerel bir makinede çalışması için, yayına geçmeden önce yerel etki alanı çözümlemesi veya test amacıyla hosts dosyasını (/etc/hosts) kullanarak yerel bir DNS ayarlamanız gerekir.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Aşağıdaki ekran görüntüsünde gösterildiği gibi kurulum karşılama sayfasını göreceksiniz, devam etmek için Sonraki Aşama'yı tıklayın.

24. Ardından LibreNMS veritabanı için ayarları (veritabanı ana bilgisayarı, bağlantı noktası, kullanıcı adı ve kullanıcı şifresi) girin ve devam etmek için Sonraki Aşama'yı tıklayın.

25. Web yükleyicisi şimdi MySQL veritabanını içe aktarmaya başlayacak, bu biraz zaman alacak. İşlemin belirli noktalarda duraklatmaya çalışacağını unutmayın; içe aktarma işlemine devam etmek için Yeniden Dene'yi tıklamanız yeterlidir.

26. Veritabanının içe aktarımı tamamlandığında, aşağıdaki ekran görüntüsünde gösterildiği gibi “Veritabanı güncel!” mesajını görmelisiniz. Daha sonra devam etmek için Kullanıcı Eklemeye Git'i tıklayın.

27. Ardından, bir LibreNMS kullanıcısı ekleyin, kullanıcı adını, şifreyi ve e-posta adresini belirtin ve ardından değişiklikleri uygulamak için Kullanıcı Ekle'yi tıklayın.

28. Şimdi Yapılandırma Oluştur'u tıklayarak sisteminiz için LibreNMS yapılandırmasını oluşturun seçeneğini tıklayın.

29. Önceki ekranda gösterildiği gibi yapılandırma oluşturulduktan sonra, onu kopyalayın ve kurulumunuzun kök dizinine, /opt/librenms/config.php adlı dosyaya kaydedin. .

vi /opt/librenms/config.php
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'librenms';
$config['db_pass'] = '=@!#@%$libre';
$config['db_name'] = 'librenms';
$config['db_socket'] = '';

// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';

### Locations - it is recommended to keep the default
#$config['install_dir']  = "/opt/librenms";

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url']        = "http://librenms.company.com";

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

### Default community
$config['snmp']['community'] = array("public");

### Authentication Model
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

Update configuration
#$config['update_channel'] = 'release';  # uncomment to follow the monthly release channel
#$config['update'] = 0;  # uncomment to completely disable updates

30. Dosyayı kaydedin ve kapatın. Daha sonra Yüklemeyi Bitir'i tıklayarak yükleme işlemine devam etmek için web yükleyicisine dönün.

31. Artık LibreNMS kurulumunuz tamamlandı, “yüklemenizi doğrulayın ve sorunları düzeltin” seçeneğini tıklayabilirsiniz, giriş sayfası görünmelidir.

32. Ardından, doğrulama sayfasına erişmek için kullanıcı kimlik bilgilerinizi girin.

33. Kurulum doğrulama sürecinde LibreNMS iki sorun keşfetti; bunlardan biri cihazların eklenmemiş olması (bu şimdilik bir uyarıdır), ikincisi ise şunları yaptık: Aşağıdaki ekran görüntüsünde gösterildiği gibi, manuel olarak eklenen yapılandırma dosyasında (/opt/librenms/config.php) uygun izni ayarlamayın.

Şimdi yapılandırma dosyasında doğru izni ayarlamak için aşağıdaki komutu çalıştırın.

sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Cihaz eklemek için şu adrese gidin: http://librenms.tecmint.lan/addhost. Cihazları ekledikten sonra ana sayfaya giderek çeşitli kontrol panelleri ekleyebilirsiniz.

Bu kadar! Kurulum ve kurulum dahil daha fazla bilgiyi https://docs.librenms.org/ adresindeki LibreNMS Belgelerinde bulabilirsiniz.

LibreNMS, çeşitli ağ donanımlarını destekleyen tam özellikli bir ağ izleme sistemidir. Bunun anlaşılır bir kurulum kılavuzu olduğunu umuyoruz. Sorularınız varsa aşağıdaki geri bildirim formunu kullanarak bize ulaşın.