Cách cài đặt Icinga và Icinga Web trên Ubuntu 16.04

4 năm trước

Giới thiệu

Icinga là một hệ thống giám sát mã nguồn mở linh hoạt và mạnh mẽ được sử dụng để giám sát hiệu năng của các máy chủ và dịch vụ được nối mạng. Nó có thể được sử dụng để theo dõi tải và thời gian hoạt động của một nhóm web workers, dung lượng đĩa trống trên thiết bị lưu trữ, mức tiêu thụ bộ nhớ trên dịch vụ lưu trữ, v.v. Sau khi thiết lập đúng, Icinga có thể cung cấp tổng quan nhanh về trạng thái số lượng lớn máy chủ và dịch vụ cũng như thông báo, lập lịch thời gian chết và lưu trữ lâu dài dữ liệu hiệu suất.

Hướng dẫn này sẽ bao gồm việc cài đặt lõi Icinga, phần cuối cơ sở dữ liệu của nó và giao diện Icinga Web. Cuối cùng, thông báo qua email sẽ được thiết lập để bạn có thể nhận thông báo trong hộp thư đến khi dịch vụ hoạt động không đúng.

 

Điều kiện tiên quyết

Trước khi bắt đầu hướng dẫn này, bạn sẽ cần:

  • Máy chủ Ubuntu 16.04 với LAMP stack được cài đặt, được trình bày chi tiết trong hướng dẫn cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 16.04.
  • Vì Icinga Web có trang đăng nhập và yêu cầu nhập thông tin nhạy cảm trong khi thiết lập, bạn nên bật mã hóa SSL cho Apache. Có thể tìm hiểu cách tìm nạp và cài đặt các chứng chỉ SSL miễn phí trong hướng dẫn Làm thế nào để bảo mật Apache với Let's Encrypt trên Ubuntu 16.04.
 

Bước 1 - Cài đặt Icinga

Để có được phiên bản mới nhất của Icinga, trước tiên cần phải thêm một kho phần mềm được nhóm Icinga duy trì. Sau đó, cài đặt phần mềm với apt-get và chạy qua một vài màn hình cấu hình để thiết lập phần phụ trợ cơ sở dữ liệu của Icinga.

Trước tiên, tải gói signing key của nhà phát triển Icinga và thêm nó vào hệ thống apt:

curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

Khóa này sẽ được sử dụng để tự động xác minh tính toàn vẹn của bất kỳ phần mềm nào tải xuống từ kho lưu trữ Icinga. Bây giờ cần thêm địa chỉ kho lưu trữ vào một tệp cấu hình apt. Mở tệp bằng trình chỉnh sửa văn bản yêu thích của bạn. nano sẽ được sử dụng trong suốt hướng dẫn này:

sudo nano /etc/apt/sources.list.d/icinga.list

Thao tác này sẽ mở một tệp văn bản trống mới. Dán vào dòng sau:

/etc/apt/sources.list.d/icinga.list
deb https://packages.icinga.com/ubuntu icinga-xenial main

Lưu và đóng tệp, sau đó làm mới package cache:

sudo apt-get update

apt-get sẽ tải xuống thông tin từ kho lưu trữ mà chúng ta vừa thêm vào, làm cho các gói Icinga có sẵn để cài đặt: 

sudo apt-get install icinga2 icinga2-ido-mysql

Điều này sẽ cài đặt phần mềm Icinga chính, cùng với bộ điều hợp cơ sở dữ liệu cho phép Icinga đưa dữ liệu lịch sử và các thông tin khác vào cơ sở dữ liệu MySQL. Bạn sẽ thấy một vài màn hình cấu hình cho bộ điều hợp cơ sở dữ liệu:

  1. Bật tính năng ido-mysql của Icinga 2? YES
  2. Cấu hình cơ sở dữ liệu cho icinga2-ido-mysql với dbconfig-common? YES
  3. Sau đó bạn sẽ được nhắc thiết lập mật khẩu cơ sở dữ liệu Icinga. Tạo mật khẩu mạnh và ghi lại sau. Chúng tôi sẽ cần nó khi thiết lập giao diện web.

Bây giờ cần thực sự kích hoạt phần phụ trợ cơ sở dữ liệu Icinga. Lệnh icinga2 có thể bật và tắt các tính năng trên dòng lệnh. Trong khi đó, chúng tôi cũng sẽ kích hoạt tính năng command mà cuối cùng sẽ cho phép chạy kiểm tra hiệu năng bằng tay từ giao diện web.

sudo icinga2 feature enable ido-mysql command

Bây giờ khởi động lại icinga2 để sử dụng các tính năng mới:

sudo systemctl restart icinga2

Và cuối cùng, kiểm tra trạng thái của icinga2 để đảm bảo trạng thái chạy đúng:

