SMOKEPING_EXAMPLES(5) SmokePing SMOKEPING_EXAMPLES(5)

smokeping_examples - نمونه‌هایی از پیکربندی Smokeping

این سند چند نمونه از فایل‌های پیکربندی Smokeping را ارائه می‌دهد. تمام نمونه‌ها را می‌توانید در دایرکتوری "examples" در مستندات Smokeping بیابید. توجه داشته باشید که نام‌های DNS در نمونه‌ها غیرعملیاتی هستند.

جزئیات ساختار نحوی و همه متغیرها در smokeping_config و در مستندات پروب مربوطه (در صورت وجود) آمده است.

این راهنما به صورت خودکار از کد منبع Smokeping، به‌ویژه ماژول Smokeping::Examples تولید شده است.

در حال حاضر این نمونه‌ها تنها در بخش‌های "Probes" و "Targets" با یکدیگر تفاوت دارند. سایر بخش‌ها از قالب پیکربندی "etc/config.dist" در توزیع Smokeping گرفته شده‌اند تا فایل‌های نمونه کامل باشند.

اگر مایلید نمونه‌های بیشتری ارائه دهید، بخش‌های دیگر را مستند کنید یا نمونه‌های موجود را بهبود بخشید، لطفاً این کار را انجام دهید؛ ترجیحاً از طریق ارسال تغییرات پیشنهادی به فهرست پستی smokeping-users.

پیکربندی پروب (Probe configuration)
*** Probes ***
+FPing
binary = /usr/bin/fping
توضیحات پروب (Probe explanation)
در اینجا ما تنها یک پروب داریم، fping، که به چهار میزبان پینگ ارسال می‌کند.

پروب fping از پارامترهای پیش‌فرض استفاده می‌کند؛ برخی از آن‌ها از بخش Database تامین می‌شوند ("step" و "pings")، و برخی دیگر توسط ماژول پروب تعیین می‌گردند.

پیکربندی هدف (Target configuration)
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ mysite1
menu = Site 1
title = Hosts in Site 1
++ myhost1
host = myhost1.mysite1.example
++ myhost2
host = myhost2.mysite1.example
+ mysite2
menu = Site 2
title = Hosts in Site 2
++ myhost3
host = myhost3.mysite2.example
++ myhost4
host = myhost4.mysite2.example
توضیحات هدف (Target explanation)
میزبان‌ها در دو سایت مستقر شده‌اند که هر سایت شامل دو میزبان است، و پیکربندی بر همین اساس به بخش‌های سایت ('+') و زیربخش‌های میزبان ('++') تقسیم شده است.

پیکربندی پروب (Probe configuration)
*** Probes ***
+ FPing
binary = /usr/bin/fping
packetsize = 1000
+ DNS
binary = /usr/bin/dig
lookup = name.example
pings = 5
step = 180
+ EchoPingHttp
pings = 5
url = /test-url
توضیحات پروب (Probe explanation)
در اینجا سه پروب داریم: FPing برای پینگ‌های معمولی ICMP، پروب DNS برای سنجش تاخیر کارساز نام و EchoPingHttp برای وب‌سرورها.

پروب FPing با پارامترهای پیش‌فرض اجرا می‌شود، به جز اینکه اندازه بسته ICMP به جای ۵۶ بایت پیش‌فرض، ۱۰۰۰ بایت است.

پروب‌های DNS و EchoPingHttp طوری پیکربندی شده‌اند که فشار کمتری به سرورها وارد کنند، زیرا به جای ۲۰ پرس‌وجو (پینگ) پیش‌فرض (یا هر مقداری که در بخش Database مشخص شده باشد)، تنها ۵ پرس‌وجو انجام می‌دهند. با این حال، پرس‌وجوهای DNS در فاصله‌های زمانی کوتاه‌تری انجام می‌شوند: ۵ پرس‌وجو هر ۳ دقیقه یک‌بار به جای هر ۵ دقیقه یک‌بار.

