Cách cài đặt và định dạng Shinken trên Ubuntu 12.04 để theo dõi một VPS Instance

2 năm trước

Status: Deprecated                                                                                                                                                           Bài viết này trình bày một phiên bản Ubuntu không còn được hỗ trợ. Nếu đang vận hành một server chạy Ubuntu 12.04, chúng tôi khuyên bạn nên nâng cấp hoặc chuyển sang phiên bản Ubuntu được hỗ trợ:  -  Nâng cấp lên Ubuntu 14.04  -  Nâng cấp từ Ubuntu 14.04 lên Ubuntu 16.04  -  Di chuyển dữ liệu người dùng sang phiên bản được hỗ trợLý do: Ubuntu 12.04 đã hết hạn sử dụng vào ngày 28/04/2017 và không còn nhận được bản chỉnh sửa hoặc cập nhật bảo mật nữa. Hướng dẫn này không còn được duy trì. Xem thay thế:
Hướng dẫn này vẫn có thể hữu ích như một tài liệu tham khảo, nhưng có thể không hoạt động trên các bản phát hành Ubuntu khác. Nếu có, chúng tôi khuyên bạn nên sử dụng hướng dẫn được viết cho phiên bản Ubuntu đang sử dụng. Bạn có thể sử dụng chức năng tìm kiếm ở đầu trang để tìm phiên bản mới hơn.

Giới thiệu

Shinken là một nền tảng giám sát nguồn mở dựa trên Nagios Core được viết lại trong python để nâng cao tính linh hoạt, khả năng mở rộng và dễ sử dụng. Shinken hoàn toàn tương thích với Nagios, nó hỗ trợ các plugin và cấu hình mà có thể được sử dụng khi đang chạy mà không cần viết lại hoặc điều chỉnh.

Shinken không có giới hạn về phân phối. Nó có thể được chia tỷ lệ cho lan LAN, thông qua DMZ và thậm chí trên nhiều trung tâm dữ liệu.

Shinken vượt ra ngoài chức năng giám sát cổ điển của Nagios, cho phép quản lý và giám sát tài sản, quản lý thông minh và tự động các cấu trúc liên kết của VMware và các trình giám sát khác nhau (Xen, KVM, ...) và có thể giám sát các ứng dụng được lưu trữ trên Amazon EC2 ( như mysql & Apache) tự động.

Shinken được cho là nhanh hơn 5 lần so với Nagios đi kèm với một số lượng lớn các gói giám sát có thể dễ dàng cài đặt, cung cấp một cách nhanh hơn để bắt đầu theo dõi các máy chủ, dịch vụ và ứng dụng.

Trong hướng dẫn này, chúng ta sẽ định dạng hai VPS. Một cái được cấu hình như server, cái còn lại là client. Cả hai đều chạy Ubuntu 12.04 LTS.

 

Cài đặt Shinken Server

Chúng ta sẽ bắt đầu với Server bằng cách sử dụng tập lệnh cài đặt tự động.

curl -L http://install.shinken-monitoring.org | /bin/bash

Tập lệnh cài đặt sẽ tạo user và group. Cài đặt tất cả các phụ thuộc và sau đó xử lý cài đặt Shinken. 

Sau khi cài đặt xong, WebUI shinken có thể được truy cập bằng cách sử dụng http://X.X.X.X:7767 và ủy nhiệm admin/admin. Thư mục cấu hình sẽ được đặt trong /usr/local/shinken/etc.

 

Định lại cấu hình Shinken Server

Trước khi chìm trong quá trình cấu hình Shinken, cần phải bảo mật WebUI của nó.

Hãy chỉnh sửa module web UI:

nano /usr/local/shinken/etc/shinken-specific.cfg

Chúng ta sẽ bắt đầu bằng cách thay đổi auth_secret và thay thế CHANGE_ME bằng mật khẩu mạnh:

define module {
modules Apache_passwd, ActiveDir_UI, Cfg_password, PNP_UI, Mongodb, Glances_UI
manage_acl 1
play_sound 0
host 0.0.0.0
module_type webui
allow_html_output 0
max_output_length 100
module_name WebUI
auth_secret CHANGE_ME 
port 7767
}

Lưu và đóng tập tin.

Sau đó, admin user cũng sẽ nhận được mật khẩu mạnh. Để làm điều đó, hãy thay thế mật khẩu mặc định bằng mật khẩu mạnh trên tệp contacts.cfg:

nano /usr/local/shinken/etc/contacts.cfg
define contact{
use generic-contact
contact_name admin
email shinken@localhost
pager 0600000000 ; contact phone number
password admin
is_admin 1
}

Ngay cả khi trình cài đặt chịu trách nhiệm cài đặt tất cả các phụ thuộc và mô-đun cần thiết, chúng ta cần cài đặt hỗ trợ mongodb để xử lý và lưu tùy chọn user trên webui hoặc sẽ nhận được thông báo cảnh báo xấu trên web UI:

Lỗi: bạn không xác định mô-đun WebUI để lưu tùy chọn user như tùy chọn Mongodb. Bạn sẽ không thể sử dụng trang này!

Để cài đặt hỗ trợ Mongodb:

cd /usr/local/shinken
./install -a mongodb
 

Định dạng Shinken Server

Đối với trường hợp này, chúng ta sẽ bắt đầu bằng cách khai báo máy chủ được giám sát Ubuntu 12.04 (Shinken slave),cài đặt và cấu hình SNMP trên nó, sau đó theo dõi bằng một chuỗi cộng đồng tùy chỉnh.

Mẫu SNMP sẽ xử lý các kiểm tra sau:

  • máy chủ kiểm tra 5 phút một: kiểm tra bằng một ping cho thấy server là UP

  • kiểm tra không gian đĩa

  • kiểm tra tải trung bình

  • kiểm tra mức sử dụng CPU

  • kiểm tra bộ nhớ vật lý và sử dụng trao đổi

  • kiểm tra hoạt động giao diện mạng

