Hostgroups và mẫu.
Mẫu cho phép bạn xác định các lớp cho máy chủ và dịch vụ của mình, ví dụ: "dịch vụ bình thường", "dịch vụ quan trọng", "máy chủ ưu tiên thấp". Chúng cũng là một cách hữu ích để phân chia trách nhiệm nếu bạn có nhiều nhóm với các trách nhiệm khác nhau, do đó bạn có thể có mẫu "máy chủ linux" và mẫu "máy chủ windows", với mỗi nhóm xác định thông tin liên hệ phù hợp.
Bạn có thể sử dụng nhiều mẫu trên một tài nguyên, do đó bạn có thể soạn các mẫu trực giao phù hợp. Ví dụ, bạn có thể có
host foo {
use windows-host,normal-priority-host
...
}
sẽ kéo thông tin liên hệ (và leo thang) cho nhóm Windows và tỷ lệ bỏ phiếu và ngưỡng cho máy chủ "bình thường".
Các nhóm máy chủ cho phép bạn nhóm tất cả các kiểm tra cho một tập hợp con của máy chủ lưu trữ của bạn. Có những thứ như "baseline-linux-hosts" để kiểm tra tải, dung lượng ổ đĩa, ssh
khả năng và bất cứ thứ gì khác nên có trên mọi máy chủ bạn theo dõi. Thêm các nhóm như "máy chủ https" với các kiểm tra về kết nối HTTP, kết nối HTTPS và ngày hết hạn chứng chỉ SSL; "Trình lưu trữ tệp" với các kiểm tra khả năng truy cập NFS và SMB và có thể kiểm tra đĩa mạnh hơn; hoặc "máy ảo" với các kiểm tra xem các công cụ trợ năng VM có chạy đúng không.
Đặt từng máy chủ và nhóm máy chủ trong tập tin riêng của mình. Tệp đó phải chứa định nghĩa máy chủ hoặc nhóm máy chủ trước, sau đó là định nghĩa của các dịch vụ áp dụng cho nó.
Nếu bạn sử dụng lệnh cfg_dir
trong nagios.cfg
tệp của mình , Nagios sẽ tìm kiếm đệ quy thông qua thư mục đó. Hãy tận dụng điều đó. Đối với cài đặt cfg_dir=/etc/nagios/conf.d
, bạn có thể có một cây thư mục như sau:
- /etc/nagios/conf.d/
- lệnh.d /
- http.cfg
- nrpe.cfg
- smtp.cfg
- ssh.cfg
- máy chủ.d /
- máy chủ1.cfg
- máy chủ2.cfg
- host3.cfg
- nhóm lưu trữ.d /
- hostgroup1.cfg
- hostgroup2.cfg
Tôi có xu hướng tạo một thư mục cho từng loại tài nguyên (lệnh, nhóm liên hệ, liên hệ, leo thang, nhóm máy chủ, máy chủ lưu trữ, nhóm dịch vụ, timeperiods) ngoại trừ các dịch vụ được nhóm với máy chủ hoặc nhóm máy chủ sử dụng chúng.
Cấu trúc chính xác có thể thay đổi theo nhu cầu tổ chức của bạn. Ở một công việc trước đây, tôi đã sử dụng các thư mục con hosts.d
cho mỗi trang web khác nhau. Ở công việc hiện tại của tôi, hầu hết các định nghĩa máy chủ Nagios được quản lý bởi Puppet, do đó, có một thư mục dành cho máy chủ được quản lý rối và một thư mục riêng cho máy chủ được quản lý bằng tay.
Lưu ý rằng ở trên cũng chia các lệnh thành nhiều tệp, thường là theo giao thức. Như vậy, nrpe.cfg
tập tin sẽ có các lệnh check_nrpe
và check_nrpe_1arg
, trong khi http.cfg
có thể có check_http
, check_http_port
, check_https
, check_https_port
, và check_https_cert
. 1
Tôi thường không có số lượng mẫu rất lớn, vì vậy tôi thường chỉ có một hosts.d/templates.cfg
tệp và một services.d/templates.cfg
tệp. Nếu bạn sử dụng chúng nhiều hơn, chúng có thể đi vào các tệp có tên thích hợp trong một templates.d
thư mục.
1 Tôi cũng muốn có một check_http_blindly
lệnh, về cơ bản là check_http -H $HOSTADDRESS$ -I $HOSTADDRESS$ -e HTTP/1.
; nó trả về OK ngay cả khi nhận được mã phản hồi 403.