LibreNMS הוא מערכת ניטור רשת מבוססת PHP, פתוחת קוד, עוצמתית ועשירת יכולות המשתמשת בפרוטוקול SNMP. היא תומכת במגוון רחב של מערכות הפעלה כולל Linux, FreeBSD, וגם במכשירי רשת כולל Cisco, Juniper, Brocade, Foundry, HP ועוד רבים וטובים.
תכונות של LibreNMS:
- היא מזהה אוטומטית רשת שלמה באמצעות פרוטוקולים אלו: CDP, FDP, LLDP, OSPF, BGP, SNMP ו-ARP.
- יש לה ממשק משתמש ידידותי לנייד, עם לוחות בקרה שניתנים להתאמה אישית.
- תומכת בסוכן Unix.
- תומכת בהרחבת קנה מידה אופקית כדי להרחיב עם הרשת שלך.
- תומכת במערכת התראה גמישה וניתנת להתאמה אישית בצורה רבה; שולחת התראות דרך דוא"ל, irc, slack ועוד.
- תומכת ב- API לניהול, גרפים ואחזור נתונים מהמערכת שלך.
- מציעה מערכת חיוב תעבורה.
- תומכת גם באפליקציות Android ו- iOS המציעות פונקציות יסודיות.
- תומכת באינטגרציה עם NfSen, collectd, SmokePing, RANCID ו- Oxidized.
- תומכת בשיטות אימות מרובות כגון MySQL, HTTP, LDAP, Radius ו- Active Directory.
- מאפשרת עדכון אוטומטי ועוד רבות.
קיים דמו מקוון שניתן לנסות לפני התקנת LibreNMS על מערכות Linux.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
סביבת בדיקה:
במדריך זה נלמד איך להתקין את כלי ניטור הרשת LibreNMS על מערכת Ubuntu או CentOS לינוקס שהותקנה לאחרונה (ההוראות עובדות גם על Debian וגם על הפצות מבוססות RHEL).
הערה: כל ההוראות במאמר זה צריכות לרוץ כמשתמש root, אם אינך, השתמש בפקודת sudo כדי לקבל הרשאות משתמש root.
שלב 1: התקנת חבילות נדרשות
1. תתחילו ראשית בהתקנת כל החבילות הנדרשות באמצעות מנהל החבילות הברירתי כמודגם.
באובונטו/דביאן
$ 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
בצ'נטוס/רדה"ט
# 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. לאחר שכל החבילות מותקנות, יתבצעו השירותים nginx, php-fpm, mariadb ו־snmp ויתחילו ויאושרו להתחיל באופן אוטומטי בזמן הטעינה (זה המצב בדרך כלל עם אובונטו), במקרה שאינו, ניתן להפעיל אותם על ידי הפקודות הבאות.
------------ 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
שלב 2: התקנת כלי הניטור LibreNMS
3. לאחר מכן, צור משתמש מערכת בשם librenms עם פקודת useradd; בה תג ' -M ' מנטרל יצירת ספריית הבית של המשתמש, ותג ' -r ' מאפשר יצירת חשבון מערכת. לאחר מכן, הוסף את המשתמש librenms לקבוצה www-data (ב- Ubuntu) או nginx (ב- CentOS) כפי שמוצג.
------------ 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. לאחר מכן, התקן את LibreNMS דרך פקודת composer כפי שמוצג.
------------ 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: צור מסד נתונים של LibreNMS
5. לפני שתוכל להתחיל להשתמש בשרת MariaDB, עליך לאבטח את ההתקנה שלך, להפעיל את התסריט לאבטחה שסופק בחבילת הבינארית. יש להגדיר סיסמת שורש, להסיר משתמשים אנונימיים, להשבית כניסה לשורש מרחוק ולהסיר את מסד הנתונים הבדיקה.
ניתן להפעיל את התסריט באמצעות הפקודה הבאה ולענות על כל השאלות עם yes/y
.
$ sudo mysql_secure_installation [On Debian/Ubuntu] # mysql_secure_installation [On CentOS/RHEL]
6. לאחר מכן, התחבר למסד הנתונים של MariaDB כדי ליצור מסד נתונים עבור LibreNMS (זכור להשתמש בסיסמה חזקה/בטוחה בסביבה פועלת).
$ 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. לאחר מכן, השבת את מצב ההגבלה המחמירה של MySQL כעת (תאימות עם מצב הגבלה מחמירה של MySQL טרם הוסיפו).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
בתוך הקטע [mysqld]
אנא הוסף.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
לאחר מכן, הפעל מחדש את שרת מסד הנתונים כדי להשפיע על השינויים.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
שלב 4: הגדר והתחל את PHP-FPM
8. הבאה, גדיר את date.timezone ב php.ini
לאזור הזמן שלך הנוכחי, לדוגמה “Africa/Kampala”, כפי שמראה הציון הבא.
------------ 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. בהמשך, הפעל את מודול ה-PHP mcrypt ב Ubuntu והפעל מחדש php-fpm בדרך שראינו.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. ב CentOS/RHEL עליך לבצע את השינויים הבאים בקובץ ההגדרות של php-fpm.
# vi /etc/php-fpm.d/www.conf
בואו נעשה את השינויים הבאים.
;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 בדרך שראינו.
# systemctl restart php-fpm
שלב 5: הגדרת Nginx עבור LibreNMS
12. בשלב זה, צריך להגדיר את חלק ה- Nginx לעבודה עבור librenms בכדי לקבל גישה למסך המשתמש. יציר קובץ .conf
עבורו, כפי שראינו.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
הוסף את ה config הבא, ערך server_name
כפי הדרישה.
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. אחר כך, שמור וייצא מהקובץ. הוציא גם את ההגדרות השירה הבסיסית והפעל מחדש את השרת Nginx.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
הערה: ב CentOS/RHEL, תצטרך לסגור את ה default site אם זה האתר היחיד שאתה מאחסן. מחק את האזור השירה מקובץ ה /etc/nginx/nginx.conf.
14. גם ב CentOS/RHEL, תצטרך להתק
------------ 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. לאפשר fping על ידי יצירת קובץ http_fping.tt
עם התוכן הבא.
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. לאחר מכן, הריצו את הפקודות הבאות.
------------ 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, יש להפעיל גישה ל-HTTP/HTTPS דרך הצמת.
------------ 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
שלב 6: הגדרת SNMPD עבור LibreNMS
18. כעת, השתמשו בתצורת SNMP הדוגמה כדי ליצור את קובץ התצורה שלכם ולפתוח אותו לעריכה, כפי שמופיע בהמשך.
------------ 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
ושנו אותה למחרוזת הקהילה האישית שלכם כפי שמוצג בצילום מסך.

