Cách cấu hình và cách đọc biểu đồ smokeping Phần 2

Tác giả: 22/03/2023

Ở bài viết này, tôi sẽ trình bày các khái niệm liên quan, cách cấu hình smokeping và cách đọc biểu đồ đối với công cụ smokeping.

1. Sơ lược một vài khái niệm liên quan

Lệnh ping

Đây là một khái niệm quen thuộc với chúng ta. Ping là viết tắt của Packet Internet Grouper, là một công cụ cho mạng máy tính sử dụng trên các mạng TCP/IP để kiểm tra xem có thể kết nối tới một máy chủ cụ thể nào đó hay không, và ước lượng khoảng thời gian trễ trọn vòng để gửi gói dữ liệu cũng như tỉ lệ các gói dữ liệu có thể bị mất giữa hai máy. Lệnh ping thực hiện nhiệm vụ trên bằng cách gửi một số gói tin ICMP đến máy kia và chờ phản hồi.

Fping

Trong smokeping có nhiều loại probe khác nhau, nhưng probe mặc định là FPing (ping đến nhiều host khác nhau cùng lúc).

Mặc định, FPing sẽ gửi 20 gói tin đến host cần thăm dò trong 5 phút. (Có thể cấu hình chỗ này tùy ý, ví dụ 1 phút gửi 10 gói tin đến host)

RTT (Round trip time)

RTT (round trip time) là thời gian tính từ khi gửi gói tin đến khi nhận được lại gói tin.

Ví dụ

Imgur
Lệnh ping gửi gói tin đến google.com và phải mất khoảng 53 mili giây để google.com gửi lại gói tin.

Packet loss (sự mất gói tin)

Lệnh FPing gửi các gói tin đến host, nếu các host đó không gửi lại gói tin thì sẽ tính là mất gói tin.

Average (Trung bình cộng)

Khái niệm này mọi người đều đã hiểu. Trung bình cộng của một dãy số là thương số giữa tổng giá trị của tập hợp số đó và số phần tử trong tập hợp đó.

Thuật ngữ Average được dùng trong toán học, trong thống kê thì dùng thuật ngữ là Mean. Cách tính hoàn toàn giống nhau.

Median (số trung vị)

Số trung vị của một dãy số là giá trị điển hình (thường thấy nhất) trong dãy số đó.

Standard deviation (Độ lệch chuẩn)

Độ lệch chuẩn là căn bậc hai của phương sai cho biết bình quân giá trị của các lượng biến cách giá trị trung bình chung là bao nhiêu đơn vị.

2. Cấu hình smokeping

Cấu hình mặc định của smokeping nằm ở /etc/smokeping/config

Cấu hình ví dụ:

*** General ***

owner    = Super User
contact  = root@localhost
mailhost = my.mail.host
sendmail = /usr/sbin/sendmail
# NOTE: do not put the Image Cache below cgi-bin
# since all files under cgi-bin will be executed ... this is not
# good for images.
imgcache = /var/lib/smokeping/images
imgurl   = /smokeping/images
datadir  = /var/lib/smokeping/rrd
piddir   = /var/run/smokeping
cgiurl   = http://localhost/smokeping/sm.cgi
smokemail = /etc/smokeping/smokemail
tmail     = /etc/smokeping/tmail
# specify this to get syslog logging
syslogfacility = local0
# each probe is now run in its own process
# disable this to revert to the old behaviour
# concurrentprobes = no

*** Alerts ***
to = vanthien04051997@gmail.com
from = thienvv@nhanhoa.com

+someloss
type = loss
# in percent
pattern = >0%,*12*,>0%,*12*,>0%
comment = loss 3 times  in a row

*** Database ***

step     = 300
pings    = 20

# consfn mrhb steps total

AVERAGE  0.5   1  1008
AVERAGE  0.5  12  4320
    MIN  0.5  12  4320
    MAX  0.5  12  4320
AVERAGE  0.5 144   720
    MAX  0.5 144   720
    MIN  0.5 144   720

*** Presentation ***

template = /etc/smokeping/basepage.html

+ charts

menu = Charts
title = The most interesting destinations

++ stddev
sorter = StdDev(entries=>4)
title = Top Standard Deviation
menu = Std Deviation
format = Standard Deviation %f

++ max
sorter = Max(entries=>5)
title = Top Max Roundtrip Time
menu = by Max
format = Max Roundtrip Time %f seconds

++ loss
sorter = Loss(entries=>5)
title = Top Packet Loss
menu = Loss
format = Packets Lost %f

++ median
sorter = Median(entries=>5)
title = Top Median Roundtrip Time
menu = by Median
format = Median RTT %f seconds

