Linux: วิธีการวัดปริมาณการใช้เครือข่ายรายวัน / รายเดือน?


15

ฉันต้องการเก็บสถิติการรับส่งข้อมูลเครือข่ายรายวันสำหรับเครื่อง linux (CentOS 5)

มีวิธีการใช้เครื่องมือมาตรฐานหรือระบบสาธารณูปโภคหรือไม่?
หรือฉันต้อง dowload ซอฟต์แวร์พิเศษสำหรับสิ่งนั้น

ขอบคุณ


1
คุณต้องการสถิติที่แม่นยำแค่ไหน? กล่าวอีกนัยหนึ่งคุณต้องการอะไรที่เฉพาะเจาะจงพอที่จะเรียกเก็บเงินแบนด์วิดท์อีกครั้งหรือโดยเฉลี่ยดี
Zypher

ฉันจำเป็นต้องรู้ว่าฉันได้ใช้ปริมาณการใช้ข้อมูลมากเท่าใดในแต่ละวันเพราะฉันไม่ต้องการเกินขีด จำกัด
ฟรี

1
จากนั้นคุณไม่ต้องการเครื่องมือที่ใช้ RRD ใด ๆ (Cacti, MRTG, Munin และอื่น ๆ ) RRD เฉลี่ยตัวเลขดังนั้นคุณจะไม่ได้รับตัวชี้วัดที่แน่นอนและมันจะแย่ลงเมื่อเวลาผ่านไป
Zypher

คำตอบ:


8

สิ่งที่ Zypher พูดเกี่ยวกับ rrdtool (และสิ่งอื่นใดที่ใช้เป็นแบ็กเอนด์ - MRTG, Cacti ฯลฯ ) อาจถูกต้อง RRDTool ถูกออกแบบมาให้เป็นเครื่องมือวิเคราะห์แนวโน้มในอดีตที่ 'เฉลี่ย' มันมีค่าเฉลี่ยและจัดเก็บเคาน์เตอร์ในการเพิ่มขึ้นแบบไม่แน่นอนเพิ่มมากขึ้นเมื่อเวลาผ่านไป

อย่างไรก็ตามนี่คือการกำหนดค่าโดยการตั้งค่า RRAs อย่างน่ากลัว ฉันสารภาพว่าไม่รู้อะไรเลยเกี่ยวกับการกำหนดค่าเหล่านี้อย่างไรก็ตามและไม่เคยมีโชคเลยที่ทำให้พวกเขาได้เกินมาตรฐานที่ตั้งไว้ (15 นาที 8 ชั่วโมง 1 สัปดาห์ 1 เดือน 1 ปี) ฉันอยากจะแนะนำให้มองหาการกำหนดค่า RRA เพื่อคาดหวังอินพุตรายวันและป้อนตัวนับแบนด์วิดท์ของคุณจาก netstat คุณจะได้รับข้อมูลทางประวัติศาสตร์ที่ดีมากและข้อมูลเชิงลึกเกี่ยวกับรูปแบบการใช้งานของคุณ

เพื่อตอบปัญหาปัจจุบันของคุณเกี่ยวกับการทำให้แน่ใจว่าคุณไม่ได้ใช้แบนด์วิดท์เกินขีด จำกัด รายวัน ฉันอยากจะแนะนำการคว้าตัวนับ netstat ทุกวันสำหรับอินเทอร์เฟซในคำถาม คุณสามารถเปรียบเทียบทราฟฟิกของเมื่อวานที่เวลา t กับเคาน์เตอร์ของวันนี้ในเวลา t และดูว่าถ่ายโอนเท่าไหร่ สคริปต์อย่างง่ายที่มีที่จัดเก็บไฟล์ข้อความแบบแฟลตของค่าก่อนหน้านี้น่าจะเพียงพอ จากนั้นคุณสามารถปิดการใช้งานอินเทอร์เฟซหากคุณตรวจพบแบนด์วิดธ์ที่เกินหรือตรวจสอบมันตลอดทั้งวันและแจ้งให้ผู้ดูแลระบบถ้าคุณใกล้ถึงขีด จำกัด ของคุณ

ในการรับอินพุตไบต์บนระบบ OSX คุณสามารถใช้ชุดคำสั่งต่อไปนี้:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

