مدیر سیستم یا مدیر شبکه وظیفه اشکالزدایی و نظارت بر مشکلات سیستم لینوکس را بهصورت روزانه برعهده دارد که مسئولیتی چالشبرانگیز است. این شغل به عزمی راسخ، درک عمیق از سیستمهای لینوکس و تعهد دائمی برای اطمینان از عملکرد و قابلیت اطمینان بهینه نیاز دارد. پس از اختصاص یک دهه بهعنوان مدیر لینوکس در صنعت فناوری اطلاعات، میتوانید دشواری وظیفه نظارت و اطمینان از عملکرد مستمر سیستم را به خوبی درک کنید. با توجه به این موضوع، ما یک لیست جامع از 20 ابزار برتر و دستورات مانیتورینگ لینوکس که اغلب استفاده میشوند را تهیه کردهایم. این ابزارهای ارزشمند برای هر مدیر سیستم لینوکس / یونیکس میتوانند ضروری باشند و به آنها قدرت نظارت، تشخیص و حفظ سلامت و عملکرد سیستمهایشان را میدهند.
این دستورات مانیتورینگ لینوکس در تمامی نسخههای لینوکس دردسترس هستند و میتوانند برای نظارت و یافتن دلایل واقعی مشکلات مفید باشند. لیست دستورات مانیتورینگ لینوکس که در اینجا اشاره شده است برای این است که بتوانید دستور مناسبی را که مطابق با سناریوهای نظارتی شما باشد را انتخاب کنید و این لیست کاملی است.
1- Top – Linux Process Monitoring
فرمان Linux top یک برنامه نظارت بر عملکرد است که اغلب توسط بسیاری از مدیران سیستم برای نظارت بر عملکرد لینوکس استفاده میشود و در بسیاری از سیستمعاملها مانند لینوکس و یونیکس موجود است.
دستور Top برای نمایش تمام فرآیندهای در حال اجرا بهصورت بلادرنگ در یک لیست مرتب و بهروزرسانی منظم استفاده میشود. دستور Top، CPU، MEMORY، Swap ، اندازه کش، اندازه بافر و Process PID، کاربر، دستورات مورد استفاده و بسیاری از موارد دیگر را نشان میدهد.
همچنین این دستور، استفاده از مصارف بالا از حافظه و cpu را در فرآیندهای در حال اجرا را نشان میدهد. دستور top برای مدیران سیستم بسیار مفید است تا درصورت لزوم اقدامات اصلاحی را انجام دهند. اجازه دهید در عمل به دستور top نگاهی بیندازیم.
# top
2- VmStat – آمار حافظه مجازی
دستور VmStat لینوکس برای نمایش آمار حافظه مجازی، نخهای هسته، دیسکها، فرآیندهای سیستم، بلوکهای I/O، وقفهها، فعالیت CPU و موارد دیگر استفاده میشود.
نصب VmStat بر روی لینوکس
VmStat به صورت پیشفرض در سیستمهای لینوکس دردسترس نیست، برای استفاده از این دستور ابتدا باید پکیجی به نام sysstat (یک ابزار نظارتی قدرتمند) که شامل برنامه vmstat را نصب کنید.
$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install sysstat [On Debian/Ubuntu & Mint] $ sudo pacman -S sysstat [On Arch Linux]
رایجترین استفاده از فرمت دستور vmstat بهصورت زیر است:
# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 43008 275212 1152 561208 4 16 100 105 65 113 0 1 96 3 0
3- Lsof – لیست فایلهای بازشده
دستور Lsof در بسیاری از سیستمهای لینوکس / یونیکس برای نمایش لیست تمام فایلها و فرآیندهای بازشده مورداستفاده قرار میگیرد. فایلهای باز شامل فایلهای دیسک، سوکتهای شبکه، پایپها، دستگاهها و فرآیندها است.
یکی از دلایل اصلی استفاده از این دستور در زمانی است که دیسک را نمیتوان unmounted کرد و خطای استفاده یا بازشدن فایلها را نشان میدهد. با این دستور، میتوانید بهراحتی تشخیص دهید که کدام فایلها در حال استفاده هستند. رایجترین فرمت برای دستور lsof مطابق زیر است:
# lsof COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd DIR 8,2 224 128 / systemd 1 root rtd DIR 8,2 224 128 / systemd 1 root txt REG 8,2 1567768 134930842 /usr/lib/systemd/systemd systemd 1 root mem REG 8,2 2714928 134261052 /usr/lib64/libm-2.28.so systemd 1 root mem REG 8,2 628592 134910905 /usr/lib64/libudev.so.1.6.11 systemd 1 root mem REG 8,2 969832 134261204 /usr/lib64/libsepol.so.1 systemd 1 root mem REG 8,2 1805368 134275205 /usr/lib64/libunistring.so.2.1.0 systemd 1 root mem REG 8,2 355456 134275293 /usr/lib64/libpcap.so.1.9.0 systemd 1 root mem REG 8,2 145984 134261219 /usr/lib64/libgpg-error.so.0.24.2 systemd 1 root mem REG 8,2 71528 134270542 /usr/lib64/libjson-c.so.4.0.0 systemd 1 root mem REG 8,2 371736 134910992 /usr/lib64/libdevmapper.so.1.02 systemd 1 root mem REG 8,2 26704 134275177 /usr/lib64/libattr.so.1.1.2448 systemd 1 root mem REG 8,2 3058736 134919279 /usr/lib64/libcrypto.so.1.1.1c ...
4- Tcpdump – تحلیلگر بستههای شبکه
دستور tcpdump یکی از پرکاربردترین دستورات مانیتورینگ لینوکس در برنامههایی است که برای آنالیز بستههای شبکه یا packet sniffer مورداستفاده قرار میگیرد و برای گرفتن یا فیلتر کردن بستههای TCP/IP که بر روی یک رابط خاص از طریق شبکه دریافت یا منتقل میشود، استفاده میگردد.
همچنین، این دستور گزینهای برای ذخیره بستههای ضبطشده در یک فایل برای تجزیه و تحلیل بعدی را فراهم میکند. Tcpdump تقریباً در تمام توزیعهای لینوکس دردسترس است.
# tcpdump -i enp0s3 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes 10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093 10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86 10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86 10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45 10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33 10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86 10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
5- Netstat – آمار شبکه
Netstat یک ابزار خط فرمان برای نظارت بر ورودی و خروجی و همچنین آمارهای رابط است. این یک ابزار بسیار مفید برای هر مدیر سیستم است که برای نظارت بر عملکرد شبکه و عیبیابی مشکلات مربوط به شبکه به آن نیاز خواهد داشت.
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 tecmint:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:postgres 0.0.0.0:* LISTEN tcp 0 0 tecmint:ssh 192.168.0.124:45611 ESTABLISHED tcp6 0 0 [::]:sunrpc [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:postgres [::]:* LISTEN udp 0 0 0.0.0.0:mdns 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 tecmint:domain 0.0.0.0:* udp 0 0 0.0.0.0:bootps 0.0.0.0:* udp 0 0 tecmint:bootpc _gateway:bootps ESTABLISHED ...
در حالی که دستور netstat به نفع دستور ss منسوخ شدهاست، هنوز هم میتوانید دستور netstat را در تولکیت شبکه خود بیابید.
6- Htop – نظارت بر فرآیند لینوکس
Htop یک ابزار بسیار پیشرفته و تعاملی و بلادرنگ است که برای نظارت بر فرآیند لینوکس است که بسیار شبیه به فرمان top لینوکس است. با این حال، این دستور دارای برخی از ویژگیهایی مانند رابط کاربرپسند برای مدیریت فرآیندها، کلیدهای میانبر و نمای افقی و عمودی از فرآیندها و حتی موارد بسیار بیشتر دیگری نیز است.
# htop
Htop یک ابزار شخص ثالث است که با سیستمهای لینوکس ارائه نمیشود و شما باید آن را بااستفاده از ابزار system package manager خودتان نصب کنید.
7- Iotop – نظارت بر ورودی / خروجی دیسک لینوکس
Iotop نیز بسیار شبیه به دستور top و برنامه htop است، اما تابع حسابداری برای مانیتورینگ و نمایش در زمان واقعی بر روی دیسک I/O و فرآیندها را دارد.
ابزار iotop برای یافتن دقیق فرآیند و استفاده بالا از دیسک خواندن / نوشتن توسط فرآیندها بسیار مفید است.
نصب Iotop بر روی لینوکس
دستور Iotop بهصورت پیشفرض بر روی لینوکس دردسترس نیست و باید مطابق زیر آن را نصب کنید:
$ sudo yum install iotop [On Older CentOS/RHEL & Fedora] $ sudo dnf install iotop [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install iotop [On Debian/Ubuntu & Mint] $ sudo pacman -S iotop [On Arch Linux]
استفاده رایج از فرمت دستور iotop بهصورت زیر است:
# iotop
8- Iostat – آمار ورودی / خروجی
Iostat ابزار سادهای است که آمار دستگاه ذخیرهسازی ورودی و خروجی سیستم را جمعآوری و نشان میدهد. این ابزار اغلب برای ردیابی مشکلات عملکرد دستگاه ذخیرهسازی از جمله تجهیزات، دیسکهای محلی و دیسکهای راه دور مانند NFS استفاده میشود.
نصب Iostat بر روی لینوکس
برای دریافت دستور Iostat باید پکیجی به نام sysstat را مطابق نصب کنید:
$ sudo yum install sysstat [On Older CentOS/RHEL & Fedora] $ sudo dnf install sysstat [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux] $ sudo apt-get install sysstat [On Debian/Ubuntu & Mint] $ sudo pacman -S sysstat [On Arch Linux]
استفاده معمول از فرمت دستور iostat بهصورت زیر است:
# iostat Linux 4.18.0-193.el8.x86_64 (tecmint) 04/05/2021 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.21 0.03 0.59 2.50 0.00 96.67 Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 3.95 83.35 89.63 1782431 1916653
9- IPTraf – نظارت بر IP LAN بلادرنگ
IPTraf یک ابزار منبعباز مبتنی بر کنسول بهمنظور نظارت بر شبکه بهصورت بلادرنگ (IP LAN) برای لینوکس است. این ابزار اطلاعات مختلفی مانند نظارت بر ترافیک IP که از شبکه عبور میکند، از جمله اطلاعات TCP flag ، جزئیات ICMP، خرابی ترافیک TCP/UDP، بستههای اتصال TCP و تعداد بایتها را جمعآوری میکند.
همچنین، اطلاعات مربوط به آمار کلی و جزئی رابط TCP، UDP، IP، ICMP، NON-IP، خطاهای checksum IP، فعالیت رابط و غیره را جمعآوری میکند.
10- Psacct یا Acct – مانیتور کردن فعالیتهای کاربر
ابزارهای psacct یا acct برای نظارت بر فعالیتهای هر کاربر مفید است. هر دو این دیامونها در پسزمینه اجرا میشوند و فعالیت کلی هر کاربر و همچنین منابعی که توسط آنها مصرف میشوند را زیر نظر میگیرد.
این ابزارها برای مدیران سیستم بهمنظور ردیابی فعالیتهای هر کاربر مانند کارهایی که انجام میدهند، دستوراتی که صادر کردهاند، منابعی که استفاده کردهاند، مدتزمانی که آنها در سیستم فعال بودهاند و … بسیار مفید هستند.
11- Monit – نظارت بر فرآیندها و خدمات لینوکس
Monit یک ابزار منبعباز رایگان و مبتنی بر وب است که بهطور خودکار فرآیندهای سیستم، برنامهها، فایلها، دایرکتوریها، مجوزها، checksumها و فایل سیستمها را کنترل و مدیریت میکند.
این ابزار بر خدماتی مانند آپاچی، MySQL، Mail، FTP، ProFTP، Nginx، SSH و غیره نظارت میکند. وضعیت سیستم را میتوان با استفاده از خط فرمان یا رابط کاربری مشاهده کرد.
12- NetHogs – نظارت بر تمام فرآیندهای پهنای باند شبکه
NetHogs یک برنامه کوچک و منبعباز (مشابه دستور TOP لینوکس ) است که یک تب برای هر مورد فعالیت فرآیند شبکه در سیستم شما نگاه میداد. همچنین، این برنامه ترافیک پهنای باند استفادهشده برای هر برنامه یا اپلیکیشن را در شبکه بهصورت بلادرنگ ردیابی میکند.
# nethogs
13- iftop – نظارت بر پهنای باند شبکه
Iftop یکی دیگر از ابزارهای رایگان مبتنی بر ترمینال و منبعباز برای مانیتورینگ سیستم است که لیستی از مصارف پهنای باند شبکه که از طریق رابط شبکه بر روی سیستم شما بهروزرسانی میشود را نمایش میدهد.
iftop در زمینه استفاده از شبکه مشابه top است و دقیقا مانند این است که top بینشهایی را درمورد استفاده از CPU ارائه میدهد.
iftop متعلق به خانواده معروف TOP از ابزارهای نظارت بر شبکه است. و بهطور خاص، برای مشاهده یک رابط شبکه انتخابشده توسط کاربر طراحی شدهاست و این ابزار دادههای بلادرنگ را درمورد استفاده از پهنای باند فعلی بین دو هاست مشخصشده ارائه میدهد.
# iftop
14- Monitorix – مانیتورینگ سیستم و شبکه
Monitorix یک ابزار رایگان و سبکوزن است که برای اجرا و نظارت بر منابع سیستم و شبکه است تا حدامکان برای سرورهای لینوکس / یونیکس طراحی شدهاست.
دارای یک وب سرور HTTP داخلی است که بهطور منظم اطلاعات سیستم و شبکه را جمعآوری میکند و آنها را توسط نمودار نمایش میدهد. این ابزار میانگین بارگذاری و میزان مصرف سیستم، تخصیص حافظه، سلامت درایو دیسک، خدمات سیستم، پورتهای شبکه، آمار MAIL (Sendmail، Postfix، Dovecot و غیره)، آمار MYSQL و بسیاری از موارد دیگر را مانیتور میکند.
این ابزار برای نظارت بر عملکرد کلی سیستم طراحی شده است و به شناسایی خرابیها، تنگناها، فعالیتهای غیر عادی و غیره کمک میکند.
15- Arpwatch – نظارت بر فعالیت اترنت
Arpwatch نوعی برنامه است که برای نظارت بر Address Resolution (تغییرات آدرس MAC و IP) اترنت در یک شبکه لینوکس طراحی شدهاست.
این ابزار بهطور مرتب بر ترافیک اترنت نظارت میکند و یک گزارش از تغییرات جفت IP و آدرس MAC همراه با مهر زمانی در یک شبکه تولید میکند. آن همچنین قابلیتی برای ارسال هشدارهای ایمیل به مدیران، هنگامی که یک جفت اضافه میشود یا تغییر میکند را دارد. این ابزار همچنین برای تشخیص ARP spoofing در یک شبکه بسیار مفید است.
16- Suricata – نظارت بر امنیت شبکه
Suricata یک ابزار امنیت شبکه منبعباز و با عملکرد بالا است که برای تشخیص و پیشگیری از نفوذ لینوکس، FreeBSD و ویندوز استفاده میشود.
این ابزار توسط بنیاد غیرانتفاعی OISF (Open Information Security Foundation) طراحی شدهاست و متعلق به این سازمان است.
17- VnStat PHP – نظارت بر پهنای باند شبکه
VnStat PHP یک اپلیکیشن فرانتاندی مبتنی بر وب است برای محبوب ترین ابزار شبکه به نام vnstat است. VnStat PHP بر ترافیک شبکه مورداستفاده در حالت گرافیکی بهخوبی نظارت میکند.
این ابزار برای نمایش میزان استفاده از ترافیک شبکه در داخل و خارج از شبکه بهصورت ساعت، روزانه، ماهانه و گزارشهای خلاصه کلی طراحی شدهاست.
18- Nagios – نظارت بر شبکه / سرور
Nagios یک سیستم مانیتورینگ قوی و منبعباز پیشرو است که مدیران شبکه و سیستم را قادر میسازد تا بتوانند مشکلات مربوط به سرور قبل از اینکه آنها بر روی فرآیندهای اصلی تجارت تأثیر بگذارند را شناسایی و برطرف کنند.
با استفاده از سیستم Nagios، مدیران میتوانند از راه دور بر لینوکس، ویندوز، سوئیچها، روترها و پرینترها در یک پنجره واحد نظارت کنند. این ابزار، هشدارهای مهم را نشان میدهد و نشان میدهد که چه چیزی در شبکه / سرور مجازی لینوکس شما رخ دادهاست و بهطور غیرمستقیم به شما کمک میکند تا فرآیندهای عیبزدایی را قبل از اینکه اتفاق بیفتند را شروع کنید.
19- Nmon – نظارت بر عملکرد لینوکس
Nmon (مخفف Nigel’s Performance Monitor) یک از دستورات مانیتورینگ لینوکس است که برای نظارت بر تمام منابع لینوکس مانند CPU، MEMORY، دیسک مورداستفاده، شبکه، فرآیندهای TOP، NFS، هسته و بسیاری از موارد دیگر استفاده میشود. این ابزار دارای دو حالت آنلاین و Capture است.
از حالت آنلاین این ابزار برای نظارت بر بلادرنگ و حالت Capture برای ذخیرهسازی خروجی در فرمت CSV برای پردازش بعدی استفاده میشود.
20- Collectl – ابزار همهجانبه نظارت بر عملکرد
Collectl یکی دیگر از دستورات مانیتورینگ لینوکس قدرتمند و دارای قابلیتهای بسیار است که میتواند برای جمعآوری اطلاعات در مورد منابع سیستم لینوکس مانند استفاده از پردازنده، حافظه، شبکه، indoes، فرآیندها، TCP، NFS، سوکتها و بسیاری از موارد دیگر بکار رود.