نصب نرم افزار مانیتورینگ Cacti در Ubuntu 16.04

یکی از نرم‌افزارهای متن‌باز(Open Source) و رایگان مانیتورینگ شبکه نرم‌افزار Cacti است.نرم افزار Cacti با فراهم کردن واسط کاربری کاملاً گرافیکی، این امکان را به شما می‌دهد تا وضعیت روترها، سویچ‌ها، سرور، ترافیک در حال عبور، وضعیت CPU ، RAM، DISK و ... را در یک صفحه و در کنار هم مشاهده کنید.این نرم افزار توسط پروتکل SNMP به دستگاه های مورد نظر شما متصل و آنها را طی بازه‌های زمانی دلخواه بررسی می‌کند. این نرم‌افزار بر پایه PHP/MySQL می‌باشد و جهت ارائه گراف‌های خود از نرم افزار بسیار خوب RRDTool بهره می‌گیرد.این نرم‌افزار دارای دیتابیس بوده و تمامی وضعیت‌های دستگاه‌ها را ذخیره می‌کنند و به شما امکان گرفتن گزارش روزها، ماه‌ها و سال‌های اخیر را می‌دهند.واسط کاربری نرم افزار Cactiبرای نصب و راه اندازی Cacti باید پیش نیازهای آن را نصب کنیم.میتونید source list سرور خود را از طریق سایت Ubuntu Sources List Generator آپدیت کنید.1 - نصب LAMPنصب Apacheapt-get install apache2 –yبرای تست نصب شدن http://Server-Address را در مرورگر وارد کنید.نصب Mysql در حین فرایند نصب از شما می‌خواهد که پسورد root مربوط به Mysql را وارد کنید apt-get install mysql-serverبعد از نصب دستور زیر را اجرا کنید :mysql_secure_installationبعد از اجرای این دستور شما باید پسورد root مربوط به mysql را وارد نمیایید.سپس از شما میخواهد که در صورت نیاز پسورد root را عوض کنید، در صورتی که نیاز به تغییر پسورد ندارد N را وارد کنید تا وارد مرحله بعدی شود.به سادگی می‌توانید بقیه سوالات را با Y جواب دهید. By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up...نصب PHP زبان برنامه نویسی متن باز تحت وب است که بصورت گسترده برای ساخت صفحات Dynamic مورد استفاده قرار می‌گیرد.برای نصب PHP دستورات زیر را در ترمینال وارد نمایید.apt-get install php7.0 libapache2-mod-php7.0همچنین کتابخانه ها و ماژول های متنوعی دارد که به برای نصب Cacti به ماژول های زیر نیاز خواهیم داشت:apt-get install php7.0-cli php7.0-common php7.0-curl php7.0-fpm php7.0-gd php7.0-gmp php7.0-mysql php7.0-ldap php7.0-mbstring php7.0-snmp php7.0-xml می‌توانیم با ساخت صفحه اصلاعات PHP صحت نصب PHP را تست کنیم.برای این منظور دستور زیر را در ترمینال وارد نمایید:echo “<?php phpinfo(); ?>” > /var/www/html/info.phpآدرس زیر را در مرورگر وارد میکنیم.http://Server-Address/info.phpقبل از اینکه به ادامه مراحل بپردازیم فایل etc/php/7.0/apache2/php.ini را با ادیتور خود باز کنید و تغییرات زیر را انجام دهید :file_uploads = On date.timezone =Asia/Tehran2 - تنظیمات NTP : دستور زیر را در ترمینال وارد نمایید : apt-get install ntpفایل /etc/ntp.conf را با ادیتور دلخواه باز کنید قسمت زیر را ویرایش کرده و آدرس NTP Pool های دلخواه خود را وارد نمایید.با استفاده از دستور زیر سرویس NTP را Restart کنید:systemctl restart ntp.service می‌توانید با دستور زیر query بزنید تا مطمئن شوید همه چیز خوب کار می‌کند.ntpdq –pهمچنین مطمئن شوید که گزینه noquery در سطر restrict وجود داشته باشد:#By default, exchange time with everybody, but don't allow configuration. restrict -4 default kod notrap nomodify nopeer noquery limited restrict -6 default kod notrap nomodify nopeer noquery limited3 – ساخت Database و User برای Cacti در Mysqlدستور زیر را در ترمینال وارد کنید و سپس پسورد root مربوط به mysql را وارد نمایید:mysql –u root –pسپس دستورات زیر را وارد می‌کنیم:mysql> create database cacti; mysql> grant all on cacti.* to cactiuser@localhost identified by 'password'; mysql> flush privileges; mysql> exit4 – دانلود Cactiبا استفاده از دستور زیر فایل Cacti را دانلود می‌کنیم.همواره می‌توانید آخریش ورژن cacti را از طریق آدرس https://cacti.net/download_cacti.php دانلود کنید.wget http://www.cacti.net/downloads/cacti-1.1.33.tar.gz5 – نصب Cactiبا استفاده از دستور زیر فایل دانلود شده را اکسترکت کنید و سپس دستورات زیر را به ترتیب اجرا نمایید:tar xzvf cacti-1.1.33.tar.gzاین دستور کلیه فایل های موجود در آدرس /var/www/html که دایرکتوری پیش فرض وب سرویس می‌باشد را پاک کند، لذا در اجرای این دستور مراقب باشید :rm –rf /var/www/html/* mv c acti-1.1.33/* /var/www/html/ cd /var/www/html/includeفایل config.php را باز کنید و مقادیر زیر را متناسب با مرحله 3 تغییر دهید :/* make sure these values reflect your actual database/host/user/password */ $database_type = 'mysql'; $database_default = 'cacti'; $database_hostname = 'localhost'; $database_username = 'cactiuser'; $database_password = 'password'; $database_port = '3306'; $database_ssl = false;همچنین url_path را به صورت زیر تغییر دهید :$url_path = '/';فایل را ذخیره کنید و خارج شوید، سپس دستور زیر را در ترمینال وارد نمایید:mysql -u root -p cacti < /var/www/html/cacti.sqlپسورد mysql را وارد کنید و صبر کنید تا فرایند به اتمام برسد و command line در اختیار شما قرار بگیرد.سپس دستورات زیر را وارد کنید: systemctl restart mysql.service systemctl restart apache2.serviceسپس در مرورگر آدرس زیر را وارد کنید : http://Server-addressدر صفحه باز شده تیک Accept GPL License Agreement را انتخاب و دکمه Begin را کلیک نمایید تا وارد صفحه Pre-installation Checks شوید : اگر در صفحه Pre-installation Checks با خطای زیر مواجه شدید دستورات زیر را وارد نمایید : Pre-installation Checks MySQL TimeZone Support ERROR: Your Cacti database login account does not have access to the MySQL TimeZone database. Please provide the Cacti database account "select" access to the time_zone_name" table in the "mysql" database, and populate MySQL's TimeZone information before proceeding.دستورات : mysql -u root –pچ Enter password: YOUR-PASSWORD-HERE mysql> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost IDENTIFIED BY ' password '; mysql> FLUSH privileges; mysql> quit; mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql Enter password: YOUR-PASSWORD-HERE systemctl restart apache2.service مجدد به مرورگر برگردید و صفحه را Refresh کنید و صفحه Pre-installation Checks را تا پایین چک نمایید.اگه شما هم مثل من با این پیش نیاز ها روبه رو شدید که از قبل آماده نکرده اید مراحل زیر را انجام دهید :فایل etc/mysql/mysql.conf.d/mysqld.cnf را با ادیتور خود باز کنید و زیر قسمت [mysqld] خط های زیر را اضافه کنید :max_heap_table_size=128M tmp_table_size=128M join_buffer_size=128M innodb_buffer_pool_size=256M innodb_doublewrite=0 innodb_flush_log_at_timeout=3 innodb_read_io_threads=32 innodb_write_io_threads=16 فایل را ذخیره کنید و دستورات زیر را در ترمینال وارد کنید : systemctl restart mysql.service systemctl restart apache2.serviceصفحه وب را Refresh کنید و Next را کلیک کنید در صفحه Installation Type گزینه ی New Primary Server را انتخاب کنید و Next را کلیک کنید :اگه از اول آموزش همراه بوده باشید قطعا با این صفحه روبه رو خواهید شد، لذا نگران نباشید و تا انتهای آموزش همراه من باشید :خب طبق این صفحه ما ابزار های rrdtool، snmpwalk ، snmpget ، snmpbulkwalk ، snmpgetnext ، snmptrap، spine را نیاز داریم و همچنین فایل /var/www/html/log/cacti.log را هم باید ایجاد کنیم.با استفاده از دستور زیر ابزار های rrdtool، snmpwalk ، snmpget ، snmpbulkwalk ، snmpgetnext ، snmptrap را نصب خواهیم کرد. apt-get install rrdtool snmp snmpd –y برای نصب spine به ترتیب زیر عمل می‌کنیم: cd /optبا استفاده از دستور زیر Source مربوط به spine را دانلود میکنیم.آخرین نسخه را همواره میتوانید از آدرس https://cacti.net/spine_download.php دانلود کنید.wget http://www.cacti.net/downloads/spine/cacti-spine-1.1.33.tar.gz tar xzvf cacti-spine-1.1.33.tar.gz cd cacti-spine-1.1.33/ /opt/cacti-spine-1.1.33 # ./bootstrapاگر با این خطا مواجه شدید دستورات زیر را به ترتیب وارد نمایید: FATAL: Unable to locate dos2unix utility ./bootstrap: 38: exit: Illegal number: -1دستور:opt/cacti-spine-1.1.33 # apt-get install build-essential dos2unix dh-autoreconf help2man libssl-dev libmysql++-dev librrds-perl libsnmp-dev libmysqlclient-dev libmysqld-dev –yمجدد ./bootstrap را اجرا می‌کنیم و بعد از اتمام دستورات زیر را به ترتیب وارد می‌کنیم./opt/cacti-spine-1.1.33 #./configure /opt/cacti-spine-1.1.33 #make /opt/cacti-spine-1.1.33 #make install /opt/cacti-spine-1.1.33 #chown root:root /usr/local/spine/bin/spine /opt/cacti-spine-1.1.33 #chmod +s /usr/local/spine/bin/spineبعد از اتمام به مرورگر برگردید و قسمت آدرس spine را به شرح زیر تغییر دهید:اخرین مورد خطای مربوط نبودن فایل cacti.log بود که برای این مشکل دستورات زیر را به ترتیب وارد نمایید :touch /var/www/html/log/cacti.log chown -R www-data:www-data /var/www/html/مرورگر را Refresh کنید و Next را کلیک کنید.در صفحه Directory Permission Checks مطمئن شوید که همه دسترسی های مورد نیاز را ایجاد کرده اید و Next را کلیک کنید (اگه طبق آموزش پیش اومده باشید با صفحه زیر مواجه خواهید شد )در صفحه های Template Setup، Template های مورد نیاز خود را تیک بزنید و روی Finish کلیک کنید.( در آینده نیز می‌توانید Template های دلخواه خود را اضافه کنید )خب Cacti با موفقت نصب شد، برای ورود به پنل از نام کاربری و پسورد admin استفاده کنید.بصورت پیش فرض هر دوتای این ها admin می‌باشد که بعد از وارد کردن مجبور می‌شوید که پسورد را عوض کنید.