فروردین ۱۶, ۱۳۹۷
مانیتورینگ
یکی از ابزارهای مهم در Capacity Planning سرور ابزارهای Monitoring هستند. تعداد زیادی نرمافزار و سرویس برای Monitoring سخت افزار، سیستم عامل و سرویس ها وجود دارد. در اینجا نرم افزار Collectd را معرفی میکنم که یک نرم افزار ساده با کلی پلاگین آماده است که می یاد از منابع مورد نظر شما، شروع به جمع آوری اطلاعات می کنه و در فایلهای rrd ذخیره می کنه. این فایلها را می توان به نمودار تبدیل کرد و یا خروجی xml ازشون گرفت.
داخل پروژه Collectd در github ابزاری که با perl نوشته شده وجود دارد به نام collection3 که به شما اینترفیس تحت وبی از داده های Collectd می دهد. متاسفانه به دلیل آنکه وابستگی های لازم برای راه اندازی Collection3 نیاز است در CentOS وجود ندارد، Collection3 در CentOS از بسته Collectd حذف شده است. این راهنما به شما کمک می کند تا Collection3 را هم در Debin/Ubuntu و هم در CentOS نصب کنید.
توجه: این راهنما برای دانشجویان دوره LPIC2 تهیه شده ولی سعی شده به صورت کلی نوشته بشه که همه بتونند استفاده کنند.
نصب collectd و nginx در Debian/Ubuntu
apt-get install collectd nginx ۱ apt-get install collectd nginx
نصب collectd و nginx در CentOS 7.x
در CentOS پلاگینهای Collectd را باید جدا نصب کنید. برخلاف Debian که به همراه بسته اصلی نصب می شوند. در اینجا سه پلاگین rrd و apache و mysql را برای نمونه نصب کردیم.
yum install epel-release yum install collectd collectd-rrdtool collectd-apache collectd-mysql nginx ۱ ۲ yum install epel-release yum install collectd collectd-rrdtool collectd-apache collectd-mysql nginx
پیکربندی Collectd
در این مقاله به پیکربندی Collectd نخواهیم پرداخت. دوستانی که در دوره LPIC2 حضور داشتند مطمئنا پیش زمینه لازم برای پیکربندی collectd را دارند. شاید در مطلب جدایی در مورد پیکربندی Collectd هم صحبت کردم.
تنها موضوعی که باید در تنظیمات حتما انجام بدید فعال کردن ماژول rrd هست.
نصب Collection3 در Debian/Ubuntu
در توزیعهای Debian base بسته collectd به صورت کامل نصب می شود و در فایلهای مرتبط با آن collection3 نیز موجود است. پس تنها برای استفاده از collection3 کافیه وابستگی های اون را هم نصب کنید و بعد nginx را پیکربندی کنید.
apt-get install librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl libjson-perl cp -r /usr/share/doc/collectd/examples/collection3 /var/www/html/ ۱ ۲ apt-get install librrds-perl libconfig-general-perl libhtml-parser-perl libregexp-common-perl libjson-perl cp -r /usr/share/doc/collectd/examples/collection3 /var/www/html/
نصب Collection3 در CentOS 7.x
چون Collection3 در بسته collectd موجود در مخازن epel حذف شده است، باید source کامل بسته collectd را بگیرید و فایلهای collection3 را از source آن در پوشه nginx کپی کنید.
cd /usr/src git clone https://github.com/collectd/collectd.git cp -r /usr/src/collectd/contrib/collection3 /var/www/html/ ۱ ۲ ۳ cd /usr/src git clone https://github.com/collectd/collectd.git cp -r /usr/src/collectd/contrib/collection3 /var/www/html/
پیکربندی nginx
من برای صفحه مانیتورینگ سرور یک دامنه اختصاص دادم به اسم monitor.linuxmotto.local و تنظیمات nginx بر مبنای اون نوشتم. این دامنه خوب قطعا وجود نداره برای همین حتما تو etc/hosts/ اضافه اش کنید.
در ضمن در Debian باید تو پوشه etc/nginx/sites-available/ یک فایل conf. بسازید و این تنظیمات را اضافه کنید و در CentOS در پوشه etc/nginx/conf.d/
server { listen 80; server_name monitor.linuxmotto.local; location ~ .cgi$ { root /var/www/html/collection3/; expires off; fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.cgi; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location / { root /var/www/html/collection3; index bin/index.cgi; } }
نصب وابستگی های مورد نیاز collection3
این بخش از راهنما مخصوص توزیع CentOS است. و به این دلیل است که fcgi در nginx در توزیع Centos پشتیبانی نمی شود.
# yum install perl-FCGI perl-HTML-Parser rrdtool-perl perl-Config-General lm_sensors collectd-rdis collectd-rrdtool perl fcgi-devel spawn-fcgi perl-Collectd collectd-nginx collectd-mysql
نصب fcgiwrap در CentOS 7
# yum install dh-autoreconf fcgi-devel pkgconfig # cd /usr/local/src/ # git clone git://github.com/gnosek/fcgiwrap.git # cd fcgiwrap/ # autoreconf # ./configure # make # make install
اگر به خطای زیر خوردید مطمئن شوید که pkgconfig به درستی نصب شده است و دستور autoreconf -i را به جای autoconf برای تکرار روند انجام دهید
# autoconf configure.ac:32: error: possibly undefined macro: AC_DEFINE If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:39: error: possibly undefined macro: AM_CONDITIONAL # autoreconf -i # yum install spawn-fcgi # vi /etc/sysconfig/spawn-fcgi FCGI_SOCKET=/var/run/fcgiwrap.socket FCGI_PROGRAM=/usr/local/sbin/fcgiwrap FCGI_USER=apache FCGI_GROUP=apache FCGI_EXTRA_OPTIONS=”-M 0770″ OPTIONS=”-u $FCGI_USER -g $FCGI_GROUP -s $FCGI_SOCKET -S $FCGI_EXTRA_OPTIONS -F 1 -P /var/run/spawn-fcgi.pid — $FCGI_PROGRAM” # usermod -a -G apache nginx # systemctl enable spawn-fcgi # systemctl start spawn-fcgi
بعد از همه این کارها سرویسها را ریستارت کنید.
systemctl restart nginx collectd
الان باید تو مرورگرتون به collection3 از طریق آدرس monitor.linuxmotto.local دسترسی داشته باشید.