پیکربندی هدف (Target configuration)
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ network
menu = Net latency
title = Network latency (ICMP pings)
++ myhost1
host = myhost1.example
++ myhost2
host = myhost2.example
+ services
menu = Service latency
title = Service latency (DNS, HTTP)
++ DNS
probe = DNS
menu = DNS latency
title = Service latency (DNS)
+++ dns1
host = dns1.example
+++ dns2
host = dns2.example
++ HTTP
menu = HTTP latency
title = Service latency (HTTP)
+++ www1
host = www1.example
+++ www2
host = www2.example
توضیحات هدف (Target explanation)
درخت اهداف بر اساس پروب مورد استفاده تقسیم‌بندی شده است. البته الزامی به این کار نیست: هر (زیر)بخش هدف می‌تواند از پروب متفاوتی استفاده کند، و یک پروب یکسان می‌تواند در بخش‌های مختلف درخت پیکربندی به کار گرفته شود.

پیکربندی پروب (Probe configuration)
*** Probes ***
+ FPing
binary = /usr/bin/fping
++ FPingNormal
offset = 0%
++ FPingLarge
packetsize = 5000
offset = 50%
توضیحات پروب (Probe explanation)
این نمونه مفهوم نمونه‌های پروب (Probe Instances) را نشان می‌دهد. پروب‌های FPingLarge و FPingNormal مستقل از یکدیگرند؛ آن‌ها صرفاً از یک ماژول مشترک، یعنی FPing، استفاده می‌کنند. FPingNormal از پارامترهای پیش‌فرض استفاده می‌کند، و FPingLarge نیز همین‌طور است به جز اندازه بسته که ۵۰۰۰ بایت تعیین شده است. هر دو از یک باینری یکسان fping استفاده می‌کنند و مسیر آن در بخش بالادستی FPing پیکربندی شده است.

پارامترهای 'offset' تضمین می‌کنند که پروب‌ها همزمان اجرا نشوند - پروب FPingNormal در سرِ هر ۵ دقیقه «کامل» (مانند 8:00، 8:05، 8:10 و غیره، بر اساس ساعت رسمی) اجرا می‌شود، در حالی که FPingLarge در نیمه این بازه‌ها (مانند 8:02:30، 8:07:30 و غیره) اجرا می‌گردد.

بخش بالادستی FPing به خودی خود پروبی تعریف نمی‌کند زیرا دارای زیربخش است. اگر واقعاً می‌خواستیم یک پروب با نام "FPing" داشته باشیم، می‌توانستیم یک زیربخش با همان نام ایجاد کنیم.

پیکربندی هدف (Target configuration)
*** Targets ***
probe = FPingNormal
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ network
menu = Net latency
title = Network latency (ICMP pings)
++ myhost1
menu = myhost1
title = ICMP latency for myhost1
+++ normal
title = Normal packetsize (56 bytes)
probe = FPingNormal
host = myhost1.example
+++ large
title = Large packetsize (5000 bytes)
probe = FPingLarge
host = myhost1.example
++ myhost2
menu = myhost2
title = ICMP latency for myhost2
+++ normal
title = Normal packetsize (56 bytes)
probe = FPingNormal
host = myhost2.example
+++ large
title = Large packetsize (5000 bytes)
probe = FPingLarge
host = myhost2.example
توضیحات هدف (Target explanation)
بخش اهداف دو میزبان myhost1.example و myhost2.example را نشان می‌دهد که با دو بسته ICMP با اندازه‌های مختلف پینگ می‌شوند. این بار درخت به جای پروب، بر اساس میزبان هدف تقسیم‌بندی شده است.

پیکربندی پروب (Probe configuration)
*** Probes ***
+ Curl
# probe-specific variables
binary = /usr/bin/curl
step = 60
# a default for this target-specific variable
urlformat = http://%host%/
توضیحات پروب (Probe explanation)
این نمونه تفاوت میان متغیرهای خاصِ پروب (Probe-specific) و خاصِ هدف (Target-specific) را توضیح می‌دهد. برای این منظور از پروب Curl استفاده می‌کنیم.

هر پروب دست‌کم از چند متغیر خاص پروب پشتیبانی می‌کند. مقادیر این متغیرها میان تمام اهداف آن پروب مشترک است و تنها می‌توان آن‌ها را در بخش Probes پیکربندی کرد. در این مورد، متغیرهای خاص پروب عبارتند از "binary" و "step".