ในทางกลับกันเอาต์พุตสามารถรับได้ด้วย:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

คุณสามารถวางเคาน์เตอร์ที่เกี่ยวข้องลงในไฟล์ flat ที่เก็บไว้ที่ใดที่หนึ่งและเปรียบเทียบกับ:

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

เพียงปรับการประมวลผล netstat ให้ตรงกับระบบของคุณ (เพราะฉันรู้ว่าคุณไม่ได้ใช้ OSX)


25

ฉันยังแนะนำให้ใช้VnStat

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB

4

แพ็คเกจ sysstat มียูทิลิตี sar Sar เป็นระบบ "ผู้สร้างโปรไฟล์" ที่สามารถกำหนดค่าได้อย่างมากเนื่องจากไม่มีคำศัพท์ที่ดีกว่าซึ่งจะรวบรวมสถิติต่างๆตามช่วงเวลาที่กำหนดไว้ล่วงหน้า (cron) สิ่งเหล่านี้จะถูกเก็บไว้ในไฟล์ไบนารีหนึ่งไฟล์สำหรับแต่ละวันซึ่งโดยทั่วไปจะหมุนสัปดาห์ละครั้ง แต่สามารถกำหนดค่าได้ โปรแกรม sar สามารถใช้เพื่อดึงสถิติออกจากไฟล์เหล่านี้และผลลัพธ์เหล่านั้นสามารถสร้างกราฟได้อย่างง่ายดายด้วยโปรแกรมสำนักงานหรือ gnuplot (การตั้งค่าส่วนตัวของฉัน)

http://pagesperso-orange.fr/sebastien.godard/ <= Sar information
http://www.gnuplot.info/ <= ข้อมูล gnuplot


4

Vnstatเป็นคอนโซลที่ยอดเยี่ยมตามการตรวจสอบปริมาณการใช้รายวัน / รายสัปดาห์ / รายเดือน มันยังช่วยให้คุณสามารถตรวจสอบสภาพการจราจรแบบเรียลไทม์ซึ่งมีประโยชน์

มันใช้ทรัพยากรระบบน้อยมากเช่นกัน;)


2

คุณต้องการMRTGซึ่งเป็นเครื่องมือตรวจสอบเครือข่ายสิ่งที่สร้างกราฟเครือข่ายทั้งหมดที่คุณเห็นในเว็บ (พร้อม rdtool เพื่อเปลี่ยนตัวเลขให้เป็นรูปภาพ)

หากคุณไม่ต้องการตั้งค่าหรือต้องการอะไรที่ง่ายกว่านี้คุณสามารถใช้iptablesเพื่อบันทึกการถ่ายโอนข้อมูล


+1 สำหรับการแก้ปัญหา iptables
GetFree

ลิงก์ iptables เสียชีวิต - อาจเป็นเพราะอะไร qaoverflow.com/question/…
twodayslate

1

ผมใช้ mrtg มันเป็นทางออกที่ดีมากและมีเครื่องมืออื่น ๆ ที่น่าจะเป็นที่น่าสนใจและที่ให้ข้อมูลจำนวนมากเกี่ยวกับการจราจรชื่อ ntop สอบสวนเครือข่ายที่นี่พบการเชื่อมโยงเกี่ยวกับการติด ntop บน CentOS


1

อาจเป็น MRTG หรือ Cacti Cacti เป็นความเจ็บปวดในการตั้งค่า แต่ให้กราฟที่สวยงามมาก MRTG นั้นง่ายต่อการตั้งค่าพล็อตพื้นฐาน แต่สำหรับสิ่งที่สวยงามหรือซับซ้อนมันค่อนข้างยาก


1

Muninเป็นอีกหนึ่งเครื่องมือที่ใช้ RRD ที่ดีซึ่งง่ายต่อการติดตั้ง สถิติเครือข่ายเริ่มต้นนั้นค่อนข้างง่าย แต่เพิ่มปลั๊กอินได้ง่าย ฉันได้แนบสำเนาสถิติรายวันและรายสัปดาห์ไว้ในเซิร์ฟเวอร์ของฉันแล้ว คุณยังได้รับสถิติรายเดือนและรายปีในหน้าอื่น

กราฟเครือข่าย Munin


รูปภาพหายไปแล้ว
Canadian Luke
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.