Cách sử dụng Prometheus để giám sát server Ubuntu 14.04 của bạn
Prometheus là một hệ thống giám sát open-souce được phát triển bởi SoundCloud. Giống như các hệ thống giám sát khác, chẳng hạn như InfluxDB và Graphite, Prometheus lưu trữ tất cả dữ liệu của nó trong database chuỗi thời gian. Tuy nhiên, nó cung cấp mô hình dữ liệu đa chiều và ngôn ngữ truy vấn mạnh mẽ, cho phép administrator hệ thống không chỉ dễ dàng tinh chỉnh các định nghĩa về số liệu của họ mà còn tạo ra các báo cáo chính xác hơn.Ngoài ra, dự án Prometheus cũng bao gồm PromDash (một công cụ dựa trên trình duyệt được dùng để phát triển trang tổng quan tùy chỉnh) và một AlertManager thử nghiệm có khả năng gửi cảnh báo qua e-mail, Flowdock, Slack, HipChat và hơn thế nữa.
Trong hướng dẫn này, bạn sẽ học cách cài đặt, cấu hình và sử dụng Prometheus Server, Node Exporter và PromDash.
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
- Một server Ubuntu 14.04 64-bit với user không phải root có quyền sudo .
Lưu ý: Nếu bạn phải sử dụng server 32 bit, hãy đảm bảo bạn thay thế -amd64 bằng -386 trong tất cả các tên file và liên kết được đề cập trong hướng dẫn này.
Bước 1 - Cài đặt Server Prometheus
Đầu tiên, tạo một folder mới để lưu trữ tất cả các file bạn download trong hướng dẫn này và chuyển đến đó.
- mkdir ~/Downloads
- cd ~/Downloads
Sử dụng wget
để download bản dựng mới nhất của server Prometheus và database chuỗi thời gian từ GitHub.
- wget "https://github.com/prometheus/prometheus/releases/download/0.15.1/prometheus-0.15.1.linux-amd64.tar.gz"
Hệ thống giám sát Prometheus bao gồm một số thành phần, mỗi thành phần cần được cài đặt riêng biệt. Giữ tất cả các thành phần bên trong một folder mẹ là một ý tưởng hay, vì vậy hãy tạo một folder và một folder con bổ sung để lưu trữ tất cả các file binary của server Prometheus.
- mkdir -p ~/Prometheus/server
Nhập folder bạn vừa tạo.
- cd ~/Prometheus/server
Sử dụng tar
để extract prometheus-0.15.1.linux-amd64.tar.gz
.
- tar -xvzf ~/Downloads/prometheus-0.15.1.linux-amd64.tar.gz
Điều này hoàn tất quá trình cài đặt server Prometheus. Xác minh cài đặt bằng lệnh :
- ./prometheus -version
Bạn sẽ thấy thông báo sau trên màn hình của bạn :
prometheus, version 0.15.1 (branch: master, revision: 64349aa) build user: julius@julius-thinkpad build date: 20150727-17:56:00 go version: 1.4.2
Bước 2 - Cài đặt Node Exporter
Prometheus được phát triển với mục đích giám sát các dịch vụ web. Để theo dõi các chỉ số của server Ubuntu, bạn nên cài đặt một công cụ có tên là Node Exporter. Node Exporter, như tên gọi của nó, xuất rất nhiều số liệu (chẳng hạn như thống kê I / O đĩa, tải CPU, sử dụng bộ nhớ, thống kê mạng, v.v.) ở định dạng mà Prometheus hiểu được.
Tạo một folder mới có tên node_exporter
bên trong folder Prometheus
và vào bên trong nó:
- mkdir -p ~/Prometheus/node_exporter
- cd ~/Prometheus/node_exporter
Sử dụng wget
để download bản dựng mới nhất của Node Exporter có sẵn trên GitHub và đặt nó vào folder Downloads
.
- wget https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz -O ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz
Đến đây bạn có thể sử dụng lệnh tar
để extract node_exporter-0.11.0.linux-amd64.tar.gz
.
- tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz
Bước 3 - Chạy Node Exporter như một dịch vụ
Để dễ dàng khởi động và dừng Node Exporter, bây giờ ta hãy chuyển nó thành một dịch vụ.
Tạo một liên kết mềm tới binary node_exporter
trong /usr/bin
.
- sudo ln -s ~/Prometheus/node_exporter/node_exporter /usr/bin
Sử dụng nano
hoặc editor yêu thích của bạn để tạo file cấu hình node_exporter.conf
tên node_exporter.conf
.
- sudo nano /etc/init/node_exporter.conf
Tệp này phải chứa liên kết đến file thực thi node_exporter
và cũng chỉ định thời điểm file thực thi sẽ được khởi động. Theo đó, hãy thêm mã sau:
# Run node_exporter start on startup script /usr/bin/node_exporter end script
Đến đây, Node Exporter có sẵn dưới dạng một dịch vụ có thể được khởi động bằng lệnh service
:
- sudo service node_exporter start
Sau khi Node Exporter khởi động, hãy sử dụng trình duyệt để xem giao diện web có sẵn tại http:// your_server_ip :9100/metrics
. Bạn sẽ thấy một trang có nhiều văn bản:
# HELP go_gc_duration_seconds A summary of the GC invocation durations. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 0.00023853100000000002 go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002 go_gc_duration_seconds{quantile="0.5"} 0.00028122 . . .
Bước 4 - Khởi động Server Prometheus
Nhập folder mà bạn đã cài đặt server Prometheus:
cd ~/Prometheus/server
Trước khi khởi động Prometheus, trước tiên bạn phải tạo một file cấu hình cho nó có tên là prometheus.yml
.
- nano ~/Prometheus/server/prometheus.yml
Sao chép mã sau vào file .
scrape_configs: - job_name: "node" scrape_interval: "15s" target_groups: - targets: ['localhost:9100']
Điều này tạo ra một phần scrape_configs
và xác định một công việc được gọi là node
. Nó bao gồm URL của giao diện web Node Exporter của bạn trong mảng targets
của nó. scrape_interval
được đặt thành 15 giây để Prometheus loại bỏ các chỉ số mười lăm giây một lần.
Bạn có thể đặt tên cho công việc của bạn là bất kỳ thứ gì bạn muốn, nhưng việc gọi nó là "nút" cho phép bạn sử dụng các mẫu console mặc định của Node Exporter.
Lưu file và thoát.
Khởi động server Prometheus như một quá trình .
- nohup ./prometheus > prometheus.log 2>&1 &
Lưu ý bạn đã chuyển hướng kết quả của server Prometheus tới file có tên là prometheus.log
. Bạn có thể xem vài dòng cuối cùng của file bằng lệnh tail
:
- tail ~/Prometheus/server/prometheus.log
Khi server đã sẵn sàng, bạn sẽ thấy các thông báo sau trong file :
INFO[0000] Starting target manager... file=targetmanager.go line=75 INFO[0000] Listening on :9090 file=web.go line=118
Sử dụng trình duyệt để truy cập trang chủ của Prometheus có tại http:// your_server_ip :9090
. Bạn sẽ thấy trang chủ sau.
Để đảm bảo Prometheus đang thu thập dữ liệu từ Node Exporter, hãy nhấp vào tab Đồ thị ở đầu trang. Trên trang mở ra, hãy nhập tên của một số liệu (chẳng hạn như node_procs_running ) trong trường văn bản có nội dung Biểu thức . Sau đó, nhấn nút Execute màu xanh lam. Nhấp vào Biểu đồ (bên cạnh Control panel ) ngay bên dưới và bạn sẽ thấy biểu đồ cho số liệu đó:
Prometheus có các mẫu console cho phép bạn xem biểu đồ của một số chỉ số thường được sử dụng. Mẫu console này chỉ có thể truy cập được nếu bạn đặt giá trị của job_name
thành node
trong cấu hình của Prometheus.
Truy cập http:// your_server_ip :9090/consoles/node.html
để truy cập Node Console và nhấp vào server của bạn, localhost:9100
, để xem các số liệu của nó:
Bước 5 - Cài đặt PromDash
Mặc dù server Prometheus cho phép bạn xem đồ thị và thử nghiệm với các biểu thức, nó thường chỉ được sử dụng cho mục đích gỡ lỗi hoặc để chạy các truy vấn một lần. Cách ưa thích để trực quan hóa dữ liệu trong database chuỗi thời gian của Prometheus là sử dụng PromDash, một công cụ cho phép bạn tạo trang tổng quan tùy chỉnh không chỉ có cấu hình cao mà còn đẹp hơn.
Nhập folder Prometheus
:
- cd ~/Prometheus
PromDash là một ứng dụng Ruby on Rails có các file nguồn có sẵn trên GitHub. Để download và chạy nó, bạn cần cài đặt Git, Ruby, SQLite3, Bundler, là một trình quản lý phụ thuộc đá quý và các phụ thuộc của chúng. Sử dụng apt-get
để thực hiện .
- sudo apt-get update && sudo apt-get install git ruby bundler libsqlite3-dev sqlite3 zlib1g-dev
Đến đây bạn có thể sử dụng git
để download các file nguồn.
- git clone https://github.com/prometheus/promdash.git
Nhập folder promdash
.
- cd ~/Prometheus/promdash
Sử dụng bundle
để cài đặt các viên ngọc Ruby mà PromDash yêu cầu. Vì ta sẽ cấu hình PromDash để hoạt động với SQLite3 trong hướng dẫn này, hãy đảm bảo bạn loại trừ các gem cho MySQL và PostgreSQL bằng cách sử dụng tham số --without
:
- bundle install --without mysql postgresql
Vì PromDash phụ thuộc vào một số viên ngọc, bạn sẽ phải đợi trong vài phút để lệnh này hoàn thành. Sau khi hoàn tất, bạn sẽ thấy các thông báo sau.
. . . Your bundle is complete! Gems in the groups mysql and postgresql were not installed. Use `bundle show [gemname]` to see where a bundled gem is installed.
Bước 6 - Cài đặt Môi trường Rails
Tạo một folder để lưu trữ database SQLite3 được liên kết với PromDash.
- mkdir ~/Prometheus/databases
PromDash sử dụng một biến môi trường được gọi là DATABASE_URL
để xác định tên của database được liên kết với nó. Nhập thông tin sau để PromDash tạo database SQLite3 có tên mydb.sqlite3
bên trong folder databases
:
- echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3" >> ~/.bashrc
Trong hướng dẫn này, bạn sẽ chạy PromDash ở chế độ production , vì vậy hãy đặt biến môi trường RAILS_ENV
thành chế độ production
.
- echo "export RAILS_ENV=production" >> ~/.bashrc
Áp dụng các thay đổi mà ta đã thực hiện cho file .bashrc
.
- . ~/.bashrc
Tiếp theo, tạo các bảng của PromDash trong database SQLite3 bằng công cụ rake
.
- rake db:migrate
Vì PromDash sử dụng Đường ống nội dung Rails nên tất cả các nội dung (tệp CSS, hình ảnh và file Javascript) của dự án PromDash phải được biên dịch trước. Nhập thông tin sau để thực hiện :
- rake assets:precompile
Bước 7 - Khởi động và cấu hình PromDash
PromDash chạy trên Thin, một web server nhẹ. Khởi động server dưới dạng daemon bằng lệnh lệnh sau:
- bundle exec thin start -d
Chờ một vài giây để server khởi động rồi truy cập http:// your_server_ip :3000/
để xem trang chủ của PromDash.
Trước khi bắt đầu tạo trang tổng quan tùy chỉnh, bạn nên cho PromDash biết URL của server Prometheus của bạn. Bạn có thể thực hiện bằng cách nhấp vào tab Server ở trên cùng. Nhấp vào Server mới , sau đó trong biểu mẫu, đặt bất kỳ tên nào cho server Prometheus của bạn. Đặt trường Url thành http:// your_server_ip :9090
và trường Loại server thành Prometheus .
Cuối cùng, nhấn vào Create Server để hoàn tất cấu hình. Trang web sẽ thông báo Server đã được tạo thành công. và bạn có thể nhấp trở lại Trang tổng quan ở menu trên cùng.
Bước 8 - Tạo Trang tổng quan
Vì console Promdash phải thuộc về folder Promdash, trước tiên hãy tạo một folder mới bằng cách nhấp vào Thư mục mới . Trong biểu mẫu hiển thị, hãy đặt tên cho folder của bạn, chẳng hạn như Trang tổng quan của tôi , sau đó nhấp vào Tạo folder .
Sau khi bạn gửi biểu mẫu, bạn sẽ được đưa trở lại trang chủ. Nhấp vào nút Trang tổng quan mới ngay bây giờ để tạo trang tổng quan mới. Trong biểu mẫu được hiển thị, hãy đặt tên cho trang tổng quan của bạn, như Trang tổng quan đơn giản và chọn folder bạn vừa tạo từ menu thả xuống.
Sau khi gửi biểu mẫu, bạn có thể xem trang tổng quan mới.
Trang tổng quan của bạn đã có một biểu đồ, nhưng nó cần được cấu hình . Di chuột qua tiêu đề của biểu đồ (có ghi Tiêu đề ) sẽ hiển thị các biểu tượng khác nhau cho phép bạn cấu hình biểu đồ. Để thay đổi tiêu đề của nó, bạn có thể nhấp vào biểu tượng Cài đặt Đồ thị và Trục (thứ tư từ bên trái) và nhập tiêu đề mới vào trường Tiêu đề Đồ thị .
Nhấp vào biểu tượng Nguồn dữ liệu , biểu tượng thứ hai ở bên trái, để thêm một hoặc nhiều biểu thức vào biểu đồ. Nhấp vào Thêm biểu thức và trong trường có nội dung Nhập biểu thức , hãy nhập node_procs_running .
Bây giờ hãy nhấp vào biểu tượng Làm mới (biểu tượng ngoài cùng bên trái) trong tiêu đề của biểu đồ để cập nhật biểu đồ. Trang tổng quan của bạn hiện chứa một biểu đồ được cấu hình đầy đủ. Bạn có thể thêm nhiều đồ thị hơn bằng cách nhấp vào nút Thêm đồ thị ở dưới cùng.
Sau khi thực hiện tất cả các thay đổi, hãy đảm bảo bạn nhấp vào nút Lưu thay đổi ở bên phải để thực hiện thay đổi vĩnh viễn. Lần tiếp theo khi bạn truy cập trang chủ của PromDash, bạn có thể thấy một liên kết đến trang tổng quan của bạn :
Kết luận
Đến đây bạn có một hệ sinh thái Prometheus đầy đủ chức năng đang chạy trên server Ubuntu 14.04 và bạn có thể sử dụng PromDash để tạo các trang tổng quan giám sát phù hợp với yêu cầu của bạn .
Mặc dù bạn đã cài đặt tất cả các thành phần trên một máy Ubuntu, bạn có thể dễ dàng theo dõi nhiều máy hơn bằng cách chỉ cài đặt Node Exporter trên mỗi máy và thêm URL của Node Exporters mới vào mảng targets
của prometheus.yml
.
Bạn có thể tìm hiểu thêm về Prometheus bằng cách tham khảo tài liệu của nó.
Các tin liên quan
Cách cài đặt control panel Ajenti và Ajenti V trên Ubuntu 14.042015-06-26
Cách tự động hóa cài đặt WordPress trên Ubuntu 14.04 bằng Ansible
2015-06-25
Cách cài đặt Công cụ giám sát Munin trên Ubuntu 14.04
2015-06-20
Cách cài đặt và cấu hình mod_deflate trên Ubuntu 14.04
2015-06-17
Cách cài đặt MongoDB trên Ubuntu 14.04
2015-06-15
Cách cài đặt và sử dụng ArangoDB trên Ubuntu 14.04
2015-06-12
Cách cài đặt Lita Chat Bot cho IRC trên Ubuntu 14.04
2015-06-10
Cách cài đặt và cấu hình Ansible trên Ubuntu 14.04
2015-06-05
Triển khai ứng dụng Rails trên Ubuntu 14.04 với Capistrano, Nginx và Puma
2015-06-03
Cách xây dựng các SPA (Ứng dụng một trang) bằng NodeJS, SailsJS và DustJS trong Ubuntu 14.04
2015-05-27