Điểm:0

Nagios check_procs không báo cáo các quy trình không được tạo bởi root

lá cờ ph

Tôi đang cố gắng thiết lập Nagios để giám sát dịch vụ nginx trên bộ cân bằng tải của mình nhưng không thành công trong việc khiến nó hiển thị dịch vụ đang hoạt động. Định nghĩa lệnh và dịch vụ bên dưới. Có vẻ như bất kỳ quá trình nào không được root sinh ra sẽ không hiển thị là đang chạy. Quá trình nginx đang được chạy bởi www-data. Tôi thậm chí đã thử một cái gì đó đơn giản như để nó kiểm tra quy trình "hàng đầu" mà tôi đang chạy dưới một người dùng khác. Những gì tôi đã trình bày dưới đây hoạt động tốt miễn là tôi chọn một quy trình đang được điều hành bởi root. Nếu quy trình được tạo bởi bất kỳ người dùng nào khác, quy trình đó sẽ hiển thị là quan trọng và không hoạt động. Bất kỳ suy nghĩ?

    xác định lệnh {
        tên_lệnh check_nginx
        command_line $USER1$/check_procs -c 1: -C nginx
}


xác định dịch vụ {
   sử dụng dịch vụ địa phương
   host_name my_host
   service_description Dịch vụ cân bằng tải
   check_command check_nginx
}
tbielaszewski avatar
lá cờ ng
suy nghĩ: 1. có điều gì đó kỳ lạ đang xảy ra với HĐH vì check_procs chỉ đọc thông tin từ/proc, vì vậy có thể một số vùng chứa hoặc cơ chế bảo mật giới hạn những gì bạn có thể thấy. 2. thử với tùy chọn ` -u, --user=USER` và có thể ` -g, --cgroup-hierarchy`
Jim Miller avatar
lá cờ ph
Tôi thực sự đã thử tùy chọn người dùng nhưng không gặp may. Cuối cùng, tôi đã đi theo một lộ trình khác và viết một plugin/tập lệnh python để thực hiện nó. Chi tiết sẽ ở bên dưới.
Điểm:0
lá cờ ph

Sau khi thử tất cả các tùy chọn khác nhau có trong plugin check_proc và không đi đến đâu, tôi quyết định đi một con đường khác. Tôi đã tạo tập lệnh python sau và đưa nó vào thư mục plugin. Tên tập lệnh python là check_service.py. Nếu bạn đặt tên khác cho nó, bạn sẽ phải sửa đổi các dịch vụ và lệnh bên dưới cho phù hợp.

   nhập hệ điều hành

status = os.system('systemctl is-active --quiet nginx')
nếu trạng thái == 768:
  print('Quan trọng, Dịch vụ không chạy')
  thoát(2)
trạng thái yêu tinh == 0:
 print('OK, Dịch vụ đang chạy')
 thoát(0)

Sau đó, tôi đã thêm lệnh sau vào tệp lệnh.cfg. $ARG1$ có sẵn cho phiên bản tương lai của tập lệnh mà tôi đang thực hiện. Nó không bắt buộc.

xác định lệnh {
    command_name check_service
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service $ARG1$
    }

Đã xác định dịch vụ như thế này

xác định dịch vụ {
    sử dụng dịch vụ địa phương
    tên_máy chủ debian
    service_description Dịch vụ cân bằng tải
    check_command check_service
    }

Sau đó, trên máy khách, tôi đã thêm lệnh này vào tệp nrpe.cfg

lệnh[check_service]=python3 /usr/lib/nagios/plugins/check_service.py

Hy vọng điều này sẽ giúp ai đó ở đâu đó trên đường.

Đă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.