ฉันต้องการเก็บสถิติการรับส่งข้อมูลเครือข่ายรายวันสำหรับเครื่อง linux (CentOS 5)
มีวิธีการใช้เครื่องมือมาตรฐานหรือระบบสาธารณูปโภคหรือไม่?
หรือฉันต้อง dowload ซอฟต์แวร์พิเศษสำหรับสิ่งนั้น
ขอบคุณ
ฉันต้องการเก็บสถิติการรับส่งข้อมูลเครือข่ายรายวันสำหรับเครื่อง linux (CentOS 5)
มีวิธีการใช้เครื่องมือมาตรฐานหรือระบบสาธารณูปโภคหรือไม่?
หรือฉันต้อง dowload ซอฟต์แวร์พิเศษสำหรับสิ่งนั้น
ขอบคุณ
คำตอบ:
สิ่งที่ 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)
ฉันยังแนะนำให้ใช้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
แพ็คเกจ sysstat มียูทิลิตี sar Sar เป็นระบบ "ผู้สร้างโปรไฟล์" ที่สามารถกำหนดค่าได้อย่างมากเนื่องจากไม่มีคำศัพท์ที่ดีกว่าซึ่งจะรวบรวมสถิติต่างๆตามช่วงเวลาที่กำหนดไว้ล่วงหน้า (cron) สิ่งเหล่านี้จะถูกเก็บไว้ในไฟล์ไบนารีหนึ่งไฟล์สำหรับแต่ละวันซึ่งโดยทั่วไปจะหมุนสัปดาห์ละครั้ง แต่สามารถกำหนดค่าได้ โปรแกรม sar สามารถใช้เพื่อดึงสถิติออกจากไฟล์เหล่านี้และผลลัพธ์เหล่านั้นสามารถสร้างกราฟได้อย่างง่ายดายด้วยโปรแกรมสำนักงานหรือ gnuplot (การตั้งค่าส่วนตัวของฉัน)
http://pagesperso-orange.fr/sebastien.godard/ <= Sar information
http://www.gnuplot.info/ <= ข้อมูล gnuplot
Vnstatเป็นคอนโซลที่ยอดเยี่ยมตามการตรวจสอบปริมาณการใช้รายวัน / รายสัปดาห์ / รายเดือน มันยังช่วยให้คุณสามารถตรวจสอบสภาพการจราจรแบบเรียลไทม์ซึ่งมีประโยชน์
มันใช้ทรัพยากรระบบน้อยมากเช่นกัน;)
คุณต้องการMRTGซึ่งเป็นเครื่องมือตรวจสอบเครือข่ายสิ่งที่สร้างกราฟเครือข่ายทั้งหมดที่คุณเห็นในเว็บ (พร้อม rdtool เพื่อเปลี่ยนตัวเลขให้เป็นรูปภาพ)
หากคุณไม่ต้องการตั้งค่าหรือต้องการอะไรที่ง่ายกว่านี้คุณสามารถใช้iptablesเพื่อบันทึกการถ่ายโอนข้อมูล
ผมใช้ mrtg มันเป็นทางออกที่ดีมากและมีเครื่องมืออื่น ๆ ที่น่าจะเป็นที่น่าสนใจและที่ให้ข้อมูลจำนวนมากเกี่ยวกับการจราจรชื่อ ntop สอบสวนเครือข่ายที่นี่พบการเชื่อมโยงเกี่ยวกับการติด ntop บน CentOS
อาจเป็น MRTG หรือ Cacti Cacti เป็นความเจ็บปวดในการตั้งค่า แต่ให้กราฟที่สวยงามมาก MRTG นั้นง่ายต่อการตั้งค่าพล็อตพื้นฐาน แต่สำหรับสิ่งที่สวยงามหรือซับซ้อนมันค่อนข้างยาก
Muninเป็นอีกหนึ่งเครื่องมือที่ใช้ RRD ที่ดีซึ่งง่ายต่อการติดตั้ง สถิติเครือข่ายเริ่มต้นนั้นค่อนข้างง่าย แต่เพิ่มปลั๊กอินได้ง่าย ฉันได้แนบสำเนาสถิติรายวันและรายสัปดาห์ไว้ในเซิร์ฟเวอร์ของฉันแล้ว คุณยังได้รับสถิติรายเดือนและรายปีในหน้าอื่น