Điểm:1

Sử dụng Zabbix để ghi đầu ra JSON từ REST api? có thể không

lá cờ us

Tôi đang cố gắng sử dụng Zabbix (5.0) để nắm bắt phản hồi từ API REST.

Nếu tôi dán đoạn sau vào trình duyệt web (hoặc wget/curl, v.v.)

http://{username}:{password}@10.1.2.3:8443/api/metadata/

Tôi nhận được phản hồi mà tôi mong đợi:

{"items":[{"name":"this_is_my_name"}]}

Tôi đang cố gắng nắm bắt giá trị của Tên vào zabbix.

tôi đã thiết lập một kịch bản web chống lại mẫu của tôi, và trong bước phần tôi có:

Tên: test_name
URL: http://{username}:{password}@10.1.2.3:8443/api/metadata/
Dữ liệu thô
Chế độ truy xuất: Cơ thể
Thời gian chờ: 15 giây
Chuỗi bắt buộc: $.items:["name"]
Mã trạng thái bắt buộc: 200

Sau đó, nhìn vào dữ liệu mới nhất cho nó, tôi thấy tôi có câu trả lời là 200, nhưng một lỗi của:

không tìm thấy mẫu bắt buộc "$.items:["name"]" trên http://{username}:{password}@10.1.2.3:8443/api/metadata/

Tôi đã thử tất cả các cách thay đổi trong trường Chuỗi bắt buộc và luôn cho kết quả giống nhau.

Tôi đã bỏ lỡ một cái gì đó, hoặc hiểu lầm một cái gì đó. Zabbix thậm chí có làm những gì tôi đang cố gắng làm không?

lá cờ us
Không nên truy cập các mục dưới dạng danh sách?
Điểm:3
lá cờ in

Kịch bản web không thể đánh giá JSON, nó chỉ có thể kiểm tra văn bản thuần túy bằng biểu thức chính quy.

Bạn có thể thiết lập Chuỗi bắt buộc đến đây là tên tôi, nhưng điều đó sẽ chỉ kiểm tra xem chuỗi có xuất hiện trong câu trả lời từ máy chủ hay không, bất kể ở đâu. Tùy thuộc vào phần còn lại của kết quả và trường hợp sử dụng của bạn, điều này có thể hoạt động hoặc có thể không.

Nếu bạn muốn lấy một trường cụ thể từ JSON, bạn phải định cấu hình một mục của loại đại lý HTTP:

nhập mô tả hình ảnh ở đây

KHÔNG kiểm tra Chuyển đổi sang JSON, nó có thể hấp dẫn, nhưng nó có nghĩa là chuyển đổi các câu trả lời không phải JSON thành JSON. Bạn đã có JSON, vì vậy bạn không cần nó.

Tiếp theo, thêm một bước tiền xử lý của loại Đường dẫn JSON. Đường dẫn chính xác cho ví dụ của bạn sẽ là:

$.items[:1].name

nhập mô tả hình ảnh ở đây

Kết quả từ JSON sẽ là ["đây là tên tôi"], không chỉ là đây là tên tôi, vì vậy bạn cần biểu thức chính quy \["(.+)"\] để lấy giá trị đơn giản từ kết quả.

Bạn có thể test trực tiếp:

nhập mô tả hình ảnh ở đây

Lưu trữ mặt hàng của bạn dưới dạng Chữ, sau đó bạn có thể thêm trình kích hoạt vào nó.

IGGt avatar
lá cờ us
Hoàn hảo. Có vẻ như tôi đã hoàn toàn hiểu lầm, và đang đi sai hướng hoàn toàn. Đây chính xác là những gì tôi cần. hoan hô.
Reyan Chougle avatar
lá cờ br
Câu trả lời hoàn chỉnh. Cảm ơn vì những nỗ lực của bạn. Một bài viết hay khác có tại đây trên trang web chính thức của Zabbix - https://www.zabbix.com/documentation/5.0/en/manual/config/items/itemtypes/http

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.