Hướng dẫn đăng ký tài khoản quản trị VPS TotHost
Bài viết hướng dẫn chi tiết đăng ký tài khoản quản trị VPS trên cổng CloudGate (billing.tothost.vn) TotHost.
01/10/2024
Đang Tải...
Tiếp nối sau bài viết giới thiệu Prometheus: Bước tiến vượt trội trong giám sát hệ thống, tại đây mình sẽ giới thiệu các bạn cách cài đặt Prometheus. Sau khi tìm hiểu tính năng và định nghĩa chung của Prometheus chắc hẳn các bạn đang muốn xem nó hoạt động thực sự như thế nào.
Cùng mình thử nghiệm Prometheus trên môi trường Development trước khi quyết định triển khai trên môi trường Production nhé.
Mục lục
Mục lục
Nếu bạn chưa biết phần mềm giám sát Prometheus là gì, hãy theo dõi tại đây: Prometheus: Bước tiến vượt trội trong giám sát hệ thống.
Hiện có 2 cách thông dụng nhất là cài đặt Prometheus bằng Docker container hoặc trên máy chủ Linux.
Tuy nhiên để tối giản thời gian thử nghiệm mình sẽ làm trên Docker container Lab, môi trường máy chủ cũng sẽ tương tự, không khác nhiều cách cấu hình.
Có điều chú ý là trên Container khá thoải mái với việc Port và Network Group, các bạn cần rất cẩn thận bảo mật phần giao tiếp với các dịch vụ khác khi cài đặt trên máy chủ kết nối internet.
Hiện tại Docker Hub đã có image Prometheus “officially” tuy nhiên hãy làm quen việc cài đặt từ source code để sau này có thể thực hiện trên máy chủ thật. Đầu tiên các bạn hãy chạy một Container vớii Image ubuntu:16.04
$ docker network create --driver bridge lab-prom
$ docker run -itd --network=lab-prom -v /Users/vulong/Downloads/lab-prom/prom-1:/var/log -p 9090:9090 --name prom-1 ubuntu:16.04
Các bạn có thể tìm các phiên bản Prometheus tại đây. Sử dụng wget để tải xuống bản Release:
$ cd /opt/
$ wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-amd64.tar.gz
$ tar -xzvf prometheus-2.20.1.linux-amd64.tar.gz
$ useradd --no-create-home --shell /bin/false prometheus
mkdir /etc/prometheus
mkdir /var/lib/prometheus
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
cp prometheus-2.20.1.linux-amd64/prometheus /usr/local/bin/
cp prometheus-2.20.1.linux-amd64/promtool /usr/local/bin/
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
chmod +x /usr/local/bin/prometheus /usr/local/bin/promtool
cp -r prometheus-2.20.1.linux-amd64/consoles /etc/prometheus
cp -r prometheus-2.20.1.linux-amd64/console_libraries /etc/prometheus
chown -R prometheus:prometheus /etc/prometheus/consoles
chown -R prometheus:prometheus /etc/prometheus/console_libraries
$ vi /etc/prometheus/prometheus.yml
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus_master'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
$ sudo mkdir -p /data/prometheus
$ /usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/prometheus \
--web.console.libraries=/usr/share/prometheus/console_libraries \
--web.console.templates=/usr/share/prometheus/consoles
Sau khi chạy thành công bạn có thể vào website quản lý ở máy host với địa chỉ http://103.197.185.206:9090
Hiện tại với một server Prometheus nó sẽ tự thu thập dữ liệu của chính nó. Để thử nghiệm việc lấy dữ liệu thực tế các dịch vụ khác, mình sẽ dựng thêm một container chạy Apache ActiveMQ.
Như đã nêu ở bài trước những dịch vụ cần theo dõi theo thời gian như Queue sẽ rất thích hợp khi áp dụng Prometheus.
Chạy Container với image vromero/activemq-artemis:
$ docker run -it --rm \
--network=lab-prom \
-p 8161:8161 \
-p 61616:61616 \
-e ARTEMIS_USERNAME=admin \
-e ARTEMIS_PASSWORD=123456 \
-e ENABLE_JMX=true \
-e JMX_PORT=1199 \
-e JMX_RMI_PORT=1198 \
-p 9404:9404 \
-e ENABLE_JMX_EXPORTER=true \
--name acqueue
vromero/activemq-artemis
Các bạn có thể tìm hiểu thêm cách config image này tại Github của tác giả.
Image này đã có sẵn Exporter nên chúng ta chỉ cần khai báo target để Prometheus lấy thông tin
Endpoint: acqueue:9404
Chúng ta sửa lại /etc/prometheus/prometheus.yml một chút:
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'prometheus_master'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'activemq_artemis'
scrape_interval: 5s
static_configs:
- targets: ['acqueue:9404']
Ở đây, Node_memory_Memfree_bytes biểu thị dung lượng bộ nhớ trống còn lại trên hệ thống, không bao gồm bộ nhớ cache và bộ đệm có thể bị xóa.
Về cơ bản dựa vào những thông số theo thời gian trên, chúng ta có thể biết được sớm những hiện tượng gây lỗi cho hệ thống. Để các Chart và màu sắc đẹp hơn, dễ nhìn hơn, ở bài viết sau mình sẽ thử nghiệm thêm Grafana và kết nối với các dịch vụ Alert.