2014-06-14 13 views
5

Để định cấu hình trên máy chủ và được đặt trước. Nhưng để chạy trên các đại lý:Làm thế nào để chạy lệnh trên các đại lý?

  • Một số lệnh unix đơn giản, để lấy dữ liệu báo cáo của chúng tôi.
  • Khi có một số yêu cầu xử lý ở phía tác nhân.

Dường như có nhiều phương pháp được nói đến. Vậy làm thế nào để thực hiện các lệnh như vậy trên một tác nhân zabbix?

Trả lời

4

Chạy lệnh từ máy chủ trực tiếp từ một mục mới.

Trước tiên, đặt: EnableRemoteCommands=1 trong tệp tác nhân conf (cho tất cả các đại lý của bạn). Để bật tính năng này.

Tạo một mục mới. Một trường trên trang "mục mới" nói 'khóa'. Nhập:

system.run[command] 

Là chuỗi 'khóa'. Lệnh ở đâu là lệnh bạn muốn tải xuống và chạy trên tác nhân. Dưới đây là ví dụ:

system.run[sysctl dev.cpu.0.temperature | cut -d ' ' -f 2 | tr -d C] 

Có lẽ bạn cần điều gì đó phức tạp hơn quá dài để vừa với trong đó? Sau đó, bạn sẽ cần phải thực hiện một kịch bản tùy chỉnh. Đặt tập lệnh tùy chỉnh của bạn trên máy chủ web cục bộ hoặc ở đâu đó trên web.

Sau đó, bạn có thể thiết lập quan trọng của mục:

system.run[ command -v script && script || wget script_url -O /path/to/script && script] 

Để lấy và tải về kịch bản thiếu để các đại lý lần đầu tiên nó được thực thi. Tuy nhiên đó là một hack khá thô. Không phải rất thanh lịch.

Cách tốt hơn là chuyển đến "Quản trị" -> "Tập lệnh" trong menu. Từ đó, bạn có thể tạo tập lệnh mới để sử dụng trong một mục có thể được định cấu hình để chạy trên bất kỳ tác nhân nào của bạn.

Tạo một mục tùy chỉnh đặc biệt để chạy lại tập lệnh của bạn định kỳ (như một công việc định kỳ). Công việc của mục tập lệnh đặc biệt là cập nhật tác nhân bằng tập hợp các tập lệnh tùy chỉnh cần thiết khác của bạn.

Tất nhiên bạn chỉ có thể viết tất cả tập lệnh tùy chỉnh của mình trực tiếp vào cơ sở dữ liệu MYSQL của zabbix. Và nó rất hấp dẫn để làm điều đó. Nhưng hãy lưu ý rằng sau đó họ sẽ bị mất và dễ bị tổn thương nếu cơ sở dữ liệu zabbix của bạn từng bị chiên hoặc bị hỏng/bị mất. Cơ sở dữ liệu Zabbix luôn có thói quen phát triển lớn, khó sử dụng và ngoài tầm kiểm soát. Vậy đừng làm thế. Lưu trữ chúng riêng biệt ở nơi khác và dưới sự kiểm soát phiên bản (git hoặc subversion).

Khi đã được sắp xếp xong, cuối cùng chúng tôi có thể tiếp tục và tạo thêm các mục tùy chỉnh để chạy tập lệnh tùy chỉnh của bạn. Một lần nữa sử dụng:

system.run[script] 

làm khóa của mặt hàng giống như trước đây. Trường hợp 'script' là lệnh (cộng với bất kỳ đối số nào), để thực thi tập lệnh tùy chỉnh của bạn cục bộ trên tác nhân.

+0

Ah. Tôi quên đề cập đến: 'EnableRemoteCommands = 1' cần được đặt trong tệp conf agent. Nếu không 'system.run [command]' sẽ không hoạt động! – Dreamcat4

+0

Tôi mạnh mẽ bỏ phiếu chống lại 'EnableRemoteCommand'. Điều này là cho cá nhân tôi một không-đi từ quan điểm bảo mật. Những gì chúng tôi làm là chúng tôi sử dụng kiểm tra bên ngoài, như mô tả [ở đây] (https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/external). – StephenKing

+0

2 điểm: 1) Với ngoại lệ có thể có của Windows, EnableRemoteCommand sẽ chỉ cho phép các lệnh được chạy như người dùng 'zabbix'. Người dùng mà zabbix_agentd nên chạy như. Và không phải gốc. Witch cấu hình chính xác trong tập tin 'sudoers', người dùng 'zabbix' có thể được phép chỉ chạy các lệnh được chọn với bất kỳ loại quyền nào cao hơn. 2) Câu hỏi đặt ra là "cách chạy lệnh trên tác nhân". Trang tài liệu zabbix về tính năng kiểm tra bên ngoài cho biết chúng chỉ có thể được chạy trên máy chủ (chứ không phải là tác nhân). – Dreamcat4

1
  1. Xác định tham số người dùng tại máy khách (nơi zabbix đại lý là nằm) tại /etc/zabbix/zabbix_agentd.conf. Khóa phải là duy nhất. Tôi đang sử dụng lsof làm ví dụ.

    UserParameter = open_file, lsof | wc -l

  2. Restart đại lý "dịch vụ zabbix-agent khởi động lại”

  3. Kiểm tra xem phím đang làm việc sử dụng tiện ích zabbix_get. Từ máy chủ zabbix gọi sau. Nó sẽ trả về một số trong trường hợp này .

    /usr/local/bin/zabbix_get -s -k open_file

  4. Tạo một mục với chìa khóa tại máy chủ zabbix ở cấp mẫu . các kiểu trả về phải được xác định một cách chính xác, ot herwise zabbix sẽ không chấp nhận nó:

    Loại: Zabbix Agent (Active), phím: open_file, Loại thông tin: Numeric (unsigned), Data Type: số thập phân

  5. Bạn có thể tạo một đồ thị bằng cách sử dụng để giám sát giá trị tại khoảng thời gian thông thường.

Đây là số documentation chính thức.

Các vấn đề liên quan