sudo systemctl status icinga2
Outputicinga2.service - Icinga host/service/network monitoring system 
Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-04-20 00:54:55 UTC; 3s agoProcess: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 15416 (icinga2)
Tasks: 11Memory: 7.7M
  CPU: 488ms
. . .
 

 

Nếu thấy Active: active (running), Icinga đang hoạt động. Bây giờ chúng ta đã thiết lập hệ thống lõi Icinga và phần cuối của cơ sở dữ liệu, đến lúc thiết lập và chạy giao diện web.

 

Bước 2 - Cài đặt giao diện Icinga Web

Lõi Icinga có thể cấu hình đầy đủ và có thể sử dụng được mà không có giao diện web, nhưng Icinga Web cung cấp tổng quan về hiệu năng của máy chủ và dịch vụ từ trình duyệt.

Hãy cài đặt Icinga Web với apt-get:

sudo apt-get install icingaweb2

Phần còn lại của thiết lập Icinga Web được thực hiện trong trình duyệt web, nhưng trước khi chuyển đổi, có một cài đặt cần cập nhật. Icinga Web cần một múi giờ để được thiết lập cho môi trường PHP, vì vậy hãy chỉnh sửa tệp cấu hình PHP:

sudo nano /etc/php/7.0/apache2/php.ini

Cần tìm một dòng cụ thể để cập nhật. Trong nano chúng ta có thể nhấn CTRL-W để hiển thị giao diện tìm kiếm, nhập vào date.timezone, sau đó nhấn ENTER. Con trỏ sẽ di chuyển đến dòng cần cập nhật. Đầu tiên, bỏ ghi chú dòng bằng cách xóa bỏ dòng đầu tiên; dấu chấm phẩy, sau đó nhập vào múi giờ chính xác của bạn. Bạn có thể tìm định dạng múi giờ chính xác trong phần múi giờ của hướng dẫn sử dụng PHP. Nó sẽ giống như thế này khi bạn hoàn thành:

/etc/php/7.0/apache2/php.ini
date.timezone = America/New_York

Lưu và đóng tập tin. Khởi động lại Apache để cập nhật:

sudo systemctl restart apache2
  •  

Bây giờ là lúc làm việc thông qua thiết lập dựa trên trình duyệt Icinga Web.

 

Bước 3 - Thiết lập giao diện Icinga Web

Trước khi chuyển sang trình duyệt cho quá trình thiết lập dựa trên web, cần phải tạo setup token. Đây là khóa tạo ra trên dòng lệnh cho phép sử dụng công cụ thiết lập web. Tạo khóa này bằng lệnh icingacli:

sudo icingacli setup token create

Mã thông báo ngắn sẽ được in:

Output1558c2c0ec4572ab
 

Sao chép mã thông báo vào khay nhớ tạm, sau đó chuyển sang trình duyệt và tải địa chỉ Icinga Web. Theo mặc định, đây là tên miền hoặc địa chỉ IP của máy chủ của bạn, theo sau là /icingaweb2:

https://icinga-master.example.com/icingaweb2

Icinga Web Setup Page

Bạn sẽ thấy màn hình cấu hình. Dán mã thông báo bạn đã sao chép vào khay nhớ tạm của mình và nhấn Next theo để bắt đầu quá trình. Có nhiều trang tùy chọn để trải qua. Chúng ta sẽ đi bước từng bước một.

Cài đặt Module

Trên trang thứ hai, sẽ có tùy chọn cho phép thêm một số module cho giao diện web. Chúng ta có thể chấp nhận mặc định chỉ cho phép Monitoring module. Nhấn Next để tiếp tục.

Trạng thái môi trường

Trang thứ ba hiển thị trạng thái của môi trường PHP. Bạn sẽ không thấy bất kỳ hộp màu đỏ nào, điều này sẽ cho biết sự cố hoặc cấu hình sai. Có thể thấy một số hộp màu vàng đề cập đến các PostgreSQL modules bị thiếu. Có thể bỏ qua những điều này một cách an toàn, vì chúng ta đang sử dụng MySQL chứ không phải PostgreSQL. Nhấn Next để tiếp tục.

Xác thực Icinga Web

Trang thứ tư cho phép chọn cách muốn xác thực người dùng Web Icinga. Nếu bạn muốn tích hợp với dịch vụ LDAP để xác thực, đây sẽ là nơi để chọn điều đó. Sử dụng Database mặc định để lưu trữ người dùng trong cơ sở dữ liệu MySQL. Nhấn Next để tiếp tục.

Thiết lập cơ sở dữ liệu người dùng

Trang thứ năm yêu cầu thiết lập cơ sở dữ liệu để lưu trữ dữ liệu người dùng. Điều này tách biệt với cơ sở dữ liệu đã thiết lập trong quá trình cài đặt dòng lệnh.

