Cachet là một hệ thống trang trạng thái nguồn mở được viết bằng PHP. Nó cho phép bạn theo dõi thời gian ngừng hoạt động và lỗi hệ thống trên cơ sở hạ tầng của bạn. Cachet cung cấp API JSO, thậm chí cả báo cáo, số liệu, nhiều phương thức thông báo và xác thực Hai yếu tố.
Trong hướng dẫn sau, chúng tôi sẽ chỉ cho bạn cách cài đặt trang trạng thái Cachet trên máy chủ Debian 12. Bạn sẽ chạy Cachet dưới dạng vùng chứa Docker với cơ sở dữ liệu PostgreSQL và máy chủ web Nginx.
Trước tiên, hãy chạy lệnh bên dưới để cài đặt các gói curl và ca-certificates.
Bây giờ hãy thêm khóa GPG cho kho lưu trữ Docker bằng cách thực hiện lệnh sau lệnh.
Tiếp theo, thêm kho lưu trữ Docker Engine cho hệ thống Debian bằng lệnh bên dưới.
Sau khi kho lưu trữ Docker được thêm vào, hãy cập nhật và làm mới chỉ mục gói của bạn bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E
Bây giờ hãy cài đặt Docker Engine vào hệ thống của bạn bằng lệnh sau. Nhập Y để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, dịch vụ Docker sẽ tự động chạy. Kiểm tra trạng thái dịch vụ Docker bằng lệnh bên dưới.
Bạn sẽ thấy đầu ra chạy như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Để đảm bảo rằng người dùng của bạn có thể thực thi và chạy container, bạn phải thêm nó vào nhóm docker bằng lệnh bên dưới.
Cuối cùng, hãy đăng nhập với tư cách là người dùng của bạn và thực hiện lệnh docker bên dưới để chạy container hello-world.
Nếu cấu hình của bạn thành công, bạn sẽ nhận được đầu ra 'Hello Docker' như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E
Tải xuống dự án Cachet vào thư mục cachet-docker và vào đó.
Mở tệp docker-compose.yml bằng lệnh trình chỉnh sửa nano sau.
Thay đổi mặc định cổng máy chủ đến 8000 như sau. Bạn cũng có thể tùy chỉnh các chi tiết cơ sở dữ liệu bằng thông tin của mình và giữ nguyên phiên bản Cachet mặc định hiện tại là 2.4.
Lưu tệp và thoát.
Bây giờ hãy chạy các lệnh docker sau để xây dựng hình ảnh được lưu trong bộ nhớ đệm của bạn và chạy các thùng chứa cho cả Cachet và PostgreSQL.
Bên dưới, bạn có thể thấy ảnh chụp màn hình khi xây dựng hình ảnh Docker cho Cachet.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22288%22%3E%3C/svg%3E
Dưới đây là ảnh chụp màn hình khi chạy các container/dịch vụ cho cả Cachet và PostgreSQL.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22355%22%3E%3C/svg%3E
Tại các bản ghi chi tiết từ container Cachet, bạn sẽ tìm thấy lỗi về cấu hình APP_KEY. Sao chép APP_KEY đã tạo và nhấn Ctrl+c để kết thúc các vùng chứa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2299%22%3E%3C/svg%3E
Tiếp theo, mở lại tệp docker-compose.yml bằng trình chỉnh sửa nano.
Thay đổi mặc định Tham số APP_KEY như sau. Đảm bảo bao gồm chuỗi base64.
Lưu tệp và thoát.
Bây giờ hãy chạy lệnh docker bên dưới để chấm dứt các container cho Cachet và PostgreSQL, sau đó khởi động lại.
Sau khi các container khởi động, hãy xác minh danh sách các container đang chạy bằng cách sử dụng lệnh sau lệnh.
Như bạn có thể thấy bên dưới, cả vùng chứa Cachet và PostgreSQL đều đang chạy. Bộ chứa Cachet đang chạy trên cổng 8000.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22132%22%3E%3C/svg%3E
Cài đặt Nginx vào máy chủ Debian của bạn bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22350%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/cachet bằng lệnh nano editor bên dưới.
Chèn cấu hình bên dưới và đảm bảo thay đổi tham số server_name bằng tên miền của bạn.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chạy lệnh Nginx bên dưới để kích hoạt khối máy chủ Cachet và kiểm tra cú pháp Nginx của bạn. Nếu bạn có cú pháp đúng, bạn sẽ nhận được kết quả đầu ra là 'cú pháp ổn'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22141%22%3E%3C/svg%3E
Cuối cùng, khởi động lại máy chủ web Nginx để áp dụng cấu hình khối máy chủ Cachet và xác minh dịch vụ Nginx để đảm bảo rằng đang chạy.
Nếu Nginx đang chạy, bạn sẽ nhận được đầu ra active(running).
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Đảm bảo rằng UFW đã được bật, bây giờ hãy chạy lệnh sau để bật cấu hình 'Nginx Full' trên UFW. Điều này sẽ cho phép lưu lượng truy cập cho cả giao thức HTTP và HTTPS đến máy chủ web Nginx của bạn.
Bây giờ hãy xác minh danh sách các quy tắc được bật trong UFW bằng lệnh bên dưới.
Bạn sẽ thấy cấu hình 'Nginx Full' được bật trên UFW.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22573%22%20height=%22293%22%3E%3C/svg%3E
Vì vậy, hãy chạy lệnh bên dưới để cài đặt Certbot và plugin Certbot Nginx. Nhập Y để xác nhận cài đặt.
Sau khi cài đặt hoàn tất, hãy thực hiện lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS cho cài đặt Cachet của bạn. Đảm bảo thay đổi tên miền chi tiết và địa chỉ email bằng thông tin của bạn.
Sau khi mọi thứ hoàn tất, chứng chỉ SSL/TLS của bạn sẽ được lưu trữ trong thư mục /etc/lestencrypt/live/status.howtoforge.local. Ngoài ra, Cachet của bạn phải được bảo mật thông qua HTTPS.
Chọn Trình điều khiển bộ đệm, Trình điều khiển hàng đợi và Trình điều khiển phiên mặc định cho Cơ sở dữ liệu. Sau đó, nhập thông tin chi tiết về máy chủ thư của bạn.
Nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22406%22%3E%3C/svg%3E
Bây giờ hãy thiết lập tên trang trạng thái, múi giờ mặc định và ngôn ngữ mặc định. Sau đó nhấp vào Tiếp theo một lần nữa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22428%22%3E%3C/svg%3E
Bây giờ, hãy tạo một người dùng quản trị mới cho Cachet bằng cách nhập tên người dùng, email và mật khẩu của bạn. Sau đó, nhấp vào Hoàn tất thiết lập để xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22402%22%3E%3C/svg%3E
Sau khi hoàn tất, bạn sẽ thấy thông báo sau - nhấp vào Đi tới bảng điều khiển.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22360%22%3E%3C/svg%3E
Đăng nhập vào Cache bằng tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22575%22%3E%3C/svg%3E
Nếu cài đặt thành công, bạn sẽ nhận được bảng điều khiển Cachet như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22394%22%3E%3C/svg%3E
Trong hướng dẫn sau, chúng tôi sẽ chỉ cho bạn cách cài đặt trang trạng thái Cachet trên máy chủ Debian 12. Bạn sẽ chạy Cachet dưới dạng vùng chứa Docker với cơ sở dữ liệu PostgreSQL và máy chủ web Nginx.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo rằng bạn có những điều sau:- Máy chủ Debian 12.
- Người dùng không phải root có quyền sudo.
- Đã cài đặt và định cấu hình UFW.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
Cài đặt Docker Engine
Trong ví dụ này, bạn sẽ cài đặt Cachet dưới dạng vùng chứa thông qua Docker. Vì vậy, bạn cần cài đặt Docker engine vào hệ thống Debian của mình. Trong ví dụ này, bạn sẽ sử dụng các gói Docker engine chính thức.Trước tiên, hãy chạy lệnh bên dưới để cài đặt các gói curl và ca-certificates.
Mã:
sudo apt install ca-certificates curl -y
Mã:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
Mã:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22197%22%3E%3C/svg%3E
Bây giờ hãy cài đặt Docker Engine vào hệ thống của bạn bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22268%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, dịch vụ Docker sẽ tự động chạy. Kiểm tra trạng thái dịch vụ Docker bằng lệnh bên dưới.
Mã:
sudo systemctl status docker
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22228%22%3E%3C/svg%3E
Để đảm bảo rằng người dùng của bạn có thể thực thi và chạy container, bạn phải thêm nó vào nhóm docker bằng lệnh bên dưới.
Mã:
sudo usermod -aG sudo alice
Mã:
su - alice
docker run hello-world
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22384%22%3E%3C/svg%3E
Chạy Cachet với Docker và cơ sở dữ liệu PostgreSQL
Sau khi cài đặt Docker, bạn cần tải xuống dự án Cachet và cấu hình cài đặt của mình. Trong trường hợp này, bạn sẽ cài đặt và chạy Cachet với tư cách là người dùng không phải root với một vùng chứa Docker.Tải xuống dự án Cachet vào thư mục cachet-docker và vào đó.
Mã:
git clone https://github.com/cachethq/Docker.git cachet-docker
cd cachet-docker
Mã:
nano docker-compose.yml
Mã:
ports:
- 8000:8000
Bây giờ hãy chạy các lệnh docker sau để xây dựng hình ảnh được lưu trong bộ nhớ đệm của bạn và chạy các thùng chứa cho cả Cachet và PostgreSQL.
Mã:
docker compose build
docker compose up
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22288%22%3E%3C/svg%3E
Dưới đây là ảnh chụp màn hình khi chạy các container/dịch vụ cho cả Cachet và PostgreSQL.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22355%22%3E%3C/svg%3E
Tại các bản ghi chi tiết từ container Cachet, bạn sẽ tìm thấy lỗi về cấu hình APP_KEY. Sao chép APP_KEY đã tạo và nhấn Ctrl+c để kết thúc các vùng chứa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2299%22%3E%3C/svg%3E
Tiếp theo, mở lại tệp docker-compose.yml bằng trình chỉnh sửa nano.
Mã:
nano docker-compose.yml
Mã:
APP_KEY=base64:WfKUhY0wAOyr5hkxoctZUSWPGdXbBUWFvNLCoI7kTU8=
Bây giờ hãy chạy lệnh docker bên dưới để chấm dứt các container cho Cachet và PostgreSQL, sau đó khởi động lại.
Mã:
docker compose down
docker compose up -d
Mã:
docker compose ps
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22132%22%3E%3C/svg%3E
Thiết lập Nginx làm proxy ngược
Bây giờ Cachet đang chạy như một bộ chứa trên cổng 8000, bạn sẽ cài đặt và cấu hình Nginx làm proxy ngược cho Cachet.Cài đặt Nginx vào máy chủ Debian của bạn bằng lệnh bên dưới.
Mã:
sudo apt install nginx -y
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22350%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy tạo cấu hình khối máy chủ Nginx mới /etc/nginx/sites-available/cachet bằng lệnh nano editor bên dưới.
Mã:
sudo nano /etc/nginx/sites-available/cachet
Mã:
server {
listen 80;
server_name status.howtoforge.local;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Tiếp theo, chạy lệnh Nginx bên dưới để kích hoạt khối máy chủ Cachet và kiểm tra cú pháp Nginx của bạn. Nếu bạn có cú pháp đúng, bạn sẽ nhận được kết quả đầu ra là 'cú pháp ổn'.
Mã:
sudo ln -s /etc/nginx/sites-available/cachet /etc/nginx/sites-enabled/
sudo nginx -t
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22141%22%3E%3C/svg%3E
Cuối cùng, khởi động lại máy chủ web Nginx để áp dụng cấu hình khối máy chủ Cachet và xác minh dịch vụ Nginx để đảm bảo rằng đang chạy.
Mã:
sudo systemctl restart nginx
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Thiết lập UFW (Uncomplicated Tường lửa)
Trước khi truy cập Cachet, bạn phải đảm bảo cả hai cổng HTTP và HTTPS đều được phép. Trên Ubuntu, bạn sẽ cho phép lưu lượng truy cập đến cả HTTP và HTTPS thông qua UFW (Tường lửa đơn giản).Đảm bảo rằng UFW đã được bật, bây giờ hãy chạy lệnh sau để bật cấu hình 'Nginx Full' trên UFW. Điều này sẽ cho phép lưu lượng truy cập cho cả giao thức HTTP và HTTPS đến máy chủ web Nginx của bạn.
Mã:
sudo ufw allow 'Nginx Full'
Mã:
sudo ufw status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22573%22%20height=%22293%22%3E%3C/svg%3E
Bảo mật Cachet bằng HTTPS
Lúc này, Cachet của bạn có thể truy cập được qua Nginx. Để bảo mật cài đặt của bạn, bạn sẽ bật HTTPS cho Cachet qua SSL từ Letsencrypt.Vì vậy, hãy chạy lệnh bên dưới để cài đặt Certbot và plugin Certbot Nginx. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-nginx-certbot
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d status.howtoforge.local
Cài đặt Cachet
Khởi chạy trình duyệt web ưa thích của bạn và truy cập cài đặt Cachet https://status.howtoforge.local/. Nếu cài đặt thành công, bạn sẽ nhận được trang sau.Chọn Trình điều khiển bộ đệm, Trình điều khiển hàng đợi và Trình điều khiển phiên mặc định cho Cơ sở dữ liệu. Sau đó, nhập thông tin chi tiết về máy chủ thư của bạn.
Nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22406%22%3E%3C/svg%3E
Bây giờ hãy thiết lập tên trang trạng thái, múi giờ mặc định và ngôn ngữ mặc định. Sau đó nhấp vào Tiếp theo một lần nữa.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22428%22%3E%3C/svg%3E
Bây giờ, hãy tạo một người dùng quản trị mới cho Cachet bằng cách nhập tên người dùng, email và mật khẩu của bạn. Sau đó, nhấp vào Hoàn tất thiết lập để xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22402%22%3E%3C/svg%3E
Sau khi hoàn tất, bạn sẽ thấy thông báo sau - nhấp vào Đi tới bảng điều khiển.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22360%22%3E%3C/svg%3E
Đăng nhập vào Cache bằng tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22575%22%3E%3C/svg%3E
Nếu cài đặt thành công, bạn sẽ nhận được bảng điều khiển Cachet như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22394%22%3E%3C/svg%3E