Nhóm của chúng tôi rất vui mừng được chia sẻ tin tức rằng một hệ thống giám sát mã nguồn mở miễn phí đã được phát hành
Phiên bản 4.2 có phải là câu trả lời cho câu hỏi chính về sự sống, vũ trụ và việc giám sát nói chung? Hãy cùng xem nhé!
Chúng ta hãy nhớ lại rằng Zabbix là một hệ thống phổ biến để giám sát hiệu suất và tính khả dụng của máy chủ, thiết bị kỹ thuật và mạng, ứng dụng, cơ sở dữ liệu, hệ thống ảo hóa, vùng chứa, dịch vụ CNTT và dịch vụ web.
Zabbix thực hiện một chu trình đầy đủ từ thu thập dữ liệu, xử lý và chuyển đổi dữ liệu, phân tích dữ liệu nhận được và kết thúc bằng việc lưu trữ dữ liệu này, trực quan hóa và gửi cảnh báo bằng các quy tắc báo cáo. Hệ thống cũng cung cấp các tùy chọn linh hoạt để mở rộng phương pháp thu thập và cảnh báo dữ liệu cũng như khả năng tự động hóa thông qua API. Một giao diện web duy nhất thực hiện quản lý tập trung các cấu hình giám sát và phân phối quyền truy cập cho các nhóm người dùng khác nhau. Mã dự án được phân phối tự do theo giấy phép
Zabbix 4.2 là phiên bản không phải LTS mới với thời gian hỗ trợ chính thức được rút ngắn. Đối với những người dùng tập trung vào vòng đời lâu dài của sản phẩm phần mềm, chúng tôi khuyên bạn nên sử dụng các phiên bản LTS, chẳng hạn như 3.0 và 4.0.
Vì vậy, hãy nói về các tính năng mới và những cải tiến lớn trong phiên bản 4.2:
Nhiều nền tảng chính thức hơn
Ngoài các gói chính thức hiện có, chúng tôi còn cung cấp các bản dựng mới cho:
- RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
- Đại lý MSI cho Windows
- Hình ảnh Docker
Hỗ trợ Prometheus tích hợp để giám sát ứng dụng
Zabbix có thể thu thập dữ liệu theo nhiều cách khác nhau (đẩy/kéo) từ các nguồn dữ liệu khác nhau. Đó là JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, tác nhân và tập lệnh và các nguồn khác. Bây giờ hãy gặp sự hỗ trợ của Prometheus!
Nói đúng ra, trước đây có thể thu thập dữ liệu từ các nhà xuất khẩu Prometheus nhờ vào loại phần tử dữ liệu HTTP/HTTPS và các biểu thức chính quy.
Tuy nhiên, phiên bản mới cho phép bạn làm việc với Prometheus hiệu quả nhất có thể nhờ hỗ trợ tích hợp cho ngôn ngữ truy vấn PromQL. Và việc sử dụng các số liệu phụ thuộc cho phép bạn thu thập và xử lý dữ liệu hiệu quả nhất: bạn yêu cầu dữ liệu một lần và sau đó chúng tôi sắp xếp dữ liệu theo các số liệu cần thiết.
Điều quan trọng cần lưu ý là khám phá cấp thấp hiện có thể sử dụng dữ liệu được thu thập để tự động tạo số liệu. Trong trường hợp này, Zabbix chuyển đổi dữ liệu nhận được sang định dạng JSON, rất thuận tiện để làm việc.
Hiện tại có thêm
Giám sát tần số cao hiệu quả
Chúng ta có muốn phát hiện vấn đề càng nhanh càng tốt không? Tất nhiên là không còn nghi ngờ gì nữa! Thông thường, cách tiếp cận này khiến chúng tôi phải thăm dò ý kiến các thiết bị và thu thập dữ liệu quá thường xuyên, điều này tạo ra gánh nặng lớn hơn cho hệ thống giám sát. Làm thế nào để tránh điều này?
Chúng tôi đã triển khai cơ chế điều tiết trong các quy tắc tiền xử lý. Về bản chất, việc điều chỉnh cho chúng ta cơ hội bỏ qua các giá trị giống hệt nhau.
Giả sử rằng chúng ta đang theo dõi trạng thái của một ứng dụng quan trọng. Mỗi giây chúng tôi kiểm tra xem ứng dụng của chúng tôi có hoạt động hay không. Đồng thời, Zabbix nhận được luồng dữ liệu liên tục từ 1 (đang hoạt động) và 0 (không hoạt động). Ví dụ: 1111111111110001111111111111…
Khi mọi thứ đều ổn với ứng dụng của chúng tôi, thì Zabbix sẽ nhận được một luồng duy nhất. Họ có cần phải được xử lý? Nói chung là không, vì chúng tôi chỉ quan tâm đến việc thay đổi trạng thái của ứng dụng nên chúng tôi không muốn thu thập và lưu trữ nhiều dữ liệu như vậy. Vì vậy, việc điều chỉnh cho phép bạn bỏ qua một giá trị nếu nó giống với giá trị trước đó. Do đó, chúng tôi sẽ chỉ nhận được dữ liệu về sự thay đổi trạng thái, ví dụ: 01010101... Đây là thông tin khá đủ để phát hiện vấn đề!
Zabbix chỉ đơn giản bỏ qua các giá trị bị thiếu, chúng không được ghi lại trong lịch sử và không ảnh hưởng đến trình kích hoạt dưới bất kỳ hình thức nào. Theo quan điểm của Zabbix, không có giá trị nào bị thiếu.
Tuyệt vời! Giờ đây, chúng tôi có thể thăm dò thiết bị rất thường xuyên và phát hiện sự cố ngay lập tức mà không cần lưu trữ thông tin không cần thiết vào cơ sở dữ liệu.
Còn đồ họa thì sao? Chúng sẽ trống vì thiếu dữ liệu! Và làm thế nào bạn có thể biết Zabbix có đang thu thập dữ liệu hay không nếu hầu hết dữ liệu này bị thiếu?
Chúng tôi cũng đã nghĩ về điều đó! Zabbix cung cấp một kiểu điều tiết khác, điều tiết theo nhịp tim.
Trong trường hợp này, Zabbix, mặc dù luồng dữ liệu lặp lại, sẽ lưu trữ ít nhất một giá trị trong khoảng thời gian đã chỉ định. Nếu dữ liệu được thu thập một lần mỗi giây và khoảng thời gian được đặt thành một phút thì Zabbix sẽ biến luồng đơn vị mỗi giây thành luồng mỗi phút. Dễ dàng nhận thấy điều này dẫn đến việc dữ liệu nhận được bị nén tới 60 lần.
Bây giờ chúng tôi tự tin rằng dữ liệu đang được thu thập, hàm kích hoạt gật đầu() đang hoạt động và mọi thứ đều ổn với biểu đồ!
Xác thực dữ liệu được thu thập và xử lý lỗi
Không ai trong chúng ta muốn thu thập dữ liệu sai sót hoặc không đáng tin cậy. Ví dụ: chúng tôi biết rằng cảm biến nhiệt độ sẽ trả về dữ liệu trong khoảng từ 0°C đến 100°C và mọi giá trị khác sẽ được coi là sai và/hoặc bị bỏ qua.
Giờ đây, điều này có thể thực hiện được bằng cách sử dụng các quy tắc xác thực dữ liệu được tích hợp trong quá trình tiền xử lý để tuân thủ hoặc thiếu tuân thủ các biểu thức thông thường, phạm vi giá trị, JSONPath và XMLPath.
Bây giờ chúng ta có thể kiểm soát phản ứng với lỗi. Nếu nhiệt độ nằm ngoài phạm vi, thì chúng ta có thể chỉ cần bỏ qua giá trị đó, đặt giá trị mặc định (ví dụ: 0°C) hoặc xác định thông báo lỗi của riêng mình, chẳng hạn như “Cảm biến bị hỏng” hoặc “Thay pin”.
Một ví dụ điển hình về việc sử dụng xác thực là khả năng kiểm tra dữ liệu đầu vào xem có thông báo lỗi hay không và đặt lỗi này cho toàn bộ số liệu. Đây là một chức năng rất hữu ích khi truy xuất dữ liệu từ các API bên ngoài.
Mọi chuyển đổi dữ liệu bằng JavaScript
Nếu các quy tắc tiền xử lý tích hợp sẵn không đủ đối với chúng tôi thì giờ đây chúng tôi cung cấp sự tự do hoàn toàn bằng cách sử dụng các tập lệnh JavaScript tùy chỉnh!
Điều này mở ra khả năng vô tận để xử lý dữ liệu đến. Lợi ích thực tế của chức năng này là chúng ta không còn cần các tập lệnh bên ngoài mà chúng ta đã sử dụng để thực hiện bất kỳ thao tác dữ liệu nào nữa. Bây giờ tất cả điều này có thể được thực hiện bằng cách sử dụng JavaScript.
Giờ đây, việc chuyển đổi dữ liệu, tổng hợp, bộ lọc, các phép toán số học và logic và nhiều hơn thế nữa đều có thể thực hiện được!
Kiểm tra tiền xử lý
Bây giờ chúng ta không cần phải đoán xem các tập lệnh tiền xử lý phức tạp của chúng ta hoạt động như thế nào. Hiện có một cách thuận tiện để kiểm tra xem quá trình tiền xử lý có hoạt động chính xác hay không trực tiếp từ giao diện!
Chúng tôi xử lý hàng triệu số liệu mỗi giây!
Trước Zabbix 4.2, quá trình tiền xử lý được xử lý độc quyền bởi máy chủ Zabbix, điều này đã hạn chế khả năng sử dụng proxy để phân phối tải.
Bắt đầu với Zabbix 4.2, chúng tôi có được khả năng mở rộng tải cực kỳ hiệu quả thông qua hỗ trợ xử lý trước phía proxy. Bây giờ proxy làm điều đó!
Kết hợp với điều tiết, phương pháp này cho phép giám sát tần số cao, quy mô lớn và hàng triệu lượt kiểm tra mỗi giây mà không cần tải máy chủ Zabbix trung tâm. Proxy xử lý khối lượng dữ liệu khổng lồ, trong khi chỉ một phần nhỏ trong số đó đến được máy chủ Zabbix do điều tiết, ít hơn một hoặc hai bậc.
Khám phá cấp thấp dễ dàng hơn
Hãy nhớ lại rằng khám phá cấp thấp (LLD) là một cơ chế rất mạnh để tự động khám phá bất kỳ loại tài nguyên giám sát nào (hệ thống tệp, quy trình, ứng dụng, dịch vụ, v.v.) và tự động tạo các mục dữ liệu, trình kích hoạt, nút mạng dựa trên chúng và các mục khác các đối tượng. Điều này giúp tiết kiệm thời gian đáng kinh ngạc, đơn giản hóa cấu hình và cho phép sử dụng một mẫu trên các máy chủ có tài nguyên giám sát khác nhau.
Khám phá cấp thấp yêu cầu JSON được định dạng đặc biệt làm đầu vào. Thế thôi, chuyện đó sẽ không xảy ra nữa!
Zabbix 4.2 cho phép khám phá cấp thấp (LLD) sử dụng dữ liệu tùy ý ở định dạng JSON. Tại sao nó lại quan trọng? Điều này cho phép bạn giao tiếp, chẳng hạn như với các API bên ngoài mà không cần dùng đến tập lệnh và sử dụng thông tin nhận được để tự động tạo máy chủ, thành phần dữ liệu và trình kích hoạt.
Cùng với sự hỗ trợ JavaScript, điều này tạo ra những cơ hội tuyệt vời để tạo mẫu để làm việc với nhiều nguồn dữ liệu khác nhau, chẳng hạn như API đám mây, API ứng dụng, dữ liệu ở định dạng XML, CSV, v.v.
Khả năng thực sự là vô tận!
Hỗ trợ TimescaleDB
TimescaleDB là gì? Đây là PostgreSQL thông thường cộng với một mô-đun mở rộng từ nhóm TimescaleDB. TimescaleDB hứa hẹn hiệu suất tốt hơn nhờ thuật toán và cấu trúc dữ liệu hiệu quả hơn.
Ngoài ra, một ưu điểm khác của TimescaleDB là tính năng tự động phân vùng các bảng có lịch sử. TimescaleDB nhanh chóng và dễ bảo trì! Mặc dù vậy, tôi cần lưu ý rằng nhóm của chúng tôi vẫn chưa thực hiện so sánh nghiêm túc về hiệu suất với PostgreSQL thông thường.
Hiện tại, TimescaleDB là một sản phẩm còn khá non trẻ và đang phát triển nhanh chóng. Sử dụng cẩn thận!
Quản lý thẻ dễ dàng
Nếu trước đây thẻ chỉ có thể được quản lý ở cấp độ kích hoạt thì giờ đây việc quản lý thẻ linh hoạt hơn nhiều. Zabbix hỗ trợ thẻ cho mẫu và máy chủ!
Tất cả các sự cố được phát hiện đều nhận được thẻ không chỉ của trình kích hoạt mà còn của máy chủ cũng như các mẫu của máy chủ này.
Đăng ký tự động linh hoạt hơn
Zabbix 4.2 cho phép bạn lọc máy chủ theo tên bằng cách sử dụng biểu thức thông thường. Điều này cho phép tạo các kịch bản phát hiện khác nhau cho các nhóm nút mạng khác nhau. Nó đặc biệt thuận tiện nếu chúng ta sử dụng các quy tắc đặt tên thiết bị phức tạp.
Khám phá mạng linh hoạt hơn
Một cải tiến khác liên quan đến việc đặt tên cho các nút mạng. Giờ đây có thể quản lý tên thiết bị trong quá trình khám phá mạng và lấy tên thiết bị từ giá trị số liệu.
Đây là chức năng rất cần thiết, đặc biệt đối với việc khám phá mạng bằng tác nhân SNMP và Zabbix.
Kiểm tra chức năng của các phương thức thông báo
Bây giờ bạn có thể gửi cho mình một tin nhắn thử nghiệm trực tiếp từ giao diện Web và kiểm tra xem phương thức thông báo có hoạt động hay không. Chức năng này đặc biệt hữu ích để thử nghiệm các tập lệnh kết hợp Zabbix với các hệ thống cảnh báo, hệ thống tác vụ khác nhau cũng như các chương trình và API bên ngoài khác.
Giám sát từ xa các thành phần cơ sở hạ tầng Zabbix
Giờ đây có thể giám sát từ xa các số liệu nội bộ của máy chủ và proxy Zabbix (số liệu hiệu suất và tình trạng của các thành phần Zabbix).
Nó dùng để làm gì? Chức năng này cho phép bạn giám sát các số liệu nội bộ của máy chủ và proxy từ bên ngoài, cho phép bạn nhanh chóng phát hiện và thông báo về các sự cố ngay cả khi bản thân các thành phần bị quá tải hoặc chẳng hạn như có một lượng lớn dữ liệu chưa gửi trên proxy.
Hỗ trợ định dạng HTML cho email
Giờ đây, chúng tôi không bị giới hạn ở văn bản thuần túy và có thể tạo các tin nhắn e-mail đẹp mắt nhờ sự hỗ trợ của định dạng HTML. Đã đến lúc học HTML + CSS!
Truy cập vào hệ thống bên ngoài từ card mạng
Có hỗ trợ cho toàn bộ tập hợp macro mới trong URL tùy chỉnh để tích hợp bản đồ tốt hơn với các hệ thống bên ngoài. Điều này cho phép bạn mở, chẳng hạn như một vé trong hệ thống tác vụ bằng một hoặc hai lần nhấp chuột vào biểu tượng của nút mạng.
Quy tắc khám phá có thể là một mục dữ liệu phụ thuộc
Tại sao điều này lại cần thiết - bạn hỏi. Điều này cho phép sử dụng dữ liệu số liệu cơ bản cho cả việc khám phá và thu thập dữ liệu trực tiếp. Ví dụ: trong trường hợp thu thập dữ liệu từ nhà xuất khẩu Prometheus, Zabbix sẽ thực hiện một yêu cầu HTTP và sử dụng ngay thông tin nhận được cho tất cả các thành phần dữ liệu phụ thuộc: giá trị số liệu và quy tắc khám phá cấp thấp.
Một cách mới để trực quan hóa các vấn đề trên bản đồ
Hiện đã có hỗ trợ cho hình ảnh GIF động trên bản đồ để hiển thị rõ ràng hơn các vấn đề.
Trích xuất dữ liệu từ tiêu đề HTTP trong giám sát Web
Trong Giám sát web, khả năng chọn dữ liệu từ tiêu đề HTTP nhận được đã được thêm vào.
Điều này cho phép bạn tạo các kịch bản giám sát web nhiều bước hoặc giám sát API của bên thứ ba bằng cách sử dụng mã thông báo ủy quyền nhận được ở một trong các bước.
Zabbix Sender sử dụng tất cả địa chỉ IP
Zabbix Sender hiện gửi dữ liệu đến tất cả các địa chỉ IP từ tham số ServerActive trong tệp cấu hình tác nhân.
Bộ lọc mới tiện lợi trong cấu hình kích hoạt
Trang cấu hình trình kích hoạt hiện có bộ lọc mở rộng để lựa chọn trình kích hoạt nhanh chóng và thuận tiện dựa trên các tiêu chí đã chỉ định.
Hiển thị thời gian chính xác
Mọi thứ ở đây đều đơn giản, bây giờ Zabbix hiển thị thời gian chính xác khi bạn di chuột qua biểu đồ.
Những đổi mới khác
- Đã triển khai thuật toán dễ dự đoán hơn để thay đổi thứ tự của các tiện ích trong trang tổng quan
- Khả năng thay đổi hàng loạt các tham số của nguyên mẫu mục dữ liệu
- Hỗ trợ IPv6 để kiểm tra DNS: "net.dns" và "new.dns.record"
- Đã thêm tham số “bỏ qua” để kiểm tra “vmware.eventlog”
- Lỗi thực thi bước tiền xử lý bao gồm số bước
Làm thế nào để nâng cấp?
Để nâng cấp từ các phiên bản trước, bạn chỉ cần cài đặt
Chúng tôi đang tổ chức các hội thảo trực tuyến miễn phí cho những ai muốn tìm hiểu thêm về Zabbix 4.2 và có cơ hội đặt câu hỏi cho nhóm Zabbix.
Đừng quên những thứ phổ biến
Liên kết hữu ích
-
-
-
Nguồn: www.habr.com