วันจันทร์ที่ 11 กันยายน พ.ศ. 2560

Network Monitoring Tools

Network & Server Monitoring Tools

          เครื่องมือเช็คเครือข่ายทำให้เราทราบถึงความปกติของเครือข่ายได้ เช่น แสดงแผนผังเครือข่ายและตรวจสอบอุปกรณ์เครือข่าย ติดตามสถิติข้อมูลการใช้งาน พิจารณาจากความล่าช้าในเส้นทาง ภาระในการเชื่อมต่อ การใช้งานทรัพยากร การค้นหาเครือข่าย โครงสร้างเครือข่ายคอมพิวเตอร์ รวมถึงการถูกโจมตีจากอินเตอร์เน็ต เครื่องมือตรวจสอบเครือข่ายที่มีใช้อยู่ในปัจจุบันมีความสามารถแตกต่างกันไป มีใช้ทั้งในเชิงพาณิชย์และไม่หวังผลกำไรหรือโอเพนซอร์ส อย่างเช่น Nagios, Zabbix, Cacti, OpenNMS และ Icinga

2.1.      Nagios
          ก่อตั้งเมื่อปี 1999 เป็นหนึ่งในผู้นำด้าน monitoring สามารถตรวจสอบ network protocols, operating systems, system metrics, applications, services, web server, website, middleware ฯลฯ มีการทำงานที่ให้ประสิทธิภาพสูงและใช้ทรัพยากรเซิร์ฟเวอร์น้อยลง ซึ่งสามารถใช้งานร่วมกับ third-party software โดยใช้ plugin ซึ่งก็จะมีให้เลือกใช้มากมายให้ตรงกับความต้องการ

ภาพที่ 2-1 แสดงรายละเอียดสถานะของ host ของระบบ Nagios

คุณสมบัติ
·       เป็นศูนย์กลางการตรวจสอบทางด้าน IT
·       รีสตาร์ทแอ็พพลิเคชันอัตโนมัติเมื่อเกิดเหตุการณ์ขึ้น
·       รองรับผู้ใช้งานได้หลายคน
·       ทำให้ client สามารถดูได้เฉพาะส่วนที่แสดงข้อมูลพื้นฐานในระบบได้
·       มีผู้ใช้งานมากกว่า 1 ล้านคน
·       สามารถพัฒนาต่อได้อีกมาก
          ข้อดี
·       มีโปรไฟล์ที่ดี มีประสบการณ์
·       หากมีความรู้เกี่ยวกับเครื่องมือที่เกี่ยวข้องการกำหนดค่าด้วยตนเองอาจทำให้ Nagios
เป็นเครื่องมือที่มีประสิทธิภาพมากในการตรวจจับเฉพาะอย่าง
·       มีปลั๊กอินมากมายให้เลือกใช้ตรงกับความต้องการ
·       การตั้งค่าพื้นฐานง่าย
          ความยุ่งยาก
·       การแก้ไขหรือการกำหนดค่าทำได้ยากเนื่องจากจำเป็นต้องทำการปรับเปลี่ยนด้วยตนเองเพื่อให้สามารถตั้งเครื่องมือได้อย่างถูกต้อง
·       GUI ไม่เป็นมิตรต่อผู้ใช้
·       ต้องมีการเรียนรู้การใช้งาน
·       รายงานผลไม่ค่อยดีนัก

·       ประสิทธิภาพจะช้าลงเมื่อมีการ polling และ trap พร้อมๆกันมากๆ


2.1.      Zabbix
          Zabbix เป็นซอฟต์แวร์ระดับองค์กรที่ออกแบบมาเพื่อตรวจสอบทุกอย่างตั้งแต่ประสิทธิภาพ        และความพร้อมใช้งานของเซิร์ฟเวอร์ อุปกรณ์เครือข่ายไปจนถึงเว็บแอ็พพลิเคชันและฐานข้อมูล
          มีบริษัทนับพันทั่วโลกใช้งาน 
Zabbix รวมไปถึง DELL, salesforce, ICANN, Orange ฯลฯ 
          Zabbix เป็นสถาปัตยกรรมระบบ server-agent ต้องลง agent บนเครื่อง server (client) เพื่อที่จะ monitor โดย Zabbix server แต่สำหรับบาง service ก็ไม่จำเป็นต้องลงก็ได้ เช่น FTP, SSH, HTTP, DNS เป็นต้น สามารถติดตั้งบน Linux, AIX, Windows, Solaris, MacOS X, FreeBSD, OpenBSD, เป็นต้น


ภาพที่ 2-2 แสดงหน้า Dashboard ของระบบ ZABBIX

คุณสมบัติ
·     Monitor Java application servers ผ่านทาง JMX โดยตรง
·     Monitor VMWare, vCenter และ vSphere
·     Front end มีการป้องกันการโจมตี brute force ด้วยตัวเอง
·     การทำงานอัตโนมัติโดยมีการสร้างสคิปต์ในหลายภาษาเช่น Ruby, Python, Perl, PHP, Java หรือ shell scripts
·     สามารถทำงานร่วมกับเครื่องมือการจัดการระบบอื่นๆ เช่น Puppet, cfengine, Chef,   bcfg2
          ข้อดี
·     มีผู้ใช้งานอยู่มาก
·     มีประสิทธิภาพมากในระดับ low level
          ข้อเสีย
·     ประสิทธิภาพช้าลงเมื่อมีโหนดที่ตรวจสอบมากขึ้น
·     ยากต่อการสร้างเทมเพลตการแจ้งเตือนและการรายงานผลเพราะจะต้องตั้งค่าหลายขั้นตอน
·     ไม่มีการรายงานผลแบบเรียลไทม์
·     ยากต่อการปรับปรุงเมื่อมีข้อผิดพลาด
การดักจับ snmp ไม่ดีนัก



