diff --git a/Librenms/librenms.wiki b/Librenms/librenms.wiki new file mode 100644 index 0000000..406e3b6 --- /dev/null +++ b/Librenms/librenms.wiki @@ -0,0 +1,252 @@ +== مرحله اول: وب سرور لینوکسی == + +لایبر ان‌ام‌اس (به انگلیسی: LibreNMS) یک سیستم نظارت بر شبکه مبتنی بر PHP/MySQL است که از Observium جعبه شده است. LibreNMS با هدف استفاده آسان، استقرار بدون درد و پشتیبانی از نظارت بر طیف گسترده‌ای از دستگاه‌ها انجام شده است. مجوز Observium در ماه مه 2012 به مجوز QPL تغییر یافته تغییر یافت و اخیراً به نسخه‌های رایگان و تجاری تقسیم شد.هدف ما با LibreNMS استمرار ایجاد NMS قابل استفاده است. برای نصب این سرویس نیاز به وب‌سرویس لینوکسی داریم. من در این مقاله از Ngnix استفاده می‌کنم. + + +'''برخی از وب‌سرویس های لینوکسی:''' + +[https://www.nginx.com Nginx] + +[https://www.apachefriends.org/ Xampp] + +[https://www.apache.org/ Apache] + +[https://www.litespeedtech.com/ LiteSpeed] + + + +قبل از شروع دقت داشته باشید که این روش فقط روی '''Ubuntu 22.04''' تست شده است. + +برای نصب Ngnix دستورهای زیر را در '''Terminal''' اجرا کنید. + + +sudo apt install nginx + +''' نکته: ''' اگر فایروال (ufw) روی سیستم شما نصب نباشد می توانید از مرحله بگذرید. + +'''نکته:''' می توانید با دستور sudo ufw disable فایروال را غیرفعال کنید و از این مرحله بگذرید '''(امنیت سیستم شما با این روش به خطر خواهد افتاد)''' + +

+''' نکته: ''' با استفاده از gufw می توانید تنظیمات فایروال را با محیط گرافیکی انجام دهید +
+gufw با دستور sudo apt install gufw نصب می‌شود +

+ +قبل از تست کردن Nginx باید فایروال را تنظیم کنیم. در لینوکس فایروال به عنوان ufw ثبت می‌شود. با دستور زیر لیست اپلیکیشن‌های فایروال به شما نمایش داده خواهد شد. +
+ +sudo ufw app list + + +اگر Ngnix به درستی نصب شده باشد خروجی دستور بالا باید شامل سه App زیر باشد. + +
+  Nginx Full
+  Nginx HTTP
+  Nginx HTTPS
+
+ +با دستور زیر فایروال اجازه دسترسی به Ngnix می‌دهد. +

sudo ufw allow 'Nginx Full'

+اگر همه چیز درست تنظیم شده باشد با اجرای دستور زیر باید '''Status: Active''' باشد. + +sudo ufw status + +'''خروجی:''' +
+Status: active
+
+To                         Action      From
+--                         ------      ----
+OpenSSH                    ALLOW       Anywhere                  
+Nginx HTTP                 ALLOW       Anywhere                  
+OpenSSH (v6)               ALLOW       Anywhere (v6)             
+Nginx HTTP (v6)            ALLOW       Anywhere (v6)
+
+ +اگر با ''' Status: inactive''' مواجه شدید. + +با دستور sudo ufw enable فایروال را فعال کنید و دوباره دستور sudo ufw status را اجرا کنید، تا از فعال بودن ruleهای Ngnix اطمینان پیدا کنید. + +با دستور sudo systemctl status ngnix +باید با ''' Active: Active(Running) ''' مواجه شوید. + +
+nginx.service - A high performance web server and a reverse proxy server
+     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset:>
+     Active: active (running) since Mon 2023-09-25 15:49:44 +0330; 6min ago
+       Docs: man:nginx(8)
+    Process: 1033 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_proce>
+    Process: 1049 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (c>
+   Main PID: 1057 (nginx)
+      Tasks: 17 (limit: 18637)
+     Memory: 18.6M
+        CPU: 68ms
+
+
+ +اگر localhost را در قسمت URL مروگر خود وارد کنید باید با پیام Welcome to Ngnix مواجه شوید. + +== مرحله دوم: اضافه کردن کاربر و دانلود LibreNMS == +با دستور زیر کاربری برای libreMNS اضافه می کنیم + +"sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash) + + + +سپس با دستور cd /opt وارد محل نصب LibreMNS می شویم و با دستور زیر LibreMNS را دانلود می کنیم + +sudo git clone https://github.com/librenms/librenms.git + + +== مرحله سوم: دادن دسترسی ها == +با چهار دستور زیر دسترسی ها لازم را بدهید + +sudo chown -R librenms:librenms /opt/librenms + +sudo chmod 771 /opt/librenmssudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storagesudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage + +== مرحله چهارم: نصب PHP و وابستگی هایش == +برای اجرای LibreNMS نه تنها نیاز به سرور لینوکسی داریم بلکه به کامپایلر PHP نیز نیاز داریم. برای نصب کامپایلر PHP ابتدا باید repository آن را با دستورات زیر به apt اضافه کنیم. + +sudo apt install software-properties-common -y + +sudo add-apt-repository universe + + + +سپس با دستورات زیر apt را بروز کرده و PHP و مشتقات آن را نصب می‌کنیم. + +sudo apt update + +sudo apt install acl curl fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-gmp php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd python3-pip + +برای نصب وابستگی های PHP با دستور sudo su - librenms وارد یوزر که قبل تر ساختیم شوید و با اجرای دستور زیر وابستگی ها را دانلود و نصب کنید. + +scripts/composer_wrapper.php install --no-dev/. + +با دستور exit خارچ شوید + +== مرحله پنجم: نصب MariaDB و ساخت دیتابیس == +برای نصب MariaDB از دستور زیر استفاده کنید. + +sudo apt install mariadb-server + + + +روی Ubuntu این سرویس بعد از نصب به طور خودکار اجرا خواهد شد. برای ورود به MariaDB و ساخت دیتابیس از دستور زیر استفاده کنید. + +sudo mysql + + + +با دستور زیر دیتابیسی به نام LibreMNS ساخته می‌شود. + +;mysql> CREATE DATABASE librenms + + + +با دو دستور زیر دسترسی‌های لازم به دیتابیس داده می‌شود. + +;'mysql> GRANT ALL on librenms.* to librenms@localhost identified by 'yourpassword + +;mysql> FLUSH PRIVILEGES + + + +'''توجه: بجای yourpassword رمز عبور دلخواه خود را قرار دهید.''' + +با دستور زیر از mysql خارج می‌شویم. + +mysql> \q + + + +همچنین باید تغییراتی در این فایل ایجاد کنیم. برای باز کردن فایل از دستور زیر استفاده می‌کنیم. + +sudo gedit /etc/mysql/mariadb.conf.d/50-server.cnf + + + +بعد از باز کردن فایل، [mysqld] را پیدا کنید. (این Attribute برای من در خط ۹ بود) و این سه خط کد را در زیر [mysqld] اضافه کنید. + +innodb_file_per_table=1 + +lower_case_table_names=0 + + + +سپس با دو دستور زیر MariaDb را Restart کنید. + +sudo systemctl enable mariadb + +sudo systemctl restart mariadb + +== مرحله ششم: تنظیمات PHP-FPM == +با استفاده از دستور زیر Template کد PHP-FPM را کپی می کنیم + +sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf + + +باید تغییراتی در فایل ایجاد کنیم پس فایل را با دستور زیر باز کنید + +sudo gedit /etc/php/8.1/fpm/pool.d/librenms.conf + + +در فایل به دنبال [www] بگردید و آن را به [librenms] تغییر دهید + +user و group را نیز مانند زیر تغییر دهید + +user = librenms + +group = librenms + + +همچنین پارامتر Listen را نیز مانند زیر تغییر دهید + +listen = /run/php-fpm-librenms.sock + +== مرحله هفتم: تنظیمات وب سرویس == +با دستور sudo gedit /etc/nginx/conf.d/librenms.conf فایل تنظیمات وب سرویس را بسازید. + 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 ~ [^/]\.php(/|$) { + fastcgi_pass unix:/run/php-fpm-librenms.sock; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include fastcgi.conf; + } + location ~ /\.(?!well-known).* { + deny all; + } +'''توجه: librenms.example.com''' با آدرس سایت خود مانند localhost عوض کنید. + +== مرحله هشتم: نصب گرافیکی == +با ورود به سایت yoursite/install ساخت حساب کاربری را انجام داده و اطلاعات دیتابیس مانند زیر وارد کنید. + host: localhost + username: librenms + password: yourpassword + +== مرحله نهم: کار با API (اختیاری) == +واسط برنامه‌نویسی نرم‌افزار کاربردی یا ای‌پی‌آی (به انگلیسی: API ، مخفف Application Programming Interface ) که به صورت خلاصه به آن واسط برنامه‌نویسی هم گفته می‌شود، واسط بین یک کتابخانه یا سیستم‌عامل و برنامه‌هایی است که از آن تقاضای سرویس می‌کنند. در اینجا با استفاده از LibreNMS API می توانید هر کاری که در محیط گرافیکی نرم افزار را انجام می دهد در کد خود نیز تعبیه کنید. + + +برای استفاده از API اول باید API CORS را روشن کنید. برای اینکار می توانید '''[http://37.152.185.153/settings/api yoursite.xxx/settings/api]''' را در مرورگر خود تایپ کنید و یا از طریق '''GlobalSetting -> API <- ⚙️''' وارد این منو شوید. سپس گزینه '''Enable CORS support for the API''' را فعال کنید. + + +حال نیاز به API Access Token داریم برای دسترسی به این منو می توانید '''yoursite.xxx/api-access''' را در مرورگر خود تایپ کنید یا از طریق '''API -> API Settings''' '''<- ⚙️''' وارد صفحه شوید. حالا بر روی '''Create API Access Token''' کلیک کنید. + + +'''نکته:''' برای استفاده از API باید '''API Access Token''' را با هدر '''X-Auth-Token''' ارسال کنید. + +برای مشاهده توابع قابل استفاده به [https://docs.librenms.org/API/ Librenms API Docs] مراجعه کنید +