+ overview

width = 600
height = 50
range = 10h

+ detail

width = 600
height = 200
unison_tolerance = 2

"Last 3 Hours"    3h
"Last 30 Hours"   30h
"Last 10 Days"    10d
"Last 400 Days"   400d


*** Probes ***

+ FPing

binary = /usr/sbin/fping

*** Slaves ***
secrets=/etc/smokeping/smokeping_secrets
+boomer
display_name=boomer
color=0000ff

+slave2
display_name=another
color=00ff00

*** Targets ***

probe = FPing

menu = Top
title = Network Latency Grapher
remark = Welcome to the SmokePing website of <b>Insert Company Name Here</b>. \
         Here you will learn all about the latency of our network.

+ Ping

menu = Fedora
title = Fedora Pings

++ FedoraprojectOrg

menu = fedoraproject.org
title = Fedora Webserver
host = fedoraproject.org

++ DocsFedoraprojectOrg

menu = docs.fedoraproject.org
title = Fedora Docs Webserver
host = docs.fedoraproject.org

++ PlanetFedora

menu = planet.fedoraproject.org
title = Planet Fedora
host = planet.fedoraproject.org

+ Quocte
menu = Quocte
title = Quocte

++ CloudflareDNS

menu = Cloudflare DNS
title = Cloudflare DNS server
host = 1.1.1.1

++ GoogleDNS

menu = Google DNS
title = Google DNS server
host = 8.8.8.8

++ MultiHost

menu = Multihost example
title = CloudflareDNS and Google DNS
host = /GW/CloudflareDNS /GW/GoogleDNS

Các thành phần trong file cấu hình:

Phần *** General ***:

Cá nhân hóa file cấu hình để phù hợp với thông tin của bạn. Các thông tin ở đây có thể phục vụ phần cảnh báo.

Phần *** Database ***:

Mặc định step = 300 và pings = 20 có nghĩa là trong 300 giây sẽ có 20 gói tin ICMP được gửi tới các host. Như vậy, cứ 300 giây thì sẽ có dữ liệu hiển thị lên biểu đồ một lần. (Cứ 300 giây sẽ hoàn thành một phép đo)

Chúng ta có thể sửa lại tùy ý. Ví dụ, nếu thấy 300 giây là quá lâu, bạn có thể sửa lại thành 120 giây, gửi 30 gói tin.

Phần *** Alerts ***:

Cảnh báo. Phần này mình sẽ nói rõ ở bài viết sau.

Phần *** Probes ***:

Nghĩa là công cụ dò. Mặc định là Fping.

Các bạn có thể tham khảo các probe khác tại trang chủ của hãng https://oss.oetiker.ch/smokeping/probe/index.en.html

Phần *** Targets ***:

Thêm các host mà chúng ta muốn kiểm tra tại đây.

Trước khi khai báo báo host, ta cần khai báo một menu có tên tùy ý. Ví dụ như:

+ Viettel
menu = SiteViettel
title = SiteViettel

Sau đó khai báo host cần theo dõi. Chú ý phải khai báo menu của host này. Ví dụ như:

++ Host1-106

menu = Host1
title = 103.176.179.106
host = 103.176.179.106

Chúng ta có thể khai báo bao nhiêu host để giám sát tùy thích.

Ngoài ra ta cũng có thể khai báo nhiều host trên cùng 1 biểu đồ (xem cấu hình ví dụ) để dễ dàng so sánh độ trễ của các host đó với nhau.

Phần *** Presentation ***:

Hiển thị một số biểu đồ để so sánh. Theo ví dụ ở trên (mặc định), chúng ta sẽ có thêm một menu có tên là Charts. Trong menu đó sẽ có các biểu đồ hiển thị các host có độ lệch chuẩn cao nhất, biểu đồ hiển thị các host có giá trị phần trăm round trip time cao nhất, biểu đồ hiển thị các host có số gói tin bị mất cao nhất, biểu đồ hiển thị các host có số trung vị cao nhất.

Hiển thị các biểu đồ phân chia theo thời gian

"Last 3 Hours" 3h
"Last 30 Hours" 30h
"Last 10 Days" 10d
"Last 400 Days" 400d

Theo như cấu hình trên, chúng ta sẽ có 4 biểu đồ. Biểu đồ hiểu thị kết quả trong 3 giờ gần nhất. Biểu đồ hiển thị kết quả trong 30 giờ gần nhất…

Chúng ta có thể thêm, sửa, xóa tùy ý các giá trị trên.

3. Đọc biểu đồ

Chúng ta có 2 loại biểu đồ là biểu đồ tổng quan và biểu đồ chi tiết.