متغیرهای خاص هدف توسط بیشتر پروب‌ها پشتیبانی می‌شوند؛ بارزترین استثنا پروب FPing و مشتقات آن است. متغیرهای خاص هدف می‌توانند برای اهداف مختلف، مقادیر متفاوتی داشته باشند. این متغیرها را می‌توان هم در بخش Probes و هم در بخش Targets پیکربندی کرد. مقادیری که در بخش Probes مقداردهی می‌شوند به عنوان مقادیر پیش‌فرضی عمل می‌کنند که می‌توان در بخش Targets آن‌ها را بازنویسی کرد.

مستندات هر پروب مشخص می‌کند کدام متغیرهای آن خاص پروب و کدام خاص هدف هستند.

در این مورد متغیر "urlformat" یک متغیر خاص هدف است. این متغیر همچنین تا حدی نامتداول است، زیرا می‌تواند شامل یک متغیر جایگزین برای متغیر "host" در بخش Targets باشد. این یک قابلیت عمومی نیست؛ کاربرد آن تنها به متغیر "urlformat" و نویسه گریز "%host%" محدود می‌شود.

(دلیل اینکه پروب FPing از متغیرهای خاص هدف پشتیبانی نمی‌کند صرفاً این است که برنامه fping تمام اهداف خود را در یک نوبت می‌سنجد، بنابراین همه آن‌ها پارامترهای یکسانی دارند. سایر پروب‌ها اهداف خود را یک‌به‌یک پینگ می‌کنند.)

پیکربندی هدف (Target configuration)
*** Targets ***
probe = Curl
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ HTTP
menu = http
title = HTTP latency
++ myhost1
menu = myhost1
title = HTTP latency for myhost1
host = myhost1.example
++ myhost2
menu = myhost2
title = HTTP latency for myhost2
host = myhost2.example
++ myhost3
menu = myhost3
title = HTTP latency for myhost3 (port 8080!)
host = myhost3.example
urlformat = http://%host%:8080/
+ FTP
menu = ftp
title = FTP latency
urlformat = ftp://%host%/
++ myhost1
menu = myhost1
title = FTP latency for myhost1
host = myhost1.example
++ myhost2
menu = myhost2
title = FTP latency for myhost2
host = myhost2.example
توضیحات هدف (Target explanation)
درخت اهداف به یک شاخه HTTP و یک شاخه FTP تقسیم شده است. سرورهای "myhost1.example" و "myhost2.example" در هر دو شاخه مورد سنجش قرار می‌گیرند. سرور سوم، یعنی "myhost3.example"، تنها یک سرور HTTP دارد و روی یک درگاه غیر استاندارد (8080) قرار گرفته است.

متغیر "urlformat" برای کل شاخه FTP به صورت "ftp://%host%/" مشخص شده است. برای شاخه HTTP، از مقدار پیش‌فرضِ بخش Probes استفاده می‌شود، به جز در مورد myhost3 که با بازنویسی آن، شماره پورت را در URL می‌گنجاند.

