Cài đặt Prometheus và chạy Prometheus như một dịch vụ (service) trên Ubuntu 20.04
Để chạy Prometheus như một dịch vụ (service) trên Ubuntu 20.04, bạn sẽ muốn sử dụng systemd
, hệ thống quản lý dịch vụ tiêu chuẩn trên nhiều bản phân phối Linux.
Dưới đây là các bước để thiết lập Prometheus như một dịch vụ bằng systemd
:
Tải và giải nén Prometheus (nếu bạn chưa làm)
wget https://github.com/prometheus/prometheus/releases/download/vX.X.X/prometheus-X.X.X.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz
cd prometheus-*
Lưu ý: Thay X.X.X
bằng phiên bản thích hợp bạn muốn tải về.
Di chuyển các file tin Prometheus và thiết lập thư mục
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo mv prometheus.yml /etc/prometheus
Tạo một file tin dịch vụ systemd
sudo nano /etc/systemd/system/prometheus.service
Thêm nội dung sau vào file tin:
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Tạo user và group cho Prometheus
sudo useradd -M -s /bin/false prometheus
Gán quyền cho thư mục và file:
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
Khởi động và bật dịch vụ
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
Kiểm tra tình trạng dịch vụ
sudo systemctl status prometheus
Bây giờ, Prometheus sẽ chạy như một dịch vụ trên hệ thống của bạn và tự động khởi động lại khi máy khởi động. Bạn có thể truy cập Prometheus qua trình duyệt tại địa chỉ http://your_server_ip:9090/
.
Hướng dẫn cài đặt Alertmanager
Alertmanager là một thành phần của hệ sinh thái Prometheus được thiết kế để xử lý cảnh báo. Nếu bạn muốn nhận cảnh báo từ Prometheus và chuyển tiếp chúng đến các hệ thống thông báo khác như Slack, email, PagerDuty, v.v., bạn cần cài đặt và cấu hình Alertmanager.
Bước 1: Tải và giải nén Alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
tar xvzf alertmanager-0.23.0.linux-amd64.tar.gz
cd alertmanager-0.23.0.linux-amd64
Bước 2: Di chuyển các file binary
sudo mv alertmanager /usr/local/bin/
sudo mv amtool /usr/local/bin/
Bước 3: Tạo cấu hình cơ bản cho Alertmanager
Tạo một file alertmanager.yml
trong thư mục của bạn với nội dung cơ bản:
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 5m
repeat_interval: 3h
receiver: 'slack-notifications'
receivers:
- name: 'slack-notifications'
slack_configs:
- api_url: 'YOUR_SLACK_WEBHOOK_URL'
channel: '#NAME_CHANNEL'
send_resolved: true
Đảm bảo thay thế YOUR_SLACK_WEBHOOK_URL
với Webhook URL mà bạn đã tạo từ Slack.
Bước 4: Chạy Alertmanager
./alertmanager --config.file=alertmanager.yml
Sau khi Alertmanager đang chạy, bạn cần cấu hình Prometheus để gửi cảnh báo đến Alertmanager bằng cách thêm URL của Alertmanager vào file cấu hình prometheus.yml
.
Ví dụ:
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
Đảm bảo khởi động lại Prometheus sau khi thay đổi cấu hình.
Hướng dẫn chi tiết cách chạy Alertmanager dưới dạng một dịch vụ systemd
Dưới đây là hướng dẫn chi tiết cách chạy Alertmanager dưới dạng một dịch vụ systemd trên một hệ thống Linux:
Chuẩn bị môi trường
Đầu tiên, bạn nên đảm bảo rằng Alertmanager và tệp cấu hình alertmanager.yml
của bạn đã được đặt tại một vị trí cụ thể trên hệ thống. Để đơn giản, chúng ta sẽ giả định rằng Alertmanager nằm trong thư mục /opt/alertmanager
và tệp cấu hình nằm trong thư mục /etc/alertmanager
.
Tạo file dịch vụ systemd
Tạo một file mới tại /etc/systemd/system/alertmanager.service
với nội dung sau:
sudo nano /etc/systemd/system/alertmanager.service
Dán nội dung sau vào trình soạn thảo:
[Unit]
Description=Alertmanager Service
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=alertmanager
Group=alertmanager
ExecStart=/opt/alertmanager/alertmanager --config.file=/etc/alertmanager/alertmanager.yml
[Install]
WantedBy=multi-user.target
Tạo người dùng và nhóm cho Alertmanager
Để tăng cường bảo mật, chúng ta nên chạy Alertmanager dưới một người dùng không có quyền đặc biệt:
sudo useradd --no-create-home --shell /bin/false alertmanager
Phân quyền cho thư mục và file:
sudo chown -R alertmanager:alertmanager /opt/alertmanager
sudo chown -R alertmanager:alertmanager /etc/alertmanager
Khởi động và kích hoạt dịch vụ
sudo systemctl daemon-reload
sudo systemctl start alertmanager
sudo systemctl enable alertmanager
Kiểm tra trạng thái dịch vụ
sudo systemctl status alertmanager
Điều này sẽ hiển thị trạng thái của dịch vụ Alertmanager, và nếu mọi thứ đều hoạt động đúng, bạn sẽ thấy rằng nó đang chạy.
Chúc mừng, bạn đã thiết lập thành công Alertmanager dưới dạng một dịch vụ systemd! Điều này có nghĩa là Alertmanager sẽ tự động bắt đầu mỗi khi hệ thống của bạn khởi động lại.