19. לאחר מכן, הורידו תסריט shell למערכת שלכם, שעוזר לזהות איזה מערכת הפעלה מותקנת ואם זו מערכת הפעלה לינוקס, הסקריפט יזהה איזה הפצת לינוקס אתם משתמשים בה:
------------ 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
שלב 7: יצירת Cron והגדרת Logrotate
20. כעת הריצו את הפקודה הבאה כדי להגדיר עבודת צ'רון עבור LibreNMS.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21. כעת, כל יומני הרישום של LibreNMS מתווספים ב-/opt/librenms/logs, יש להגדיר את היומנים הללו כך שיתבצע סיבוב אוטומטי, בעזרת קובץ התצורה של logrotate, בדומה לזה.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
לאחר מכן, יש להגדיר הרשאות המתאימות על תיקיית התקנת LibreNMS ועל קבצי הימנים.
------------ 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
שלב 8: גישה למתקין האינטרנטי של LibreNMS
22. כעת, השתמשו ב-URL הבא כדי לגשת למתקין האינטרנטי ולעקוב אחרי ההוראות במסך.
http://librenms.tecmint.lan/install.php
כדי שכתובת זו תעבוד על מחשב מקומי, עליך להגדיר DNS מקומי באמצעות קובץ המארחים (/etc/hosts
), לפתירת דומיין מקומית או לצורך בדיקות לפני השקת האתר.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. תראה את דף הברכה להתקנה כפי שמוצג בתמונה הבאה, לחץ על שלב הבא כדי להמשיך.

24. לאחר מכן הזן את ההגדרות (מארח בסיס הנתונים, פורט, שם משתמש וסיסמה) עבור בסיס הנתונים של LibreNMS ולחץ על שלב הבא כדי להמשיך.

25. מתקין האינטרנט יתחיל כעת לייבא את בסיס הנתונים של MySQL, תהליך זה ייקח זמן. שים לב שהתהליך ינסה לעצור בנקודות מסוימות, פשוט לחץ על נסה שוב כדי להמשיך עם תהליך הייבוא.

26. לאחר שהייבוא של בסיס הנתונים הושלם, עליך לראות את ההודעה "בסיס הנתונים עדכני!", כפי שמוצג בתמונה למטה. לאחר מכן לחץ על עבור להוספת משתמש כדי להמשיך.

27. לאחר מכן, הוסף משתמש LibreNMS, ציין שם משתמש, סיסמה ואימייל, ולחץ על הוסף משתמש כדי להחיל את השינויים.

28. כעת לחץ על יצירת הגדרות LibreNMS עבור המערכת שלך, על ידי לחיצה על צור קונפיגורציה.


29. לאחר שהקונפיגורציה נוצרה, כפי שמוצג בתמונה הקודמת, העתק אותה ושמור אותה בתיקיית השורש של ההתקנה שלך, בקובץ בשם /opt/librenms/config.php.
# 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. שמור וסגור את הקובץ. לאחר מכן חזור למתקין האינטרנט כדי להמשיך בתהליך ההתקנה, על ידי לחיצה על סיום ההתקנה.

31. עכשיו ההתקנה שלך ל־LibreNMS הושלמה, תוכל ללחוץ על "וידוא ההתקנה שלך ותיקון בעיות" והדף להתחברות יופיע.

32. לאחר מכן, הזן את פרטי המשתמש שלך כדי לגשת לדף האימות.

33. מתהליך האימות של ההתקנה, LibreNMS גילתה שתי בעיות, הראשונה היא שהתקנים לא הוספו (זהו אזהרה כרגע), ושנית, לא הגדרנו את ההרשאה המתאימה על קובץ התצורה (/opt/librenms/config.php) שנוסף באופן ידני, כפי שמוצג בתמונת המסך למטה.

עכשיו הריץ את הפקודה הבאה כדי להגדיר את ההרשאה הנכונה על קובץ התצורה.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34. כדי להוסיף התקנים, עבור אל: http://librenms.tecmint.lan/addhost. לאחר הוספת התקנים, תוכל לעבור לדף הבית ולהוסיף לוחות בקרה שונים.

זהו! תוכל למצוא מידע נוסף, כולל התקנה והגדרה במסמך ההוראות של LibreNMS בכתובת https://docs.librenms.org/.
LibreNMS הוא מערכת לניטור רשת מושלמת התומכת במגוון רחב של חומרת רשת. אנו מקווים שהמדריך להתקנה זה היה ברור, אם יש לך שאלות, נשמח לקבל ממך דרך טופס המשוב למטה.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/