مقداردهی myhost3 می‌توانست دقیقاً به همان شکل شامل نام میزبان به صورت لفظی (یعنی urlformat = http://myhost3.example:8080/) باشد به جای اینکه از جایگزین %host% استفاده کند، اما متغیر host همچنان مورد نیاز می‌بود (هرچند برای هیچ کاری استفاده نمی‌شد).

پیکربندی پروب (Probe configuration)
*** Probes ***
+ FPing
binary = /usr/bin/fping
# these expect to find echoping in /usr/bin
# if not, you'll have to specify the location separately for each probe
# + EchoPing         # uses TCP or UDP echo (port 7)
# + EchoPingDiscard  # uses TCP or UDP discard (port 9)
# + EchoPingChargen  # uses TCP chargen (port 19)
+ EchoPingSmtp       # SMTP (25/tcp) for mail servers
+ EchoPingHttps      # HTTPS (443/tcp) for web servers
+ EchoPingHttp       # HTTP (80/tcp) for web servers and caches
+ EchoPingIcp        # ICP (3130/udp) for caches
# these need at least echoping 6 with the corresponding plugins
+ EchoPingDNS        # DNS (53/udp or tcp) servers
+ EchoPingLDAP       # LDAP (389/tcp) servers
+ EchoPingWhois      # Whois (43/tcp) servers
توضیحات پروب (Probe explanation)
این نمونه بیشتر پروب‌های مشتق‌شده از echoping را در عمل نشان می‌دهد.
پیکربندی هدف (Target configuration)
*** Targets ***
# default probe
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to this SmokePing website.
+ MyServers
menu = My Servers
title = My Servers
++ www-server
menu = www-server
title = Web Server (www-server) / ICMP
# probe = FPing propagated from top
host = www-server.example
+++ http
menu = http
title = Web Server (www-server) / HTTP
probe = EchoPingHttp
host = www-server.example
# default url is /
+++ https
menu = https
title = Web Server (www-server) / HTTPS
probe = EchoPingHttps
host = www-server.example
++ cache
menu = www-cache
title = Web Cache (www-cache) / ICMP
host = www-cache.example
+++ http
menu = http
title = www-cache / HTTP
probe = EchoPingHttp
host = www-cache.example
port = 8080 # use the squid port
url = http://www.somehost.example/
+++ icp
menu = icp
title = www-cache / ICP
probe = EchoPingIcp
host = www-cache.example
url = http://www.somehost.example/
++ mail
menu = mail-server
title = Mail Server (mail-server) / ICMP
host = mail-server.example
+++ smtp
menu = mail-server / SMTP
title = Mail Server (mail-server) / SMTP
probe = EchoPingSmtp
host = mail-server.example
++ ldap-server
menu = ldap-server
title = ldap-server / ICMP
host = ldap-server.example
+++ ldap
menu = ldap-server / LDAP
title = LDAP Server (ldap-server) / LDAP
probe = EchoPingLDAP
ldap_request = (objectclass=*)
host = ldap-server.example
++ name-server
menu = name-server
title = name-server / ICMP
host = name-server.example
+++ DNS
menu = name-server / DNS
title = DNS Server (name-server) / DNS
probe = EchoPingDNS
dns_request = name.example
host = name-server.example
++ whois-server
menu = whois-server
title = whois-server / ICMP
host = whois-server.example
+++ Whois
menu = whois-server / Whois
title = Whois Server (whois-server) / Whois
probe = EchoPingWhois
whois_request = domain.example
host = whois-server.example
توضیحات هدف (Target explanation)
همه سرورها هم با ICMP (پروب FPing) و هم با پروب echoping مربوط به خود پینگ می‌شوند. سرور پروکسی، یعنی www-cache، هم با درخواست‌های HTTP و هم با درخواست‌های ICP برای همان URL مورد سنجش قرار می‌گیرد.

پیکربندی پروب (Probe configuration)
*** Probes ***
+ FPing
binary = /usr/sbin/fping
*** Slaves ***
secrets=/usr/etc/smokeping_secrets.dist
+boomer
display_name=boomer
color=0000ff
+slave2
display_name=another
color=00ff00
توضیحات پروب (Probe explanation)
این فایل قالب پیکربندی است که همراه با Smokeping توزیع می‌شود. برای کامل بودن مستندات، این فایل نیز در میان نمونه‌ها گنجانده شده است.
پیکربندی هدف (Target configuration)
*** Targets ***
probe = FPing
menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of xxx Company. \
         Here you will learn all about the latency of our network.
+ Test
menu= Targets
#parents = owner:/Test/James location:/
++ James
menu = James
title =James
alerts = someloss
slaves = boomer slave2
host = james.address
++ MultiHost
menu = Multihost
title = James and James as seen from Boomer
host = /Test/James /Test/James~boomer
توضیحات هدف (Target explanation)
این فایل قالب پیکربندی است که همراه با Smokeping توزیع می‌شود. برای کامل بودن مستندات، این فایل نیز در میان نمونه‌ها گنجانده شده است.

Copyright 2005 by Niko Tyni.

این برنامه نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی همگانی گنو» (GNU General Public License) طبق آنچه توسط «بنیاد نرم‌افزارهای آزاد» (Free Software Foundation) منتشر شده است؛ چه نسخه ۲ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی آن، توزیع مجدد کرده و/یا تغییر دهید.

این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به «مجوز عمومی همگانی گنو» مراجعه کنید.

شما باید به همراه این برنامه نسخه‌ای از «مجوز عمومی همگانی گنو» را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر به بنیاد نرم‌افزارهای آزاد نامه بنویسید:

Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Niko Tyni <ntyni@iki.fi>

سایر مستندات Smokeping، به‌ویژه smokeping_config.

2025-06-29 2.9.0