zabbix ตั้งแต่ version 2.x เป็นต้นไปจะมี daemon ใหม่ของ zabbix ที่มีชื่อว่า zabbix java gateway ซึ่งถูกเขียนโดยภาษา java ซึ่งเจ้า zabbix java gateway นั้นจะเป็นตัวกลางค่อยคุยระหว่าง zabbix-server และ Application Java บนเครื่อง Agent โดยใช้ JMX management API ในการคุย และเครื่อง Agent ต้องมีการใส่ Option -Dcom.sun.management.jmxremote ที่ Application Java เพื่อเปิดให้สามารถ remote มา monitor ที่ JMX ได้ โดยมีขั้นตอนต่างๆ ดังนี้
ติดตั้ง zabbix java gateway ที่เครื่อง host zabbix server โดยสามารถติดตั้งผ่าน package manager หรือ download source มาก็ได้ (ในตัวอย่างจะใช้ package manager ในการติดตั้ง)
sudo apt-get update && sudo apt-get install zabbix-java-gateway
ตั้งค่า zabbix java gateway ที่ไฟล์ config zabbix server
sudo vi /etc/zabbix/zabbix_server.conf
เพิ่ม config ดังนี้
#host ที่ติดตั้ง zabbix java gateway JavaGateway=localhost #port zabbix java gateway ค่า Default เป็น 10052 JavaGatewayPort=10052 #ค่า Default เป็น 5 StartJavaPollers=5
แล้วทำการ restart service zabbix server
service zabbix-server restart
เพิ่ม JMX interfaces ของเครื่อง agent ที่หน้า Web UI ของ zabbix server โดยให้เข้าที่ URL: http://x.x.x.x/zabbix => Configuration => Hosts => เลือก host agent ที่ต้องการ monitor JMX ในตัวอย่างเลือก host ชื่อ agent
ใส่รายละเอียดดังนี้
JMX interfaces: ใส่ชื่อ host หรือ IP Address เครื่อง agent และใส่ port JMX ในตัวอย่างตั้งค่า port เป็น 8090
เสร็จแล้วคลิ๊ก Save
หาก config ทุกอย่างถูกต้อง icon JMX ต้องเป็นสีเขียวตามรูป
เพิ่ม JMX agent item ที่เครื่อง agent โดยคลิ๊กที่ item
ใส่รายละเอียดดังนี้
- Name: ตั้งชื่อ item
- Type: เลือก type JMX agent
- Key: ใส่ key ที่ต้องการจะ Monitor โดยมี pattern ดังนี้ jmx[ObjectName,Attribute Name] ในตัวอย่างจะ Monitor HeapMomory ที่ใช้
- jmx[java.lang:type=Memory,HeapMemoryUsage.used]
- Host interface: เลือก Interface เป็น JMX
- new application: ตั้งชื่อ application ใหม่หากยังไม่มี ในตัวอย่างตั้งเป็น jmx
เสร็จแล้วคลิ๊ก Save
ในส่วน item status ต้องเป็น Enabled และมีติ๊กถูกสีเขียวที่ column error
การดูค่า ObjectName และ Attribute Name สามารถใช้ JConsole เข้าไปดูได้
ตรวจสอบค่าที่ monitor ได้โดยไปที่แท็ป Monitoring => Lastest data => เลือก host agent => ขยายในส่วนของ item jmx จะเห็นว่ามีการได้รับค่ามาแล้ว
คลิ๊กที่ Graph หากต้องการดูแบบ Graph
จากการทดลองใช้นั้นรู้สึกประทับใจกับ zabbix java gateway มาก เพราะทำให้เราสามารถแก้ไข Application java ของเราได้ก่อนที่จะเกิดอาการ hang เช่น heap memory ใกล้จะเต็มก็จะส่งมาแจ้งเตือนเราให้รู้ก่อนที่ Application จะ hang เป็นต้น และยังทำให้เรามีข้อมูลอ้างอิงซึ่งเราสามารถนำข้อมูลนั้นมาปรับจูน Application Java ให้มีประสิทธิภาพมากขึ้น
อ้างอิง – เอกสารใน web zabbix, web sysads