Sử dụng API trong Zabbix

Dùng Zabbix đã lâu, có thể bạn chưa biết Zabbix có hỗ trợ API để mình gọi nữa đó nha. Zabbix API là chương trình cho phép bạn truy xuất và sửa đổi cấu hình, truy cập data history, được sử dụng để:

I. Tản mạn

Zabbix API là một API dựa trên web và được chuyển đổi như một phần giao diện người dùng. Theo như document của Zabbix thì API được sử dụng method JSON-RPC 2.0 với 2 ý chính sau:

Mỗi method đảm nhiệm một nhiệm vụ khác nhau, đa phần xoay quang các method: get, create, update and delete.

Ví dụ: host.create để tạo mới một host.

item.get để lấy các giá trị của item đó…

Lọc giá trị item đó lấy latest value để check …vv còn rất nhiều case khác nữa. @@~

II. Sử dụng làm sao?

Mình xin giới thiệu qua một vài example để mọi người tham khảo và áp dụng, trong khuôn khổ bài viết mình không thể trình bày hết, mọi người thông cảm nhé.

Thêm một vấn đề nữa, ở trong tuts này mình sẽ dung Postman để gọi API nha, có giao diện cho dễ dùng chứ rối quá =))

1. Lấy token đăng nhập

Định dạng JSON bạn dùng mẫu sau:

{

   “jsonrpc”: “2.0”,

   “method”: “user.login”,

   “params”: {

       “user”: “YOUR_USER”,

       “password”: “YOUR_PASSWORD”

   },

   “id”: 1,

   “auth”: null

}

Mục đích phải có token mới access được vào server và từ đó mới lấy được các thông tin khác như GET hosts, GET items…

Bạn mở Postman ra, nhập url của Zabbix API vào, nó sẽ có dạng là http://Zabbix-Host/api_jsonrpc.php

Chọn Method là POST.

Body chọn row, past format trên vào.

Kết quả như hình sau:

Phần giá trị result chính là token để bạn sử dụng về sau.

2. GET toàn bộ hosts

Lấy toàn bộ thông tin của các host đang cấu hình trên Zabbix.

 

{

   “jsonrpc”: “2.0”,

   “method”: “host.get”,

   “params”: {

       “output”: [

           “hostid”,

           “host”

       ],

       “selectInterfaces”: [

           “interfaceid”,

           “ip”

       ]

   },

   “id”: 2,

   “auth”: “xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

}

3. GET một item bất kì xem sao nào

{

   “jsonrpc”: “2.0”,

   “method”: “item.get”,

   “params”: {

       “output”: “extend”,

       “hostids”: “10084”,

       “search”: {

           “key_”: “domain.registration.check[aggretsukomerch.com]”

       },

       “sortfield”: “name”

   },

   “id”: 1,

   “auth”: “xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

}

4. GET info một trigger

{

   “jsonrpc”: “2.0”,

   “method”: “trigger.get”,

   “params”: {

       “output”: “extend”,

       “hostids”: “10084”,

       “triggerids”: “15743”,

       “selectFunctions”: “extend”

   },

   “auth”: “xxxxxxxxxxxxxxxxxxxxxxxxxxxxx”,

   “id”: 1

}

Và còn rất nhiều API khác bạn có thể tham khảo thêm tại đây:

https://www.zabbix.com/documentation/3.2/manual/api/reference

III. Tổng kết

Bài viết ngắn gọn xúc tích (nhưng không động lại bao nhiêu :D) đến đây thôi, hy vọng sẽ giúp các bạn một phần nào đấy trong việc bổ sung kiến thức hoặc ứng dụng vào công việc nếu có. Xin cám ơn các bạn đã theo dõi!!!