Hầu hết các mặc định đều ổn, nhưng cũng cần phải chọn một tên cơ sở dữ liệu và kết hợp user/password:

  1. Tên nguồn: icingaweb_db
  2. Loại cơ sở dữ liệu: MySQL
  3. Máy chủ lưu trữ: localhost
  4. Cổng truy nhập:
  5. Tên cơ sở dữ liệu: icingaweb_users
  6. Tên người dùng: icingaweb
  7. Mật khẩu: set and record a password
  8. Bộ ký tự:
  9. Ổn định: leave unchecked
  10. Sử dụng SSL: leave unchecked

Nhấn Next để tiếp tục.

Tạo cơ sở dữ liệu người dùng

Trang tiếp theo sẽ hiện lên cơ sở dữ liệu của bạn không tồn tại và bạn không có thông tin đăng nhập để tạo nó. Nhập root cho tên người dùng, gõ vào mật khẩu MySQL root và nhấn Next để tạo cơ sở dữ liệu và người dùng Icinga Web.

Đặt tên nhà cung cấp xác thực

Bây giờ cần đặt tên cho backend xác thực mà chúng ta vừa tạo. Mặc định icingaweb2 ổn. Bấm Next.

Tạo tài khoản Admin

Bây giờ chúng ta đã thiết lập cơ sở dữ liệu người dùng, có thể tạo tài khoản Admin đầu tiên trên Web Icinga. Chọn tên người dùng và mật khẩu và nhấp vào Next để tiếp tục.

Tùy chọn và lưu trữ nhật ký

Tiếp theo, chúng tôi sẽ trình bày các tùy chọn về cách lưu trữ các tùy chọn và nhật ký người dùng. Mặc định ổn và lưu trữ các sở thích trong cơ sở dữ liệu trong khi đăng nhập vào syslog. Nhấn Next để tiếp tục.

Xác nhận cấu hình

Một trang được trình bày để xem lại tất cả các cấu hình. Nhấn Next để xác nhận các chi tiết cấu hình và chuyển sang cấu hình module giám sát.

Giới thiệu về cấu hình giám sát

Bây giờ chúng ta bắt đầu cấu hình module giám sát thực tế cho Icinga Web. Nhấn Next để bắt đầu.

Chọn phần phụ trợ giám sát

Đầu tiên, chọn chương trình phụ trợ giám sát. Tên mặc định của icinga và loại IDO đều ổn. Điều này cho thấy Icinga Web sẽ lấy thông tin từ cơ sở dữ liệu ido-mysql mà đã cấu hình trước đó khi cài đặt mọi thứ trên dòng lệnh.

Thiết lập cơ sở dữ liệu giám sát

Cần nhập chi tiết kết nối cho cơ sở dữ liệu ido-mysql. Chúng tôi đã tạo mật khẩu này trong khi cài đặt.

Trang này có tất cả các tùy chọn giống như màn hình thiết lập cơ sở dữ liệu người dùng:

  1. Tên nguồn: icinga_ido
  2. Loại cơ sở dữ liệu: MySQL
  3. Máy chủ lưu trữ: localhost
  4. Cổng truy cập:
  5. Tên cơ sở dữ liệu: icinga2
  6. Tên người dùng: icinga2
  7. Mật khẩu: password you created during installation
  8. Bộ ký tự
  9. Ổn định: unchecked
  10. Sử dụng SSL: unchecked

Nhấn Next để tiếp tục.

Chọn phương thức truyền lệnh

Tiếp theo là lời nhắc Command Transport. Điều này cho phép xác định cách Icinga Web chuyển các lệnh tới Icinga khi chạy kiểm tra hiệu năng theo cách thủ công trong giao diện web. Mặc định của Local Command File tốt và làm việc với tính năng command đã kích hoạt ở Bước 1. Nhấn Next để tiếp tục.

Điều này cho phép chỉ định dữ liệu nên che dấu trong giao diện web để ngăn chặn bất kỳ người xem tiềm năng nào nhìn thấy mật khẩu và thông tin nhạy cảm khác. Mặc định ổn. Nhấn Next để tiếp tục.

Tóm tắt cấu hình module giám sát

Một lần nữa, chúng tôi đã trình bày tóm tắt về cấu hình này. Nhấn Finish để hoàn thành việc thiết lập Icinga Web. Congratulations! sẽ hiện lên.

Nhấp vào Login to Icinga Web 2 và đăng nhập bằng tên người dùng và mật khẩu Admin của bạn.

Icinga Web Interface