Khi đã xong, sử dụng gói FTP và SSH để kiểm tra trạng thái FTP & SSH trên slave như một ví dụ về cách sử dụng các gói.

Các gói là các mẫu giám sát được xác định trước cho các dịch vụ chung, cụ thể, máy chủ ứng dụng, hệ điều hành và thiết bị có khả năng theo dõi. Các gói này nằm trong thư mục sau  /usr/local/shinken/etc/packs được phân theo loại và để sử dụng chúng, chỉ cần chỉ định tên của chúng trên tệp định nghĩa máy chủ lưu trữ.

Khi Shinken hoàn toàn tương thích và hỗ trợ Nagios, Nagios plugins có thể được thêm vào và sử dụng thông qua Shinken.

 

Định nghĩa slave trên Shinken

Một server giám sát, hãy tạo một tệp lưu trữ tương ứng với thiết bị Linux của chúng ta ( Ubuntu slave VPS) trên /usr/local/shinken/etc/hosts directory:

nano /usr/local/shinken/etc/hosts/shinken_slave.cfg

Sao chép và dán nội dung sau và thay đổi trường “host_name” và “address” thành giá trị thích hợp.

define host{
use linux
host_name Shinken_slave
address X.X.X.X
_SNMPCOMMUNITY DOmonitoring
}
  • "use linux" là dòng "template". Nó nghĩa là máy chủ này sẽ sử dụng các thuộc tính từ mẫu linux mặc định.

  • "Host_name" là tên đối tượng của máy chủ lưu trữ. Nó tương ứng với tên máy của khách hàng và phải là duy nhất.

  • “address” là địa chỉ IP của slave hoặc FQDN của nó.

  • “_SNMPCOMMUNITY” là chuỗi cộng đồng SNMP tùy chỉnh hoặc mật khẩu.

Như đã đề cập trước đây, chúng ta sẽ sử dụng hai gói để theo dõi các dịch vụ FTP & SSH. Các gói này sẽ kiểm tra trạng thái của các dịch vụ, ứng dụng và giao thức công khai có sẵn mà không cần bất kỳ yêu cầu truy cập đặc biệt nào. Cho rằng sẽ thêm chúng vào tệp định nghĩa máy chủ lưu trữ, trên dòng 'use' được phân tách bằng dấu phẩy. Chúng ta có thể sử dụng nhiều nhất có thể, nhưng cần nhớ rằng chỉ cần theo dõi những gì quan trọng.

Trước /usr/local/shinken/etc/hosts/shinken_slave.cfg sẽ trông như sau:

define host{
use linux,ftp,ssh
host_name Shinken_slave
address X.X.X.X
_SNMPCOMMUNITY DOmonitoring
}

Như đã đề cập trước đó, chúng ta sẽ sử dụng một chuỗi cộng đồng SNMP tùy chỉnh (mật khẩu) cho client. Đối với hướng dẫn này, chọn “DOmonitoring” - nó sẽ giống nhau trên client.

Bây giờ chúng ta đã khai báo máy chủ của mình, hãy khởi động lại Shinken để xử lý các thay đổi:

service shinken restart
 

Định dạng client:

Chúng ta sẽ bắt đầu bằng cách cài đặt SNMP trên client.

apt-get install snmpd

Sau đó cấu hình các chuỗi cộng đồng và các giao diện nghe.

Chỉnh sửa /etc/snmp/snmpd.conf và nhận xét dòng:

agentAddress udp:127.0.0.1:161

Sau đó, bỏ ghi chú dòng:

agentAddress udp:161,udp6:[::1]:161

Như đã đề cập trước đó, chúng ta sẽ thay đổi cộng đồng SNMP (mật khẩu) cho client bằng cách thay đổi giá trị mặc định “public” theo một tùy chỉnh. Với mục đích của hướng dẫn này, “DOmonitoring” sẽ được chọn.

Thay thế:

rocommunity public

Bằng:

rocommunity DOmonitoring

Khởi động lại snmpd daemon:

service snmpd restart
 

Truy cập WebUI

Hiện tại, server và client giám sát của chúng ta đã được cấu hình. Cần truy cập vào Shinken Web UI bằng địa chỉ IP của server http://X.X.X.X:7767.

Khi đã được xác thực, chúng ta sẽ thấy một trang trống có nội dung "Bạn chưa có bất kỳ tiện ích con nào?"

Chúng ta sẽ cấu hình nó sau này với các widget tùy chỉnh để lấy thông tin cần thiết, nhưng trước tiên cần kiểm tra xem client có được cấu hình và truy cập được bằng server hay không.

Nhấp vào All tab bạn sẽ thấy một danh sách tất cả các máy theo dõi, bao gồm cả server(localhost).

Trên cùng một danh sách bạn nên tìm Shinken_slave như:

Hãy quay lại bảng điều khiển và tạo một trang tổng quan bằng cách thêm ba tiện ích con. Vì chỉ có một VPS theo dõi, chúng ta sẽ thêm đồ thị, các vấn đề và các tiện ích quan hệ.

Nhấp vào add a widget rồi chọn tiện ích bạn muốn từ bảng điều khiển. Theo mặc định, các widget sẽ nhận được các trạng thái và thông tin máy chủ cục bộ (máy chủ giám sát). Chúng ta có thể chỉnh sửa chúng để phản ánh máy chủ bằng cách nhấp và chỉ định "Element name" như được hiển thị:

Máy chủ giám sát sẽ theo dõi VPS và tất cả các thay đổi. Server càng chạy lâu thì đồ thị và số liệu thống kê càng trở nên thú vị.