Trong hướng dẫn này, chúng tôi sẽ thảo luận về cách cài đặt và cấu hình công cụ giám sát web Icinga 2 phiên bản mới nhất trong bản phát hành Debian 9.2, để giám sát tất cả các thiết bị cơ sở hạ tầng mạng quan trọng, chẳng hạn như máy chủ vật lý hoặc ảo hoặc VM, bộ định tuyến, bộ chuyển mạch, thiết bị tường lửa và các thiết bị IoT mạng khác. Nó cũng có thể giám sát trạng thái của các giao thức mạng, chẳng hạn như HTTP, FTP, SMTP, IMAP hoặc các dịch vụ mạng khác, tài nguyên máy chủ, cảm biến vật lý, cũng như phần mềm, tải CPU, bộ nhớ, dung lượng đĩa, v.v. và hầu hết tất cả các thiết bị mạng được kết nối với nhau thông qua các yêu cầu ICMP hoặc ping.
Icinga, ban đầu là một nhánh của hệ thống giám sát Nagios, là một ứng dụng giám sát mạng hiện đại Nguồn mở, được viết bằng PHP và triển khai rộng rãi trên Linux theo các thành phần Apache/Nginx, PHP và MySQL/MariaDB, còn được gọi là ngăn xếp LAMP hoặc LEMP. Icinga 2 có thể được cấu hình để thông báo cho quản trị viên hệ thống hoặc mạng qua thư, tin nhắn SMS, trò chuyện hoặc các loại cảnh báo khác về mạng, hệ thống, dịch vụ hoặc sự cố mạng liên quan khác và cũng có thể tạo đồ họa về thời gian ngừng hoạt động hoặc hiệu suất của mạng.
Ở bước tiếp theo, hãy thực hiện lệnh sau để cài đặt một số tiện ích cần thiết sẽ được sử dụng để quản lý hệ thống của bạn từ dòng lệnh.
Tiếp theo, hãy thiết lập tên máy chủ cho hệ thống của bạn bằng cách thực hiện lệnh sau. Thay thế biến hostname của bạn cho phù hợp.
Xác minh tên máy chủ và tệp máy chủ bằng cách đưa ra các lệnh bên dưới.
Cuối cùng, khởi động lại máy chủ Debian để áp dụng các bản cập nhật hạt nhân và tên máy chủ thay đổi đúng cách.
Icinga 2 là một ứng dụng giám sát mạng có thể được cấu hình từ web và chức năng của nó chủ yếu dựa trên ngôn ngữ lập trình phía máy chủ PHP. Để thực thi các tập lệnh tệp PHP của ứng dụng, một máy chủ web, chẳng hạn như máy chủ Apache HTTP và một cổng xử lý PHP phải được cài đặt và hoạt động trong hệ thống. Để cài đặt máy chủ web Apache và trình thông dịch PHP cùng với tất cả các mô-đun PHP cần thiết mà Icinga cần để chạy đúng cách, hãy đưa ra lệnh sau trong bảng điều khiển máy chủ của bạn.
Sau khi Apache và PHP đã được cài đặt, hãy kiểm tra xem máy chủ web có đang hoạt động và lắng nghe các kết nối mạng trên cổng 80 hay không bằng cách đưa ra lệnh sau với quyền root.
Trong trường hợp tiện ích mạng netstat không được cài đặt theo mặc định trong hệ thống Debian của bạn, hãy thực hiện lệnh bên dưới để cài đặt tiện ích đó.
Bằng cách kiểm tra đầu ra của lệnh netstat, bạn có thể thấy máy chủ web Apache đang lắng nghe các kết nối mạng đến trên cổng 80. Đối với cùng một tác vụ, bạn cũng có thể sử dụng lệnh ss, được cài đặt tự động theo mặc định trên Debian 9.
Trong trường hợp bạn đã bật tường lửa trong hệ thống của mình, chẳng hạn như ứng dụng tường lửa UFW, bạn nên thêm một quy tắc mới để cho phép lưu lượng HTTP đi qua tường lửa bằng cách đưa ra lệnh sau.
hoặc
Nếu bạn đang sử dụng các quy tắc thô iptables để quản lý các quy tắc Tường lửa trong máy chủ Debian của mình, hãy thêm quy tắc sau để cho phép lưu lượng đến cổng 80 trên tường lửa để khách truy cập có thể duyệt giao diện web Icinga2.
Tiếp theo, hãy bật và áp dụng các mô-đun Apache sau đây sẽ được sử dụng để chuyển hướng kết nối HTTP sang HTTPS bằng cách đưa ra lệnh bên dưới.
Cuối cùng, hãy kiểm tra xem trang web mặc định của máy chủ web Apache có thể hiển thị trong trình duyệt của máy khách hay không bằng cách truy cập địa chỉ IP máy Debian hoặc tên miền hoặc FQDN của máy chủ qua giao thức HTTP. Nếu bạn không biết địa chỉ IP của máy, hãy thực hiện lệnh ifconfig hoặc ip a để hiển thị địa chỉ IP của máy chủ. Trang Apache mặc định cho Debian sẽ được hiển thị trong trình duyệt của bạn, như trong ảnh chụp màn hình bên dưới.
http://your_domain.tld
Để truy cập ứng dụng giám sát Icinga 2 qua giao thức HTTPS sẽ bảo mật lưu lượng truy cập cho máy khách của bạn, hãy đưa ra lệnh sau để bật mô-đun SSL của máy chủ web Apache và tệp cấu hình trang web SSL. Ngoài ra, hãy bật mô-đun ghi đè Apache để buộc người dùng truy cập giao diện qua HTTPS.
Tiếp theo, hãy mở tệp cấu hình trang web SSL mặc định của Apache bằng trình soạn thảo văn bản và bật các quy tắc ghi đè URL bằng cách thêm các dòng mã sau sau lệnh DocumentRoot, như được hiển thị trong mẫu bên dưới:
Trích đoạn tệp cấu hình trang web SSL:
Ngoài ra, hãy thực hiện thay đổi sau đối với dòng VirtualHost để trông giống như được hiển thị bên dưới trích đoạn:
Đóng tệp TLS Apache và mở tệp /etc/apache2/sites-enabled/000-default.conf để chỉnh sửa và thêm các quy tắc viết lại URL giống như đối với tệp cấu hình SSL. Chèn các dòng mã sau câu lệnh DocumentRoot như trong ví dụ bên dưới.
Cuối cùng, khởi động lại daemon Apache để áp dụng tất cả các quy tắc đã cấu hình cho đến nay và truy cập miền của bạn qua giao thức HTTP. Vì bạn đang sử dụng cặp chứng chỉ Tự ký tự động do Apache cấp khi cài đặt, nên cảnh báo lỗi sẽ hiển thị trên trình duyệt, như trong ảnh chụp màn hình bên dưới.
Chấp nhận cảnh báo để tiếp tục và được chuyển hướng đến trang web mặc định của Apache qua giao thức HTTPS. Trang sau sẽ được hiển thị trong trình duyệt của bạn.
Trong trường hợp ứng dụng tường lửa UFW chặn các kết nối mạng đến cổng HTTPS, bạn nên thêm một quy tắc mới để cho phép lưu lượng HTTPS đi qua tường lửa bằng cách phát hành lệnh sau.
hoặc
Nếu iptables là ứng dụng tường lửa mặc định được cài đặt để bảo vệ hệ thống Debian của bạn ở cấp độ mạng, hãy thêm quy tắc sau để cho phép lưu lượng đến cổng 443 trong tường lửa để khách truy cập có thể duyệt tên miền của bạn.
Trong phần tiếp theo bước, chúng ta cần thực hiện một số thay đổi tiếp theo đối với tệp cấu hình mặc định của PHP để đảm bảo rằng các biến PHP sau được bật và cài đặt múi giờ của PHP được cấu hình đúng và khớp với vị trí địa lý của hệ thống. Mở tệp /etc/php/7.0/apache2/php.ini để chỉnh sửa và đảm bảo rằng các dòng sau được thiết lập như sau. Ngoài ra, trước tiên, hãy sao lưu tệp cấu hình PHP.
Tìm kiếm, chỉnh sửa và thay đổi các biến sau trong tệp cấu hình php.ini:
Thay thế biến time.zone theo thời gian thực của bạn bằng cách tham khảo danh sách múi giờ do tài liệu PHP cung cấp tại liên kết sau http://php.net/manual/en/timezones.php
Nếu bạn muốn tăng tốc độ tải các trang web của mình thông qua plugin OPCache có sẵn cho PHP7, hãy thêm các thiết lập OPCache sau vào cuối tệp cấu hình trình thông dịch PHP, như được nêu chi tiết bên dưới:
Đóng tệp cấu hình php.ini và kiểm tra xem có xác minh phần cuối của tệp cấu hình PHP để kiểm tra xem các biến đã được thêm chính xác hay chưa bằng cách đưa ra lệnh bên dưới.
Sau khi bạn đã thực hiện các thay đổi được giải thích ở trên, hãy khởi động lại daemon apache để áp dụng các thay đổi mới bằng cách đưa ra lệnh sau.
Cuối cùng, tạo một tệp thông tin PHP bằng cách thực thi lệnh sau và kiểm tra xem múi giờ PHP đã được định cấu hình chính xác hay chưa bằng cách truy cập tệp tập lệnh thông tin PHP từ trình duyệt tại URL sau, như minh họa trong hình ảnh bên dưới. Cuộn xuống cài đặt ngày để kiểm tra cấu hình múi giờ php.
Icinga 2 lưu trữ người dùng, danh bạ và các dữ liệu thu thập khác trong một cơ sở dữ liệu RDBMS cụ thể, chẳng hạn như MySQL, SQLite hoặc PostgreSQL. Trong hướng dẫn này, chúng tôi sẽ cấu hình Icinga với cơ sở dữ liệu MariaDB, một nhánh của cơ sở dữ liệu MySQL, làm phần phụ trợ. Phát hành lệnh bên dưới để cài đặt cơ sở dữ liệu MariaDB và mô-đun PHP cần thiết để truy cập cơ sở dữ liệu mysql.
Sau khi bạn đã cài đặt MariaDB, hãy xác minh xem daemon có đang chạy và lắng nghe các kết nối trên máy chủ cục bộ, cổng 3306 hay không, bằng cách chạy lệnh netstat hoặc ss.
Sau đó, đăng nhập vào bảng điều khiển MySQL và bảo mật tài khoản root MariaDB bằng cách đưa ra các lệnh sau.
Bây giờ chúng ta sẽ bảo mật MariaDB bằng cách thực thi tập lệnhmysql_secure_installationdo các gói cài đặt từ kho lưu trữ Debian cung cấp. Trong khi chạy, tập lệnh sẽ hỏi một loạt các câu hỏi được thiết kế để bảo mật cơ sở dữ liệu MariaDB, chẳng hạn như: thay đổi mật khẩu root MySQL, xóa người dùng ẩn danh, vô hiệu hóa đăng nhập root từ xa và xóa cơ sở dữ liệu thử nghiệm. Thực thi tập lệnh bằng cách đưa ra lệnh bên dưới và đảm bảo bạn nhập yes cho tất cả các câu hỏi được hỏi để bảo mật hoàn toàn daemon MySQL. Sử dụng đầu ra tập lệnh bên dưới trừ khi có hướng dẫn.
Để kiểm tra tính bảo mật của MariaDB, hãy thử đăng nhập vào cơ sở dữ liệu từ bảng điều khiển mà không có mật khẩu gốc. Quyền truy cập vào cơ sở dữ liệu sẽ bị từ chối nếu không cung cấp mật khẩu cho tài khoản gốc. Nếu mật khẩu được cung cấp, quá trình đăng nhập sẽ được cấp cho bảng điều khiển MySQL, như được hiển thị trong ảnh chụp màn hình bên dưới.
Tiếp theo, hãy đăng nhập vào bảng điều khiển cơ sở dữ liệu MariaDB và trước tiên, hãy tạo một cơ sở dữ liệu để ứng dụng Icinga2 sử dụng và một người dùng có mật khẩu sẽ được sử dụng để quản lý cơ sở dữ liệu này bằng cách đưa ra các lệnh sau. Thay thế tên cơ sở dữ liệu, người dùng và mật khẩu này cho phù hợp.
Tiếp theo, tạo cơ sở dữ liệu MySQL thứ hai sẽ được sử dụng để lưu trữ người dùng, nhóm giao diện web Icinga2 và dữ liệu tùy chỉnh giao diện web khác bằng cách đưa ra các lệnh sau. Ngoài ra, như trên cơ sở dữ liệu trên, hãy đảm bảo bạn thay thế tên cơ sở dữ liệu và thông tin đăng nhập cho phù hợp và chọn mật khẩu mạnh cho người dùng cơ sở dữ liệu.
Để áp dụng tất cả các thay đổi đã thực hiện cho đến nay, hãy khởi động lại daemon MySQL và Apache và xác minh xem daemon có đang chạy hay không bằng cách phát hành các lệnh sau.
Trong khi cài đặt các tệp nhị phân được biên dịch trước của Icinga2 từ kho lưu trữ Debian 9, một loạt lời nhắc sẽ xuất hiện trên màn hình của bạn để cấu hình ứng dụng. Ở lời nhắc đầu tiên, bạn sẽ được hỏi xem bạn có muốn cấu hình và bật Icinga 2 để sử dụng mô-đun MySQL không. Chọn Có từ lời nhắc và nhấn phím [enter] để tiếp tục như minh họa trong hình ảnh bên dưới.
Trong lời nhắc tiếp theo, bạn sẽ được hỏi xem bạn có muốn cấu hình cơ sở dữ liệu cho icinga2-ido-mysql với tùy chọn dbconfig-common không. Chọn Không từ dấu nhắc và nhấn phím [enter] để hoàn tất cài đặt Icinga 2.
Sau khi Icinga 2 đã được cài đặt, hãy khởi động daemon Icinga 2 và xác minh trạng thái dịch vụ bằng cách chạy các lệnh sau.
Trong bước tiếp theo, hãy cài đặt giao diện web Icinga 2 và các gói tiện ích dòng lệnh từ Debian 9 với sự trợ giúp của lệnh bên dưới.
Trước khi bắt đầu cấu hình Icinga 2 từ web, hãy khởi động lại daemon Icinga 2 để chọn tất cả các thay đổi và xác minh trạng thái ứng dụng bằng cách đưa ra lệnh bên dưới.
Tiếp theo, xóa tệp index.html mặc định được máy chủ web Apache cài đặt vào đường dẫn webroot và cũng xóa tệp info.php đã tạo trước đó.
Bây giờ hãy cài đặt lược đồ MySQL cho cơ sở dữ liệu Icinga bằng cách thực hiện lệnh sau. Lược đồ cơ sở dữ liệu MySQL nằm trong thư mục /usr/share/icinga2-ido-mysql/schema/.
Để thực hiện cài đặt Icinga 2 từ web, hãy tạo mã thông báo cài đặt bằng lệnh sau. Hãy đảm bảo rằng bạn ghi lại mã thông báo này, vì chúng tôi sẽ ghi nó sau trong giao diện web khi được yêu cầu.
Trong trường hợp bạn không tìm thấy mã thông báo này sau đó, bạn có thể chạy lệnh bên dưới để hiển thị mã thông báo đã tạo.
Bây giờ hãy tiến hành quy trình cài đặt giao diện web Icinga2 bằng cách mở trình duyệt và điều hướng địa chỉ IP hoặc tên miền của máy chủ của bạn qua giao thức HTTP đến URL sau.
http://your_domain.tld/icingaweb2/setup
Trên màn hình cài đặt đầu tiên, bạn sẽ được yêu cầu ghi lại mã thông báo đã tạo trước đó để bắt đầu quy trình cài đặt, như được hiển thị trong ảnh chụp màn hình bên dưới. Sau khi thêm mã thông báo, hãy nhấn nút Tiếp theo để tiếp tục quá trình cài đặt.
Trên màn hình cài đặt tiếp theo, bạn sẽ được yêu cầu bật một số mô-đun để cài đặt web Icinga 2. Chọn mô-đun Doc và Monitoring và nhấn nút Tiếp theo để tiếp tục, như minh họa trong hình ảnh bên dưới.
Tiếp theo, trình cài đặt web Icinga2 sẽ thực hiện một loạt các kiểm tra mô-đun PHP và hệ thống để phát hiện xem tất cả các yêu cầu có đáp ứng để tiếp tục quá trình cài đặt hay không. Cuộn xuống danh sách tất cả các mô-đun PHP bắt buộc đã được cài đặt và cấu hình đúng cách, sau đó nhấn nút Tiếp theo để chuyển đến phần cài đặt tiếp theo, như minh họa trong hình ảnh bên dưới.
Trên màn hình tiếp theo, hãy chọn Cơ sở dữ liệu làm phương pháp xác thực phụ trợ cho Icinga Web 2 và nhấn nút Tiếp theo để tiếp tục.
Ở bước tiếp theo, hãy thêm tên cơ sở dữ liệu MySQL của Icinga 2 Web và thông tin xác thực truy cập cho cơ sở dữ liệu này. Cơ sở dữ liệu này sẽ được sử dụng để lưu trữ người dùng và nhóm giao diện web Icinga 2. Sử dụng thông tin cơ sở dữ liệu cho cơ sở dữ liệu thứ hai được tạo trước đó. Thêm icingaweb_db làm tên cho tài nguyên này và giữ nguyên các biến Host, Port và Character set theo mặc định. Không kiểm tra các tùy chọn Persistent và SSL và nhấn vào nút Validate Configuration để xác thực kết nối cơ sở dữ liệu, như được hiển thị trong hình ảnh bên dưới. Khi bạn hoàn tất, hãy nhấn vào nút Next để chuyển đến phần cài đặt tiếp theo.
Bây giờ hãy đặt tên cho xác thực cơ sở dữ liệu được sao lưu và nhấn vào nút Next để tiếp tục, như được minh họa trong ảnh chụp màn hình bên dưới.
Trên màn hình tiếp theo, hãy cung cấp tên người dùng quản trị để quản lý giao diện web Icinga2 và chọn mật khẩu mạnh cho tài khoản này. Khi bạn hoàn tất, hãy nhấn nút Next để chuyển sang màn hình cài đặt tiếp theo.
Cấu hình ứng dụng Icinga và cấu hình ghi nhật ký với các thiết lập sau và khi bạn hoàn tất, hãy nhấn nút Next để tiếp tục.
Ở màn hình tiếp theo, một thông báo sẽ thông báo cho bạn biết rằng Icinga Web2 đã được cấu hình thành công và một báo cáo chi tiết sẽ hiển thị tất cả các cấu hình đã thực hiện cho đến nay. Xem lại báo cáo và nhấn nút Tiếp theo để tiếp tục đến phần cài đặt tiếp theo.
Nhấn nút Tiếp theo để tiếp tục cấu hình mô-đun giám sát Icinga 2, như được hiển thị trong hình ảnh bên dưới.
Trên màn hình tiếp theo, thêm tên cho Icinga2 Backend, chọn IDO làm loại backend và nhấn nút Tiếp theo để tiếp tục.
Quay lại bảng điều khiển của máy chủ, mở và chỉnh sửa tệp cấu hình IDO MySQL của Icinga và thêm thông tin xác thực cơ sở dữ liệu Icinga (thông tin cơ sở dữ liệu đầu tiên), như được hiển thị trong mẫu bên dưới.
ido-mysql.conf trích đoạn tệp:
Lưu tệp và khởi động lại daemon Icinga2 để áp dụng các thiết lập bằng cách đưa ra lệnh sau. Sau đó, quay lại giao diện web Icinga và tiếp tục quá trình cài đặt.
Thêm thông tin cơ sở dữ liệu Icinga để thiết lập môi trường tài nguyên IDO. Sử dụng thông tin cơ sở dữ liệu cho cơ sở dữ liệu được tạo đầu tiên, như minh họa trong hình ảnh bên dưới. Sau khi hoàn tất việc chỉnh sửa thông tin cơ sở dữ liệu, hãy nhấn vào nút Xác thực cấu hình để xác thực Tài nguyên IDO Giám sát Icinga và nhấn vào nút Tiếp theo để chuyển đến màn hình cài đặt tiếp theo.
Cấu hình Icinga Command Transport với các thiết lập sau và nhấn nút Tiếp theo để tiếp tục.
Trên màn hình tiếp theo, hãy giữ nguyên các biến mặc định được cấu hình để giám sát bảo mật như minh họa trong hình ảnh bên dưới và nhấn nút Tiếp theo để tiếp tục.
Trên màn hình tiếp theo, một thông báo mới sẽ thông báo cho bạn rằng mô-đun Giám sát Icinga2 đã được cấu hình thành công. Xem lại báo cáo hiển thị để kiểm tra xem mọi thứ đã được cấu hình đúng chưa và nhấn nút Hoàn tất để hoàn tất quá trình cài đặt.
Sau khi quá trình cài đặt hoàn tất thành công, một thông báo chúc mừng sẽ thông báo cho bạn rằng Icinga Web 2 đã được cài đặt thành công. Nhấp vào liên kết Đăng nhập để được chuyển hướng đến trang đăng nhập Icinga2.
Đăng nhập vào Icinga Web 2 bằng thông tin đăng nhập được cấu hình trong quá trình cài đặt và bạn sẽ được chuyển hướng đến Bảng điều khiển Icinga Web 2, tại đó bạn sẽ thấy danh sách các dịch vụ được giám sát hiện tại và tài nguyên hệ thống thuộc về máy chủ của bạn.
Cuối cùng, hãy đăng nhập lại vào dòng lệnh của máy chủ và thực hiện các lệnh sau để đảm bảo rằng nhật ký Icinga Web 2 sẽ được tạo.
Để buộc khách truy cập duyệt Giao diện Icinga Web 2 qua giao thức HTTPS, tạo tệp .htaccess mới trong đường dẫn gốc tài liệu máy chủ web của bạn với nội dung sau.
.htaccess trích đoạn tệp:
Vậy là xong! Bạn đã cài đặt và định cấu hình thành công ứng dụng giám sát mạng Icinga 2 trên Debian 9.2. Tuy nhiên, vì máy chủ Apache HTTP sử dụng chứng chỉ Tự ký để mã hóa lưu lượng giữa máy chủ và trình duyệt của máy khách, nên một thông báo cảnh báo sẽ luôn được tạo và hiển thị trong trình duyệt của bạn mỗi khi bạn truy cập tên miền của mình. Trong trường hợp này, bạn nên mua chứng chỉ do Cơ quan cấp chứng chỉ đáng tin cậy cấp hoặc nhận cặp chứng chỉ miễn phí từ Let’s Encrypt CA.
Để biết các cấu hình tùy chỉnh khác liên quan đến Icinga 2, hãy truy cập trang tài liệu theo địa chỉ sau: https://www.icinga.com/docs
Icinga, ban đầu là một nhánh của hệ thống giám sát Nagios, là một ứng dụng giám sát mạng hiện đại Nguồn mở, được viết bằng PHP và triển khai rộng rãi trên Linux theo các thành phần Apache/Nginx, PHP và MySQL/MariaDB, còn được gọi là ngăn xếp LAMP hoặc LEMP. Icinga 2 có thể được cấu hình để thông báo cho quản trị viên hệ thống hoặc mạng qua thư, tin nhắn SMS, trò chuyện hoặc các loại cảnh báo khác về mạng, hệ thống, dịch vụ hoặc sự cố mạng liên quan khác và cũng có thể tạo đồ họa về thời gian ngừng hoạt động hoặc hiệu suất của mạng.
Yêu cầu
- Debian 9.2 được cài đặt trên máy tính bare-metal hoặc trên máy chủ riêng ảo.
- Một trong các card giao diện mạng của máy chủ được cấu hình với địa chỉ IP tĩnh.
- Truy cập trực tiếp vào tài khoản gốc qua bảng điều khiển hoặc từ xa qua dịch vụ SSH hoặc quyền root sudo trên tài khoản cục bộ hoặc từ xa.
- Tên miền, riêng tư hoặc công khai, tùy thuộc vào triển khai của bạn, với các bản ghi DNS thích hợp được cấu hình cho các dịch vụ web.
- Dịch vụ thư được cấu hình đúng tại cơ sở của bạn để gửi cảnh báo qua thư.
Cấu hình ban đầu
Trước khi bắt đầu cài đặt và cấu hình công cụ giám sát web Icinga 2 trên máy chủ của riêng bạn, trước tiên hãy đảm bảo hệ thống đáp ứng tất cả các phần mềm yêu cầu để biên dịch và cài đặt ứng dụng. Ở bước đầu tiên, hãy cập nhật kho lưu trữ hệ thống và các gói phần mềm của bạn bằng cách đưa ra lệnh bên dưới.
Mã:
apt update
Mã:
apt upgrade
Mã:
apt install wget bash-completion unzip
Mã:
hostnamectl set-hostname icinga
Mã:
hostnamectl
Mã:
cat /etc/hostname
Mã:
hostname –s
Cuối cùng, khởi động lại máy chủ Debian để áp dụng các bản cập nhật hạt nhân và tên máy chủ thay đổi đúng cách.
Mã:
init 6
Mã:
apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline
Mã:
netstat –tlpn
Mã:
apt install net-tools
Mã:
ss- tulpn
Mã:
ufw allow WWW
Mã:
ufw allow 80/tcp
Mã:
apt-get install -y iptables-persistent
Mã:
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
Mã:
systemctl iptables-persistent save
Mã:
systemctl iptables-persistent reload
Mã:
a2enmod rewrite
Mã:
systemctl restart apache2
http://your_domain.tld
Để truy cập ứng dụng giám sát Icinga 2 qua giao thức HTTPS sẽ bảo mật lưu lượng truy cập cho máy khách của bạn, hãy đưa ra lệnh sau để bật mô-đun SSL của máy chủ web Apache và tệp cấu hình trang web SSL. Ngoài ra, hãy bật mô-đun ghi đè Apache để buộc người dùng truy cập giao diện qua HTTPS.
Mã:
a2enmod ssl rewrite
Mã:
a2ensite default-ssl.conf
Mã:
nano /etc/apache2/sites-enabled/default-ssl.conf
Mã:
Options +FollowSymlinks
AllowOverride All
Require all granted
Mã:
Đóng tệp TLS Apache và mở tệp /etc/apache2/sites-enabled/000-default.conf để chỉnh sửa và thêm các quy tắc viết lại URL giống như đối với tệp cấu hình SSL. Chèn các dòng mã sau câu lệnh DocumentRoot như trong ví dụ bên dưới.
Mã:
Options +FollowSymlinks
AllowOverride All
Require all granted
Cuối cùng, khởi động lại daemon Apache để áp dụng tất cả các quy tắc đã cấu hình cho đến nay và truy cập miền của bạn qua giao thức HTTP. Vì bạn đang sử dụng cặp chứng chỉ Tự ký tự động do Apache cấp khi cài đặt, nên cảnh báo lỗi sẽ hiển thị trên trình duyệt, như trong ảnh chụp màn hình bên dưới.
Mã:
systemctl restart apache2
Chấp nhận cảnh báo để tiếp tục và được chuyển hướng đến trang web mặc định của Apache qua giao thức HTTPS. Trang sau sẽ được hiển thị trong trình duyệt của bạn.
Trong trường hợp ứng dụng tường lửa UFW chặn các kết nối mạng đến cổng HTTPS, bạn nên thêm một quy tắc mới để cho phép lưu lượng HTTPS đi qua tường lửa bằng cách phát hành lệnh sau.
Mã:
ufw allow 'WWW Full'
Mã:
ufw allow 443/tcp
Mã:
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
Mã:
systemctl iptables-persistent save
Mã:
systemctl iptables-persistent reload
Mã:
cp /etc/php/7.0/apache2/php.ini{,.backup}
Mã:
nano /etc/php/7.0/apache2/php.ini
Mã:
php_value max_execution_time 300
php_value memory_limit 128M
php_value max_input_time 300
date.timezone = Europe/London
Nếu bạn muốn tăng tốc độ tải các trang web của mình thông qua plugin OPCache có sẵn cho PHP7, hãy thêm các thiết lập OPCache sau vào cuối tệp cấu hình trình thông dịch PHP, như được nêu chi tiết bên dưới:
Mã:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
Mã:
tail /etc/php/7.0/apache2/php.ini
Mã:
systemctl restart apache2
Mã:
echo ''| tee /var/www/html/info.php
Icinga 2 lưu trữ người dùng, danh bạ và các dữ liệu thu thập khác trong một cơ sở dữ liệu RDBMS cụ thể, chẳng hạn như MySQL, SQLite hoặc PostgreSQL. Trong hướng dẫn này, chúng tôi sẽ cấu hình Icinga với cơ sở dữ liệu MariaDB, một nhánh của cơ sở dữ liệu MySQL, làm phần phụ trợ. Phát hành lệnh bên dưới để cài đặt cơ sở dữ liệu MariaDB và mô-đun PHP cần thiết để truy cập cơ sở dữ liệu mysql.
Mã:
apt install mariadb-server mariadb-client php7.0-mysql
Mã:
netstat –tlpn | grep mysql
Mã:
mysql -h localhost
Mã:
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit
Mã:
sudo mysql_secure_installation
Mã:
LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA TỪNG TỪ NÀY CHO TẤT CẢ
Mã:
MariaDB ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!
Mã:
Để đăng nhập vào MariaDB để bảo mật, chúng ta sẽ cần
Mã:
mật khẩu hiện tại của người dùng root. Nếu bạn vừa cài đặt MariaDB và
Mã:
bạn chưa đặt mật khẩu root, thì mật khẩu sẽ để trống,
Mã:
vì vậy bạn chỉ cần nhấn enter ở đây.
Mã:
Nhập mật khẩu hiện tại cho root (enter nếu không nhập):
Mã:
OK, mật khẩu đã sử dụng thành công, tiếp tục...
Mã:
Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào MariaDB
Mã:
người dùng root mà không có quyền thích hợp.
Mã:
Bạn đã đặt mật khẩu root, vì vậy bạn có thể trả lời 'n' một cách an toàn.
Mã:
Đổi mật khẩu root? [Y/n][B]y[/b]
Mã:
Mật khẩu mới:
Mã:
Nhập lại mật khẩu mới:
Mã:
Đã cập nhật mật khẩu thành công!
Mã:
Đang tải lại bảng đặc quyền..
Mã:
... Thành công!
Mã:
Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ ai
Mã:
đăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng cho
Mã:
họ. Điều này chỉ nhằm mục đích thử nghiệm và để quá trình cài đặt
Mã:
diễn ra suôn sẻ hơn một chút. Bạn nên xóa những người dùng này trước khi chuyển sang
Mã:
môi trường sản xuất.
Mã:
Xóa người dùng ẩn danh? [Y/n][B]y[/b]
Mã:
... Thành công!
Mã:
Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều này
Mã:
đảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.
Mã:
Không cho phép root đăng nhập từ xa? [Y/n][B]y[/b]
Mã:
... Thành công!
Mã:
Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thể
Mã:
truy cập. Cơ sở dữ liệu này cũng chỉ dành cho mục đích thử nghiệm và cần phải xóa
Mã:
trước khi chuyển sang môi trường sản xuất.
Mã:
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n][B]y[/b]
Mã:
- Đang xóa cơ sở dữ liệu thử nghiệm...
Mã:
... Thành công!
Mã:
- Đang xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm...
Mã:
... Thành công!
Mã:
Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi được thực hiện cho đến nay
Mã:
sẽ có hiệu lực ngay lập tức.
Mã:
Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] y
Mã:
... Thành công!
Mã:
Đang dọn dẹp...
Mã:
Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì
Mã:
cài đặt MariaDB của bạn hiện đã an toàn.
Mã:
Cảm ơn bạn đã sử dụng MariaDB!
Mã:
mysql -h localhost -u root
Mã:
mysql -h localhost -u root –p
Tiếp theo, hãy đăng nhập vào bảng điều khiển cơ sở dữ liệu MariaDB và trước tiên, hãy tạo một cơ sở dữ liệu để ứng dụng Icinga2 sử dụng và một người dùng có mật khẩu sẽ được sử dụng để quản lý cơ sở dữ liệu này bằng cách đưa ra các lệnh sau. Thay thế tên cơ sở dữ liệu, người dùng và mật khẩu này cho phù hợp.
Mã:
mysql –u root -p
Mã:
create database icingadb;
grant all privileges on icingadb.* to 'icinga_user'@'localhost' defined by 'icinga_pass';
flush privileges
exit
Tiếp theo, tạo cơ sở dữ liệu MySQL thứ hai sẽ được sử dụng để lưu trữ người dùng, nhóm giao diện web Icinga2 và dữ liệu tùy chỉnh giao diện web khác bằng cách đưa ra các lệnh sau. Ngoài ra, như trên cơ sở dữ liệu trên, hãy đảm bảo bạn thay thế tên cơ sở dữ liệu và thông tin đăng nhập cho phù hợp và chọn mật khẩu mạnh cho người dùng cơ sở dữ liệu.
Mã:
mysql –u root –p
Mã:
create database icinga_users;
grant all privileges on icinga_users.* to 'icinga_user'@'localhost' defined by 'icinga_pass';
flush privileges
exit
Để áp dụng tất cả các thay đổi đã thực hiện cho đến nay, hãy khởi động lại daemon MySQL và Apache và xác minh xem daemon có đang chạy hay không bằng cách phát hành các lệnh sau.
Mã:
systemctl restart mysql apache2
Mã:
systemctl status mysql apache2
Cài đặt Icinga 2
Sau khi đáp ứng tất cả các yêu cầu hệ thống để cài đặt ứng dụng giám sát web của chúng tôi, hãy tiến hành cài đặt ứng dụng cùng với mô-đun MySQL, cần thiết để truy cập cơ sở dữ liệu MySQL, bằng cách phát hành lệnh bên dưới. Icinga 2 có các gói nhị phân được biên dịch trước do kho lưu trữ Debian 9 cung cấp. Việc cài đặt sẽ được thực hiện thông qua trình quản lý gói apt của Debian 9.
Mã:
apt install icinga2 icinga2-ido-mysql
Trong lời nhắc tiếp theo, bạn sẽ được hỏi xem bạn có muốn cấu hình cơ sở dữ liệu cho icinga2-ido-mysql với tùy chọn dbconfig-common không. Chọn Không từ dấu nhắc và nhấn phím [enter] để hoàn tất cài đặt Icinga 2.
Sau khi Icinga 2 đã được cài đặt, hãy khởi động daemon Icinga 2 và xác minh trạng thái dịch vụ bằng cách chạy các lệnh sau.
Mã:
systemctl start icinga2.service
Mã:
systemctl status icinga2.service
Mã:
apt install icingaweb2 icingacli
Mã:
systemctl restart icinga2.service
Mã:
systemctl status icinga2.service
Mã:
rm /var/www/html/index.html
Mã:
rm /var/www/html/info.php
Mã:
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Mã:
icingacli setup token create
Trong trường hợp bạn không tìm thấy mã thông báo này sau đó, bạn có thể chạy lệnh bên dưới để hiển thị mã thông báo đã tạo.
Mã:
icingacli setup token show
Bây giờ hãy tiến hành quy trình cài đặt giao diện web Icinga2 bằng cách mở trình duyệt và điều hướng địa chỉ IP hoặc tên miền của máy chủ của bạn qua giao thức HTTP đến URL sau.
http://your_domain.tld/icingaweb2/setup
Trên màn hình cài đặt đầu tiên, bạn sẽ được yêu cầu ghi lại mã thông báo đã tạo trước đó để bắt đầu quy trình cài đặt, như được hiển thị trong ảnh chụp màn hình bên dưới. Sau khi thêm mã thông báo, hãy nhấn nút Tiếp theo để tiếp tục quá trình cài đặt.
Trên màn hình cài đặt tiếp theo, bạn sẽ được yêu cầu bật một số mô-đun để cài đặt web Icinga 2. Chọn mô-đun Doc và Monitoring và nhấn nút Tiếp theo để tiếp tục, như minh họa trong hình ảnh bên dưới.
Tiếp theo, trình cài đặt web Icinga2 sẽ thực hiện một loạt các kiểm tra mô-đun PHP và hệ thống để phát hiện xem tất cả các yêu cầu có đáp ứng để tiếp tục quá trình cài đặt hay không. Cuộn xuống danh sách tất cả các mô-đun PHP bắt buộc đã được cài đặt và cấu hình đúng cách, sau đó nhấn nút Tiếp theo để chuyển đến phần cài đặt tiếp theo, như minh họa trong hình ảnh bên dưới.
Trên màn hình tiếp theo, hãy chọn Cơ sở dữ liệu làm phương pháp xác thực phụ trợ cho Icinga Web 2 và nhấn nút Tiếp theo để tiếp tục.
Ở bước tiếp theo, hãy thêm tên cơ sở dữ liệu MySQL của Icinga 2 Web và thông tin xác thực truy cập cho cơ sở dữ liệu này. Cơ sở dữ liệu này sẽ được sử dụng để lưu trữ người dùng và nhóm giao diện web Icinga 2. Sử dụng thông tin cơ sở dữ liệu cho cơ sở dữ liệu thứ hai được tạo trước đó. Thêm icingaweb_db làm tên cho tài nguyên này và giữ nguyên các biến Host, Port và Character set theo mặc định. Không kiểm tra các tùy chọn Persistent và SSL và nhấn vào nút Validate Configuration để xác thực kết nối cơ sở dữ liệu, như được hiển thị trong hình ảnh bên dưới. Khi bạn hoàn tất, hãy nhấn vào nút Next để chuyển đến phần cài đặt tiếp theo.
Bây giờ hãy đặt tên cho xác thực cơ sở dữ liệu được sao lưu và nhấn vào nút Next để tiếp tục, như được minh họa trong ảnh chụp màn hình bên dưới.
Trên màn hình tiếp theo, hãy cung cấp tên người dùng quản trị để quản lý giao diện web Icinga2 và chọn mật khẩu mạnh cho tài khoản này. Khi bạn hoàn tất, hãy nhấn nút Next để chuyển sang màn hình cài đặt tiếp theo.
Cấu hình ứng dụng Icinga và cấu hình ghi nhật ký với các thiết lập sau và khi bạn hoàn tất, hãy nhấn nút Next để tiếp tục.
- Kiểm tra Show Stacktraces
- Storage Type = Database
- Logging Type = File
- Logging Level = Error
- File path = /var/log/icingaweb2/icingaweb2.log
Ở màn hình tiếp theo, một thông báo sẽ thông báo cho bạn biết rằng Icinga Web2 đã được cấu hình thành công và một báo cáo chi tiết sẽ hiển thị tất cả các cấu hình đã thực hiện cho đến nay. Xem lại báo cáo và nhấn nút Tiếp theo để tiếp tục đến phần cài đặt tiếp theo.
Nhấn nút Tiếp theo để tiếp tục cấu hình mô-đun giám sát Icinga 2, như được hiển thị trong hình ảnh bên dưới.
Trên màn hình tiếp theo, thêm tên cho Icinga2 Backend, chọn IDO làm loại backend và nhấn nút Tiếp theo để tiếp tục.
Quay lại bảng điều khiển của máy chủ, mở và chỉnh sửa tệp cấu hình IDO MySQL của Icinga và thêm thông tin xác thực cơ sở dữ liệu Icinga (thông tin cơ sở dữ liệu đầu tiên), như được hiển thị trong mẫu bên dưới.
Mã:
nano /etc/icinga2/features-enabled/ido-mysql.conf
Mã:
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
người dùng = "icinga_user",
mật khẩu = "icinga_pass",
máy chủ = "localhost",
cơ sở dữ liệu = "icingadb"
}
Lưu tệp và khởi động lại daemon Icinga2 để áp dụng các thiết lập bằng cách đưa ra lệnh sau. Sau đó, quay lại giao diện web Icinga và tiếp tục quá trình cài đặt.
Mã:
systemctl restart icinga2.service
Cấu hình Icinga Command Transport với các thiết lập sau và nhấn nút Tiếp theo để tiếp tục.
- Tên truyền tải = icinga2
- Loại truyền tải = Tệp lệnh cục bộ
- Tệp lệnh = /var/run/icinga2/cmd/icinga2.cmd
Trên màn hình tiếp theo, hãy giữ nguyên các biến mặc định được cấu hình để giám sát bảo mật như minh họa trong hình ảnh bên dưới và nhấn nút Tiếp theo để tiếp tục.
Trên màn hình tiếp theo, một thông báo mới sẽ thông báo cho bạn rằng mô-đun Giám sát Icinga2 đã được cấu hình thành công. Xem lại báo cáo hiển thị để kiểm tra xem mọi thứ đã được cấu hình đúng chưa và nhấn nút Hoàn tất để hoàn tất quá trình cài đặt.
Sau khi quá trình cài đặt hoàn tất thành công, một thông báo chúc mừng sẽ thông báo cho bạn rằng Icinga Web 2 đã được cài đặt thành công. Nhấp vào liên kết Đăng nhập để được chuyển hướng đến trang đăng nhập Icinga2.
Đăng nhập vào Icinga Web 2 bằng thông tin đăng nhập được cấu hình trong quá trình cài đặt và bạn sẽ được chuyển hướng đến Bảng điều khiển Icinga Web 2, tại đó bạn sẽ thấy danh sách các dịch vụ được giám sát hiện tại và tài nguyên hệ thống thuộc về máy chủ của bạn.
Cuối cùng, hãy đăng nhập lại vào dòng lệnh của máy chủ và thực hiện các lệnh sau để đảm bảo rằng nhật ký Icinga Web 2 sẽ được tạo.
Mã:
mkdir -p /var/log/icingaweb2/
Mã:
chgrp -R icingaweb2 /var/log/icingaweb2/
Mã:
chmod -R 775 /var/log/icingaweb2/
Mã:
nano /var/www/html/.htaccess
Mã:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteEngine on
Options -Indexes[B] [/b]
Để biết các cấu hình tùy chỉnh khác liên quan đến Icinga 2, hãy truy cập trang tài liệu theo địa chỉ sau: https://www.icinga.com/docs