2.1.      Cacti

                        Cacti เป็นอีกหนึ่งเครื่องมือตรวจสอบเครือข่ายแบบโอเพนซอร์สซึ่งสามารถติดตั้งได้บน Linux หรือ Windows OS มีการเชื่อมต่อกับ RRDTool ซึ่งทำให้สามารถสร้างกราฟที่เกี่ยวข้องกับข้อมูลเครือข่ายที่เกี่ยวข้อง ทำงานร่วมกับ SNMP และนำเสนอสถิติเครือข่ายในรูปแบบของแผนภูมิที่ง่ายต่อการเข้าใจ เหมาะกับการตรวจสอบภาระในการเชื่อมต่อ การใช้งานทรัพยากรต่างของอุปกรณ์ภายในเครือข่าย


ภาพที่ 2-3 แสดงการ Monitor graphs แบบ Realtime ของระบบ Cacti

คุณสมบัติ

·       สามารถกำหนดกราฟได้ไม่จำกัด
·       รองรับไฟล์ RRD (Round-Robin Database) ที่มีมากกว่าหนึ่งแหล่งข้อมูลและยังสามารถใช้ไฟล์ RRD ที่เก็บไว้ที่ใดก็ได้ในระบบ local file system
·       มีการจัดการผู้ใช้และความปลอดภัย
·       มีการสร้างสคริปในการเก็บรวบรวมข้อมูล

          ข้อดี
·       Cacti จะใช้งานได้ดี ถ้ามี Server ที่ต้องการ Monitoring ค่อนข้างเยอะ
·       GUI สวยงาม
·       รายงานผลเป็นกราฟแบบเรียลไทม์
·        มีเทมเพลตให้เลือกปรับได้ตามความเหมาะสมกับการใช้งาน
·       การเรียกดูข้อมูลของกราฟเป็นแบบ tree ได้ทำให้สะดวกต่อการนำไปวิเคราะห์ใช้งาน
          ข้อเสีย
·       เน้นการตรวจสอบระบบเครือข่าย จึงไม่ครอบคลุมการตรวจสอบเครื่องแม่ข่ายหรือแอปพลิเคชั่น
·        Plugin ยังมีให้ใช้งานไม่มาก



2.1.      OpenNMS

                        OpenNMS ช่วยให้สามารถสร้างโซลูชันการตรวจสอบเครือข่าย สามารถเก็บข้อมูลได้
          จาก 
JMX, WMI, SNMP, NRPE, XML HTTP, JDBC, XML, JSON เป็นต้น สามารถ Discover
          การเชื่อมต่อของเครือข่าย layer2 ซึ่งได้รับการสนับสนุนจากทาง Grafana (The open platform for analytics and monitoring) สามารถติดตั้งได้บน Docker



ภาพที่ 2-4 แสดงรายละเอียดหน้า Dashboard ระบบ OpenNMS

คุณสมบัติ
·       ได้รับการออกแบบพิเศษสำหรับ Linux แต่ Windows, Solaris, and OSX ยังคงให้การสนับสนุนอยู่
·       ตรวจจับอุณหภูมิของอุปกรณ์
·       ปรับแต่ง dashboard
·       ตรวจจับแหล่งจ่ายไฟ
·       สนับสนุน IPv4 และ IPv6
·       แจ้งเตือนผ่าน email, SMS, XMPP และวิธีอื่นๆ
·       แผนที่แสดงโหนดและเซอร์วิสโดยใช้ Open Street Map, Google Maps หรือ Mapquest
            ข้อดี
·       มีความยืดหยุ่นสูง
·       มีคู่มือและรายละเอียดการใช้งานที่หาได้ง่าย
·       ใช้งานได้เหมือนกับเครื่องมือตรวจสอบเครือข่ายเชิงพาณิชย์ แต่ต้องเรียนรู้เรื่องที่เกี่ยวข้องกับการใช้งานอยู่มาก
ข้อเสีย
·       การแก้ไขหรือการกำหนดค่าทำได้ยากคล้ายๆกับ Nagios เพราะต้องไปแก้ไขในสคริป
·       ไม่สามารถรายงานผลแบบเรียลไทม์ได้
·       เน้นการตรวจสอบระบบเครือข่าย จึงไม่ครอบคลุมการตรวจสอบเครื่องแม่ข่ายหรือแอปพลิเคชั่น



2.1.      Icinga
Icinga เป็นระบบ monitoring อีกตัวหนึ่งที่สามารถตรวจสอบการทำงานทุกๆ อย่างในระบบเครือข่ายของโดย Icinga เป็นโปรแกรมลูกของ Nagios ซึ่งจะทำให้สามารถใช้งาน Plugin
ร่วมกับ Nagios ได้ด้วย ซึ่งทำงานได้รวดเร็วและง่าย


ภาพที่ 2-5 แสดงรายละเอียดหน้า Dashboard ระบบ Icinga 

คุณสมบัติ
·       การตรวจสอบบริการเครือข่าย บริการโฮสต์และส่วนเซิร์ฟเวอร์
·       ทำงานกับ Icinga 2 plugins
·       สนับสนุนการจัดการเหตุการณ์และการแจ้งเตือน
·       สนับสนุน SMS, call และ email
·       มี UI ให้เลือก 2 แบบ ทั้งแบบ Classic UI และ Icinga web
·       มีเทมเพลตรายงานผล


แสดงการเปรียบเทียบระบบ Network Monitoring Tools


ภาพที่ 2-6 แสดงการเปรียบเทียบระบบ Network Monitoring Tools