การตั้งค่าการตรวจสอบแบบเรียลไทม์ด้วย 'Ganglia' สำหรับกริดและคลัสเตอร์ของเซิร์ฟเวอร์ Linux
นับตั้งแต่ที่ผู้ดูแลระบบมีหน้าที่จัดการเซิร์ฟเวอร์และกลุ่มเครื่อง เครื่องมือต่างๆ เช่น แอปพลิเคชันการตรวจสอบจึงเป็นเพื่อนที่ดีที่สุดของพวกเขา คุณคงจะคุ้นเคยกับเครื่องมือต่างๆ เช่น Nagios, Zabbix, Icinga และ Centreon แม้ว่าสิ่งเหล่านั้นจะเป็นคุณสมบัติสำคัญของการตรวจสอบ แต่การตั้งค่าและการใช้ประโยชน์จากคุณสมบัติต่างๆ อย่างเต็มที่อาจเป็นเรื่องยากสำหรับผู้ใช้ใหม่
ในบทความนี้ เราจะแนะนำให้คุณรู้จักกับ Ganglia ซึ่งเป็นระบบตรวจสอบที่สามารถปรับขนาดได้อย่างง่ายดายและช่วยให้ดูการวัดระบบที่หลากหลายของเซิร์ฟเวอร์และคลัสเตอร์ Linux (รวมถึงกราฟ) ในแบบเรียลไทม์
Ganglia ช่วยให้คุณสามารถตั้งค่า กริด (สถานที่) และ คลัสเตอร์ (กลุ่มของเซิร์ฟเวอร์) เพื่อองค์กรที่ดีขึ้น
ดังนั้น คุณสามารถสร้างตารางที่ประกอบด้วยเครื่องจักรทั้งหมดในสภาพแวดล้อมระยะไกล จากนั้นจัดกลุ่มเครื่องจักรเหล่านั้นเป็นชุดเล็กๆ ตามเกณฑ์อื่นๆ
นอกจากนี้ เว็บอินเทอร์เฟซของ Ganglia ยังได้รับการปรับให้เหมาะกับอุปกรณ์เคลื่อนที่ และยังช่วยให้คุณสามารถส่งออกข้อมูลในรูปแบบ .csv
และ .json
ได้
สภาพแวดล้อมการทดสอบของเราจะประกอบด้วยเซิร์ฟเวอร์กลาง CentOS 7 (ที่อยู่ IP 192.168.0.29) ที่เราจะติดตั้ง Ganglia และ เครื่อง Ubuntu 14.04 (192.168.0.32) ซึ่งเป็นกล่องที่เราต้องการตรวจสอบผ่านเว็บอินเทอร์เฟซของ Ganglia
ตลอดทั้งคู่มือนี้ เราจะอ้างถึงระบบ CentOS 7 ว่าเป็นโหนดหลัก และอ้างถึงกล่อง Ubuntu ว่าเป็นเครื่องที่ได้รับการตรวจสอบ
การติดตั้งและการกำหนดค่า Ganglia
หากต้องการติดตั้งยูทิลิตี้การตรวจสอบใน โหนดหลัก ให้ทำตามขั้นตอนเหล่านี้:
1. เปิดใช้งานพื้นที่เก็บข้อมูล EPEL แล้วติดตั้ง Ganglia และยูทิลิตี้ที่เกี่ยวข้องจากที่นั่น:
yum update && yum install epel-release
yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web
แพ็คเกจที่ติดตั้งในขั้นตอนข้างต้นพร้อมกับปมประสาทซึ่งเป็นตัวแอปพลิเคชันเองนั้นทำหน้าที่ดังต่อไปนี้:
rrdtool
ซึ่งเป็นฐานข้อมูลแบบ Round-Robin เป็นเครื่องมือที่ใช้ในการจัดเก็บและแสดงการเปลี่ยนแปลงของข้อมูลในช่วงเวลาหนึ่งโดยใช้กราฟganglia-gmetad
คือ daemon ที่รวบรวมข้อมูลการตรวจสอบจาก โฮสต์ ที่คุณต้องการตรวจสอบ ในโฮสต์เหล่านั้นและใน โหนดหลัก จำเป็นต้องติดตั้ง ganglia-gmond ด้วย (ตัวมอนิเตอร์ daemon เอง):ganglia-web
ให้ส่วนหน้าของเว็บที่เราจะดูกราฟประวัติและข้อมูลเกี่ยวกับระบบที่ถูกตรวจสอบ
2. ตั้งค่าการตรวจสอบสิทธิ์สำหรับเว็บอินเตอร์เฟส Ganglia (/usr/share/ganglia) เราจะใช้การรับรองความถูกต้องพื้นฐานตามที่ Apache ให้ไว้
หากคุณต้องการสำรวจกลไกการรักษาความปลอดภัยขั้นสูง โปรดดูส่วนการอนุญาตและการรับรองความถูกต้องของเอกสาร Apache
เพื่อให้บรรลุเป้าหมายนี้ ให้สร้างชื่อผู้ใช้และกำหนดรหัสผ่านเพื่อเข้าถึงทรัพยากรที่ป้องกันโดย Apache ในตัวอย่างนี้ เราจะสร้างชื่อผู้ใช้ชื่อ adminganglia
และกำหนดรหัสผ่านที่เราเลือก ซึ่งจะถูกเก็บไว้ใน /etc/httpd/auth.basic (อย่าลังเลที่จะ เลือกไดเร็กทอรีและ/หรือชื่อไฟล์อื่น - ตราบใดที่ Apache มีสิทธิ์ในการอ่านทรัพยากรเหล่านั้น คุณจะไม่เป็นไร):
htpasswd -c /etc/httpd/auth.basic adminganglia
ป้อนรหัสผ่านสำหรับ adminganglia สองครั้งก่อนดำเนินการต่อ
3. แก้ไข /etc/httpd/conf.d/ganglia.conf ดังต่อไปนี้:
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
AuthType basic
AuthName "Ganglia web UI"
AuthBasicProvider file
AuthUserFile "/etc/httpd/auth.basic"
Require user adminganglia
</Location>
4. แก้ไข /etc/ganglia/gmetad.conf:
ขั้นแรก ให้ใช้คำสั่ง gridname ตามด้วยชื่อที่สื่อความหมายสำหรับกริดที่คุณกำลังตั้งค่า:
gridname "Home office"
จากนั้น ใช้ data_source ตามด้วยชื่อที่สื่อความหมายสำหรับคลัสเตอร์ (กลุ่มของเซิร์ฟเวอร์) ช่วงเวลาการโพลในหน่วยวินาที และที่อยู่ IP ของโหนดหลักและโหนดที่ได้รับการตรวจสอบ:
data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node
5. แก้ไข /etc/ganglia/gmond.conf
ก) ตรวจสอบให้แน่ใจว่าบล็อกคลัสเตอร์มีลักษณะดังนี้:
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
b) ในบล็อก udp_send_chanel แสดงความคิดเห็นในคำสั่ง mcast_join:
udp_send_channel {
#mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
c) สุดท้าย แสดงความคิดเห็น mcast_join และผูกคำสั่งในบล็อก udp_recv_channel:
udp_recv_channel {
#mcast_join = 239.2.11.71 ## comment out
port = 8649
#bind = 239.2.11.71 ## comment out
}
บันทึกการเปลี่ยนแปลงและออก
6. เปิดพอร์ต 8649/udp และอนุญาตให้สคริปต์ PHP (ทำงานผ่าน Apache) เชื่อมต่อกับเครือข่ายโดยใช้บูลีน SELinux ที่จำเป็น:
firewall-cmd --add-port=8649/udp
firewall-cmd --add-port=8649/udp --permanent
setsebool -P httpd_can_network_connect 1
7. รีสตาร์ท Apache, gmetad และ gmond ตรวจสอบให้แน่ใจว่าเปิดใช้งานแล้วเพื่อเริ่มการบู๊ต:
systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd
ณ จุดนี้ คุณควรจะสามารถเปิดเว็บอินเทอร์เฟซของ Ganglia ได้ที่ http://192.168.0.29/ganglia
และเข้าสู่ระบบด้วยข้อมูลประจำตัวจาก #ขั้นตอนที่ 2
8. ในโฮสต์ Ubuntu เราจะติดตั้งเฉพาะ ganglia-monitor ซึ่งเทียบเท่ากับ ปมประสาท-gmond ใน CentOS:
sudo aptitude update && aptitude install ganglia-monitor
9. แก้ไขไฟล์ /etc/ganglia/gmond.conf ในกล่องที่ได้รับการตรวจสอบ สิ่งนี้ควรจะเหมือนกันกับไฟล์เดียวกันใน โหนดหลัก ยกเว้นบรรทัดที่ใส่เครื่องหมายความคิดเห็นใน คลัสเตอร์, udp_send_channel และ udp_recv_channel ควรเปิดใช้งาน:
cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}
udp_send_channel {
mcast_join = 239.2.11.71
host = localhost
port = 8649
ttl = 1
}
udp_recv_channel {
mcast_join = 239.2.11.71 ## comment out
port = 8649
bind = 239.2.11.71 ## comment out
}
จากนั้นรีสตาร์ทบริการ:
sudo service ganglia-monitor restart
10. รีเฟรชเว็บอินเทอร์เฟซ และคุณควรจะสามารถดูสถิติและกราฟของโฮสต์ทั้งสองภายใน ตารางโฮมออฟฟิศ/คลัสเตอร์ Labs ( ใช้เมนูแบบเลื่อนลงถัดจาก ตารางโฮมออฟฟิศ เพื่อเลือกคลัสเตอร์ Labs ในกรณีของเรา):
การใช้แท็บเมนู (ไฮไลต์ด้านบน) คุณสามารถเข้าถึงข้อมูลที่น่าสนใจมากมายเกี่ยวกับแต่ละเซิร์ฟเวอร์แยกกันและเป็นกลุ่ม คุณยังสามารถเปรียบเทียบสถิติของเซิร์ฟเวอร์ทั้งหมดในคลัสเตอร์แบบเคียงข้างกันได้โดยใช้แท็บเปรียบเทียบโฮสต์
เพียงเลือกกลุ่มเซิร์ฟเวอร์ที่ใช้นิพจน์ทั่วไป และคุณจะสามารถดูการเปรียบเทียบประสิทธิภาพการทำงานของเซิร์ฟเวอร์เหล่านั้นได้อย่างรวดเร็ว:
คุณลักษณะอย่างหนึ่งที่ฉันพบว่าน่าสนใจมากที่สุดเป็นการส่วนตัวคือข้อมูลสรุปที่เหมาะกับอุปกรณ์เคลื่อนที่ ซึ่งคุณสามารถเข้าถึงได้โดยใช้แท็บ อุปกรณ์เคลื่อนที่ เลือกคลัสเตอร์ที่คุณสนใจ จากนั้นเลือกโฮสต์แต่ละรายการ:
สรุป
ในบทความนี้ เราได้แนะนำ Ganglia ซึ่งเป็นโซลูชันการตรวจสอบที่ทรงพลังและปรับขนาดได้สำหรับกริดและคลัสเตอร์ของเซิร์ฟเวอร์ รู้สึกอิสระที่จะติดตั้ง สำรวจ และเล่นกับ Ganglia ได้มากเท่าที่คุณต้องการ (นอกจากนี้ คุณยังสามารถลองใช้ Ganglia ในการสาธิตที่มีอยู่ในเว็บไซต์อย่างเป็นทางการของโปรเจ็กต์ได้อีกด้วย
ในขณะที่คุณอยู่ที่นี่ คุณจะค้นพบว่ามีบริษัทที่มีชื่อเสียงหลายแห่งในโลกไอทีหรือไม่ใช้ Ganglia มีเหตุผลดีๆ มากมายนอกเหนือจากที่เราได้แบ่งปันในบทความนี้ พร้อมด้วยความง่ายในการใช้งานและกราฟพร้อมกับสถิติ (เป็นเรื่องดีที่ได้ใส่หน้าชื่อใช่ไหม) อาจจะอยู่ที่ด้านบนสุด
แต่อย่าเพิ่งเชื่อคำพูดของเรา ลองใช้ด้วยตัวเองและอย่าลังเลที่จะติดต่อเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่างหากคุณมีคำถามใดๆ