Cách sử dụng Prometheus để giám sát server CentOS 7 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 CentOS 7 64-bit
- Người dùng sudo không phải root , tốt nhất là người có tên prometheus .
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 curl
để download bản dựng mới nhất của server Prometheus và database chuỗi thời gian từ GitHub.
- curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.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 thành phần bằng mkdir
.
- mkdir ~/Prometheus
Nhập folder bạn vừa tạo.
- cd ~/Prometheus
Sử dụng tar
để extract prometheus-0.16.0.linux-amd64.tar.gz
.
- tar -xvzf ~/Downloads/prometheus-0.16.0.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 lệnh sau:
- ~/Prometheus/prometheus-0.16.0.linux-amd64/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.16.0 (branch: HEAD, revision: dcb8ba4) build user: julius@desktop build date: 20151009-23:51:17 go version: 1.5.1
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 CentOS, 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.
Nhập folder Downloads
và sử dụng curl
để download bản dựng mới nhất của Node Exporter có sẵn trên GitHub.
- cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"
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 ~/Prometheus/node_exporter
- cd ~/Prometheus/node_exporter
Đế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ụ.
Sử dụng vi
hoặc bất kỳ editor nào khác để tạo file cấu hình đơn vị có tên node_exporter.service
.
- sudo vi /etc/systemd/system/node_exporter.service
Tệp này phải chứa đường dẫn của file thực thi node_exporter
và cũng chỉ định user nào sẽ chạy file thực thi. Theo đó, hãy thêm mã sau:
[Unit] Description=Node Exporter [Service] User=prometheus ExecStart=/home/prometheus/Prometheus/node_exporter/node_exporter [Install] WantedBy=default.target
Lưu file và thoát khỏi editor .
Reload systemd
để nó đọc file cấu hình bạn vừa tạo.
- sudo systemctl daemon-reload
Đến đây, Node Exporter có sẵn như một dịch vụ có thể được quản lý bằng lệnh systemctl
. Kích hoạt nó để nó tự động khởi động lúc khởi động.
- sudo systemctl enable node_exporter.service
Đến đây bạn có thể khởi động lại server của bạn hoặc sử dụng lệnh sau để khởi động dịch vụ theo cách thủ công:
- sudo systemctl start node_exporter.service
Khi nó bắt đầu, hãy sử dụng trình duyệt để xem giao diện web của Node Exporter, 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/prometheus-0.16.0.linux-amd64
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
.
- vi ~/Prometheus/prometheus-0.16.0.linux-amd64/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/prometheus-0.16.0.linux-amd64/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ư procs nút đang chạy ) trong trường văn bản cho biết 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 và một số công cụ xây dựng. Sử dụng yum
để thực hiện .
- sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch
Đế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
PromDash phụ thuộc vào một số viên ngọc Ruby. Để tự động hóa việc cài đặt các viên ngọc đó, bạn nên cài đặt một viên đá quý có tên là bundler
.
- gem install bundler
Đến đây bạn có thể sử dụng lệnh bundle
để cài đặt tất cả 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
Bạn có thể phải đợi một vài phút để lệnh này hoàn tất. 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 các procs nút đang chạy .
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
Như vậy, bạn có một hệ sinh thái Prometheus đầy đủ chức năng đang chạy trên server CentOS 7 của bạn và bạn có thể sử dụng PromDash để tạo 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 CentOS, 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 Elasticsearch 1.7, Logstash 1.5 và Kibana 4.1 (ELK Stack) trên CentOS 72015-11-04
Cách cài đặt và cấu hình scponly trên CentOS 7
2015-07-22
Cách viết quy tắc kiểm tra hệ thống tùy chỉnh trên CentOS 7
2015-07-16
Cách viết quy tắc kiểm tra hệ thống tùy chỉnh trên CentOS 7
2015-07-16
Cách thiết lập firewall bằng FirewallD trên CentOS 7
2015-06-18
Cách thiết lập firewall bằng FirewallD trên CentOS 7
2015-06-18
Cách phát hiện bất thường với Skyline trên CentOS 7
2015-06-16
Cách cài đặt và cấu hình mod_deflate trên CentOS 7
2015-06-12
Cách hạn chế tài nguyên bằng cách sử dụng nhóm trên CentOS 6
2015-06-10
Cách phân tích chỉ số hệ thống với InfluxDB trên CentOS 7
2015-06-04