در بخش اول از این سلسه مطلب، نرم افزار مانیتورینگ Prometheus معرفی شد و نحوه ی کارکرد آن توضیح داده شد. در بخش های دوم و سوم نحوه ی نصب Prometheus server آموزش داده شد. همانطور که گفته شد Prometheus server اطلاعات یا همان metric ها را از exporter ها دریافت می کند.
برای هر سرویس و هر منظوری exporter مخصوص وجود دارد که برخی از آنها رسمی و برخی دیگر غیر رسمی هستند. برای دیدن و دریافت exporter ها می توانید به لینک پایین مراجعه کنید :
https://prometheus.io/docs/instrumenting/exporters/
در این قسمت قصد داریم تا node_exporter که یکی از exporter های prometheus برای metric های سرور و سخت افزار می باشد و قابل نصب بر روی سیستم های یونیکسی و لینوکسی می باشد را نصب کنیم. ما قصد داریم تا node_exporter را بر روی همان سرور prometheus نصب کنیم و metric های آن را دریافت و سرور prometheus را مانیتور کنیم. کاربران سیستم عامل ویندوز باید از WMI exporter استفاده کنند که لینک پروژه ی آن را در پایین مشاهده می کنید :
https://github.com/martinlindhe/wmi_exporter
نصب و پیکربندی node_exporter :
به این منظور به کاربر prometheus وارد شود و node_exporter را دانلود کنید :
# su – prometheus
$ wget -c https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
اکنون فایل دانلود شده را از حالت فشرده خارج کنید و آن را به node_exporter تغییر نام دهید :
$ tar -xzvf node_exporter-0.17.0.linux-amd64.tar.gz
$ mv node_exporter-0.17.0.linux-amd64 node_exporter
اکنون جهت کنترل سرویس node_exporter با systemd کافیست تا یک service فایل برای آن ایجاد کنیم.به این منظور با کاربر root فایل زیر را ایجاد کنید :
# vi /etc/systemd/system/node_exporter.service
سپس خطوط زیر را درون فایل بنویسید:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter[Install]
WantedBy=default.target
اکنون یکبار systemd را reload کنید :
# systemctl daemon-reload
اکنون برای start و enable کردن سرویس node_exporter کافیست تا دستورهای زیر را اجرا کنید :
# systemctl start node_exporter
# systemctl enable node_exporter
برای بررسی وضعیت سرویس node_exporter می توانید از دستور پایین استفاده کنید :
# systemctl status node_exporter
یا اینکه می توان از دستور زیر استفاده کرد :
# netstat -plntu
نمونه ای از دستور اجرا شده را در تصویر پایین مشاهده می کنید :
همانطور که در تصویر بالا مشاهده می کنید سرویس node_exporter بر روی پورت 9100 در حال اجرا می باشد.
اجرا کردن node_exporter با استفاده از Docker :
برای اجرا کردن node-exporter با استفاده از Docker می توانید از دستور پایین استفاده کنید. نکته اینکه اجرای node-exporter بر روی Docker در محیط های عملیاتی (production ) پیشنهاد نمی شود.
# docker run -d --name node_exporter --restart always -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --net="host" prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"
ادامه دارد …