Giao diện chính của Icinga Web sẽ hiện lên. Hãy khám phá một chút và tự làm quen với giao diện. Nếu máy chủ của bạn không có thiết lập không gian hoán đổi, bạn có thể thấy hộp Critical Error màu đỏ. Có thể bỏ qua điều này ngay bây giờ hoặc có thể Acknowledge bằng cách nhấp vào hộp màu đỏ, chọn Acknowledge từ cột bên phải, điền vào nhận xét và cuối cùng nhấp vào nút Acknowledge problem.

Bây giờ đã hoàn thành việc thiết lập Icinga và Icinga Web, hãy đặt thông báo qua email.

 

Bước 4 - Thiết lập Email

Việc giám sát không quá hữu ích nếu bạn không nhận được thông báo khi có sự cố. Cấu hình mặc định của Icinga có một số tập lệnh để gửi email cho Admin, nhưng cần thiết lập email trên máy chủ của mình trước khi chúng hoạt động. Cách đơn giản nhất để làm điều đó là sử dụng một chương trình có tên là ssmtp để định tuyến tất cả thư của máy chủ thông qua một máy chủ SMTP chuẩn.

Trước tiên, hãy cài đặt ssmtp và một số tiện ích trợ giúp thư:

sudo apt-get install ssmtp mailutils

Và bây giờ chỉnh sửa tập tin cấu hình ssmtp với các chi tiết SMTP. Chúng phải được cung cấp bởi ISP, nhà cung cấp email hoặc bộ phận CNTT của bạn. Bạn sẽ cần một tên người dùng, mật khẩu và địa chỉ máy chủ SMTP của bạn:

sudo nano /etc/ssmtp/ssmtp.conf

Sẽ có một số cấu hình hiện có trong tệp. Xóa nó và thay thế bằng thiết lập rất cơ bản này sẽ hoạt động với hầu hết các máy chủ SMTP:

/etc/ssmtp/ssmtp.conf
mailhub=mail.example.com:465
UseTLS=yes
FromLineOverride=yes
AuthUser=smtp_usernameAuthPass=smtp_password

Lưu và đóng tập tin. Để kiểm tra kết nối, sử dụng lệnh mail :

echo "hello world" | mail -s "test subject" sammy@example.com

Bạn sẽ thấy một email trong hộp thư đến của mình. Bây giờ cần cập nhật một vài cài đặt cho Icinga để gửi thư.

 

Bước 5 - Thiết lập và kiểm tra thông báo

Để nhận thông báo qua email hoạt động, hãy cập nhật địa chỉ email mà Icinga đang gửi tới:

sudo nano /etc/icinga2/conf.d/users.conf

Thay đổi dòng email thành địa chỉ bạn muốn nhận thông báo tại:

/etc/icinga2/conf.d/users.conf
. . .
email = "sammy@example.com"
. . .

Khởi động lại Icinga lần cuối:

sudo systemctl restart icinga2

Máy chủ lưu trữ icinga-master đã được cấu hình để gửi thông báo khi có sự cố. Hãy thử tạo ra một vấn đề và xem điều gì xảy ra. Sử dụng một lệnh gọi là stress để tăng tải của hệ thống để kích hoạt cảnh báo.

Thiết lập stress:

sudo apt-get install stress

stress có thể thao tác tải, chạy đĩa IO, bộ nhớ và các chỉ số hệ thống khác. Cấu hình mặc định Icinga sẽ kích hoạt cảnh báo khi tải của hệ thống vượt quá năm lần. Hãy tạo ra điều đó ngay bây giờ: 

stress --cpu 6

Chuyển về giao diện Icinga Web và bạn sẽ thấy chỉ số load tăng chậm. Sau một vài lần kiểm tra, nó sẽ vào trạng thái soft WarningSoft có nghĩa là sự kiểm tra phải thất bại thêm vài lần trước khi được coi là trạng thái hard, lúc đó thông báo sẽ được gửi. Điều này là để tránh gửi thông báo cho các sự cố tức thời nhanh chóng tự khắc phục.

Đợi cảnh báo đến trạng hard và gửi thông báo. Bạn sẽ nhận được một email với các chi tiết về những gì đang xảy ra.

Nhấn CTRL-C để thoát lệnh stress. Tải hệ thống sẽ phục hồi khá nhanh và hoàn nguyên về Ok trong giao diện Icinga Web. Bạn cũng sẽ nhận được một email khác cho biết rằng vấn đề đã bị xóa.

 

Kết luận

Trong hướng dẫn này, chúng tôi đã thiết lập thành công Icinga và Icinga Web, bao gồm cả tính năng thông báo email của Icinga. Hiện tại, chúng tôi chỉ giám sát máy chủ Icinga. Hãy đọc hướng dẫn tiếp theo Làm thế nào để giám sát các máy chủ và dịch vụ với Icinga trên Ubuntu 16.04, nơi thiết lập giám sát từ xa.

Tìm hiểu nhiều điều thú vị hơn tại Vicloud!