Ví dụ biểu đồ tổng quan:

Biểu đồ tổng quan hiển thị các thông tin:

  • Cột dọc có đơn vị mili giây. Hàng ngang hiển thị thời gian.
  • Giá trị màu xanh dương trên biểu đồ là giá trị trung vị của round trip time (med RTT)
  • Bên dưới chúng ta có Giá trị trung bình của các số trung vị (av md hay average median), cụ thể ở đây là 21.7 mili giây.
  • Phần trăm gói tin bị mất (av ls hay average loss), cụ thể ở đây là 0.3%.
  • Độ lệch chuẩn trung bình (av sd hay average standard deviation), cụ thể ở đây là 2.3 mili giây.
  • Tỉ lệ của average median và average standard deviation (am/as). Ở đây là 9.4

Click vào biểu đồ tổng quan ta sẽ có biểu đồ chi tiết:

Biểu đồ chi tiết

Dòng có màu miêu tả số lượng gói tin mất và vùng màu xám xung quanh cho thấy mức độ biến đổi trong các phép đo sau các lần đo. Ta có thể zoom trong biểu đồ này.

Chúng ta có thêm các thông tin

  • Giá trị trung bình (avg), giá trị cao nhất (max), giá trị nhỏ nhất (min), giá trị hiện tại (now) của số trung vị của round trip time (median rtt) và của phần trăm gói tin bị mất (packet loss)
  • Probe gửi bao nhiêu gói tin trong thời gian bao lâu. Cụ thể ở đây là 20 gói tin ICMP được gửi trong 60 giây.
  • Màu sắc hiển thị cho ta biết tại thời điểm xác định trên biểu đồ có bao nhiêu gói tin bị mất trong 1 phép đo. Màu xanh lá nghĩa là mất 0 gói, màu đỏ tức là mất trên 19 gói trong 20 gói tin, màu hồng tức là số gói tin mất nằm trong đoạn 10 đến 18 gói tin. Tương tự với các màu khác bạn có thể thấy trên biểu đồ.

Ngoài ra còn có biểu đồ multi host. Hiển tin nhiều host trên cùng một biểu đồ. Ví dụ:

Biểu đồ multihost

Đến đây tôi sẽ giải thích khái niệm số trung vị và độ lệch chuẩn đã nói ở đầu mà ta gặp ở đây.

  • Trong biểu đồ trên chúng ta có rất nhiều cột. Mỗi cột là kết quả của một phép đo. Trong một phép đo, probe gửi đi 20 gói tin trong 1 phút. Kết quả RTT của mỗi gói tin trả về sẽ được lưu lại. Một cột sẽ có thông tin kết quả RTT của toàn bộ 20 gói tin trên. Kết quả hiển thị qua một cột màu xám. Ta có nhiều kết quả khác nhau nên các cột màu xám sẽ chồng lên nhau. Màu xám càng đậm tức là giá trị kết quả RTT đó xuất hiện càng nhiều lần trên biểu đồ. Giá trị phổ biến nhất của các kết quả RTT đó sẽ có màu xanh. Đây chính là giá trị trung vị của kết quả RTT của 20 gói tin trong phép đo lần này (median RTT).
  • Hiểu cho đơn giản: Độ lệch chuẩn biểu thị tính dàn trải của số liệu.
    Độ lệch chuẩn lớn thể hiện rằng các giá trị thay đổi nhiều (giá trị nhỏ nhất cách xa giá trị lớn nhất). Nghĩa là giá trị của độ lệch chuẩn càng lớn tức là biểu đồ có sự biến động càng cao.
    Ví dụ 2 biểu đồ:
Biểu đồ thể hiện sự biến động nhiều
biểu đồ thể hiện sự biến động ít

Chúng ta thấy ở biểu đồ trên độ lệch chuẩn là 12 mili giây. Biểu đồ có sự biến động nhiều hơn biểu đồ dưới (độ lệch chuẩn chỉ có 0.4 mili giây)

Tóm gọn lại, chúng ta nên chú ý các phần sau khi đọc biểu đồ:

  • Màu sắc hiển thị mức độ mất gói tin
  • Mức độ đậm nhạt của màu xám của các cột
  • Chiều cao của giá trị kết quả RTT.
  • Biểu đồ có bị đứt đoạn hay không. Nếu có nghĩa là trong thời gian đó kết nối đã hoàn toàn bị đứt.

4. Kết luận

Như vậy tôi đã trình bày cho các bạn cách cấu hình và đọc biểu đồ với công cụ smokeping.

Chúc các bạn thành công!

 

Trả lời