Thứ sáu, 11/05/2018 | 00:00 GMT+7

Cách sử dụng Trình quản lý cảnh báo và Trình xuất hộp đen để giám sát web server của bạn trên Ubuntu 16.04

Khi có vấn đề phát sinh, việc gửi cảnh báo đến group thích hợp giúp tăng tốc đáng kể việc xác định nguyên nhân root rễ của vấn đề, cho phép các group giải quyết sự cố nhanh chóng.

Prometheus là một hệ thống giám sát open-souce thu thập các số liệu từ các dịch vụ của bạn và lưu trữ chúng trong database chuỗi thời gian. Alertmanager là một công cụ để xử lý cảnh báo, giúp loại bỏ trùng lặp, group và gửi cảnh báo đến người nhận thích hợp. Nó có thể xử lý các cảnh báo từ các ứng dụng client như Prometheus và nó hỗ trợ nhiều bộ nhận bao gồm e-mail, PagerDuty , OpsGenieSlack .

Nhờ có nhiều nhà xuất Prometheus, bạn có thể cấu hình cảnh báo cho mọi phần của cơ sở hạ tầng của bạn , bao gồm cả server webcơ sở dữ liệu , hệ thống nhắn tin hoặc API .

Blackbox Exporter thăm dò các điểm cuối qua các giao thức HTTP, HTTPS, DNS, TCP hoặc ICMP, trả về các số liệu chi tiết về yêu cầu, bao gồm cả việc yêu cầu có thành công hay không và mất bao lâu để nhận được phản hồi.

Trong hướng dẫn này, bạn sẽ cài đặt và cấu hình Trình quản lý cảnh báo và Trình xuất hộp đen để giám sát khả năng phản hồi của web server Nginx. Sau đó, bạn sẽ cấu hình Alertmanager để thông báo cho bạn qua e-mail và Slack nếu server của bạn không phản hồi.

Yêu cầu

Đối với hướng dẫn này, bạn cần :

Bước 1 - Tạo user dịch vụ

Vì mục đích bảo mật, ta sẽ tạo hai account user mới, blackbox_exporteralertmanager . Ta sẽ sử dụng các account này trong suốt hướng dẫn để chạy Trình xuất và Trình quản lý hộp đen, cũng như để tách quyền sở hữu đối với các file và folder cốt lõi thích hợp. Điều này đảm bảo Blackbox Exporter và Alertmanager không thể truy cập và sửa đổi dữ liệu mà họ không sở hữu.

Tạo những user này bằng lệnh useradd sử dụng cờ --no-create-home--shell /bin/false để những user này không thể đăng nhập vào server :

  • sudo useradd --no-create-home --shell /bin/false blackbox_exporter
  • sudo useradd --no-create-home --shell /bin/false alertmanager

Với user tại chỗ, hãy download và cấu hình Blackbox Exporter.

Bước 2 - Cài đặt Trình xuất hộp đen

Trước tiên, hãy download version ổn định mới nhất của Blackbox Exporter vào folder chính của bạn. Bạn có thể tìm các mã binary mới nhất cùng với tổng kiểm tra của chúng trên trang Download Prometheus .

  • cd ~
  • curl -LO https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz

Trước khi extract repository , hãy xác minh tổng kiểm tra của file bằng lệnh sha256sum sau:

  • sha256sum blackbox_exporter-0.12.0.linux-amd64.tar.gz

So sánh kết quả kết quả từ lệnh này với tổng kiểm tra trên trang download Prometheus đảm bảo rằng file của bạn vừa chính hãng vừa không bị hỏng:

Output
c5d8ba7d91101524fa7c3f5e17256d467d44d5e1d243e251fd795e0ab4a83605 blackbox_exporter-0.12.0.linux-amd64.tar.gz

Nếu tổng kiểm tra không khớp, hãy xóa file đã download và lặp lại các bước trước đó để download lại file .

Khi bạn chắc chắn các tổng kiểm tra trùng với nhau, hãy extract repository :

  • tar xvf blackbox_exporter-0.12.0.linux-amd64.tar.gz

Thao tác này tạo một folder có tên blackbox_exporter- 0.12.0 .linux-amd64 , chứa file binary blackbox_exporter , giấy phép và các file mẫu.

Sao chép file binary vào folder /usr/local/bin .

  • sudo mv ./blackbox_exporter-0.12.0.linux-amd64/blackbox_exporter /usr/local/bin

Đặt quyền sở hữu user và group trên file binary thành user blackbox_exporter , đảm bảo user không phải root không thể sửa đổi hoặc thay thế file :

  • sudo chown blackbox_exporter:blackbox_exporter /usr/local/bin/blackbox_exporter

Cuối cùng, ta sẽ xóa folder lưu trữ và extract vì chúng không còn cần thiết nữa.

  • rm -rf ~/blackbox_exporter-0.12.0.linux-amd64.tar.gz ~/blackbox_exporter-0.12.0.linux-amd64

Tiếp theo, hãy cấu hình Blackbox Exporter để thăm dò các điểm cuối qua giao thức HTTP và sau đó chạy nó.

Bước 3 - Cấu hình và chạy Trình xuất hộp đen

Hãy tạo một file cấu hình xác định cách Blackbox Exporter sẽ kiểm tra các điểm cuối. Ta cũng sẽ tạo một file đơn vị systemd để ta có thể quản lý dịch vụ của Blackbox bằng systemd .

Ta sẽ chỉ định danh sách các điểm cuối để thăm dò trong cấu hình Prometheus trong bước tiếp theo.

Đầu tiên, tạo folder cho cấu hình của Blackbox Exporter. Theo quy ước Linux, file cấu hình đi trong folder /etc , vì vậy ta sẽ sử dụng folder này để chứa file cấu hình Blackbox Exporter:

  • sudo mkdir /etc/blackbox_exporter

Sau đó, đặt quyền sở hữu folder này cho user blackbox_exporter mà bạn đã tạo ở Bước 1:

  • sudo chown blackbox_exporter:blackbox_exporter /etc/blackbox_exporter

Trong folder mới được tạo, hãy tạo file blackbox.yml sẽ chứa cài đặt cấu hình Blackbox Exporter:

  • sudo nano /etc/blackbox_exporter/blackbox.yml

Ta sẽ cấu hình Trình xuất khẩu hộp đen để sử dụng trình thăm dò http mặc định để thăm dò các điểm cuối. Probers xác định cách Blackbox Exporter kiểm tra xem một điểm cuối có đang chạy hay không. Prober http kiểm tra các điểm cuối bằng cách gửi một yêu cầu HTTP đến điểm cuối và kiểm tra mã phản hồi của nó. Bạn có thể chọn phương thức HTTP nào sẽ sử dụng để thăm dò, cũng như mã trạng thái nào để chấp nhận là phản hồi thành công. Các prober phổ biến khác bao gồm tcp prober để thăm dò qua giao thức TCP, prober icmp để thăm dò qua giao thức ICMP và prober dns để kiểm tra các mục nhập DNS.

Đối với hướng dẫn này, ta sẽ sử dụng thăm dò http để thăm dò điểm cuối chạy trên cổng 8080 qua phương thức HTTP GET . Theo mặc định, prober giả định các mã trạng thái hợp lệ trong phạm vi 2xx là hợp lệ, vì vậy ta không cần cung cấp danh sách các mã trạng thái hợp lệ.

Ta sẽ cấu hình thời gian chờ là 5 giây, nghĩa là Trình xuất hộp đen sẽ đợi 5 giây để phản hồi trước khi báo cáo lỗi. Tùy thuộc vào loại ứng dụng của bạn, hãy chọn bất kỳ giá trị nào phù hợp với nhu cầu của bạn.

Lưu ý: Tệp cấu hình của Trình xuất khẩu hộp đen sử dụng định dạng YAML , định dạng này cấm sử dụng các tab và yêu cầu nghiêm ngặt sử dụng hai dấu cách để thụt lề. Nếu file cấu hình được định dạng không chính xác, Blackbox Exporter sẽ không khởi động được.

Thêm cấu hình sau vào file :

/etc/blackbox_exporter/blackbox.yml
modules:   http_2xx:     prober: http     timeout: 5s     http:             valid_status_codes: []       method: GET 

Bạn có thể tìm thêm thông tin về các tùy chọn cấu hình trong tài liệu của Trình xuất hộp đen .

Lưu file và thoát khỏi editor của bạn.

Trước khi bạn tạo file dịch vụ, hãy đặt quyền sở hữu group và user trên file cấu hình thành user blackbox_exporter đã tạo ở Bước 1.

  • sudo chown blackbox_exporter:blackbox_exporter /etc/blackbox_exporter/blackbox.yml

Bây giờ hãy tạo file dịch vụ để bạn có thể quản lý Trình xuất systemd bằng systemd :

  • sudo nano /etc/systemd/system/blackbox_exporter.service

Thêm nội dung sau vào file :

/etc/systemd/system/blackbox_exporter.service
[Unit] Description=Blackbox Exporter Wants=network-online.target After=network-online.target  [Service] User=blackbox_exporter Group=blackbox_exporter Type=simple ExecStart=/usr/local/bin/blackbox_exporter --config.file /etc/blackbox_exporter/blackbox.yml  [Install] WantedBy=multi-user.target 

Tệp dịch vụ này yêu cầu systemd chạy Blackbox Exporter với quyền là user blackbox_exporter với file cấu hình nằm tại /etc/blackbox_exporter/blackbox.yml . Chi tiết về file dịch vụ systemd nằm ngoài phạm vi của hướng dẫn này, nhưng nếu bạn muốn tìm hiểu thêm, hãy xem hướng dẫn Hiểu đơn vị Systemd và file đơn vị .

Lưu file và thoát khỏi editor của bạn.

Cuối cùng, reload systemd để sử dụng file dịch vụ mới tạo của bạn:

  • sudo systemctl daemon-reload

Bây giờ hãy khởi động Blackbox Exporter:

  • sudo systemctl start blackbox_exporter

Đảm bảo nó đã bắt đầu thành công bằng cách kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status blackbox_exporter

Đầu ra chứa thông tin về quy trình của Blackbox Exporter, bao gồm số nhận dạng quy trình chính (PID), sử dụng bộ nhớ, log và hơn thế nữa.

Output
● blackbox_exporter.service - Blackbox Exporter Loaded: loaded (/etc/systemd/system/blackbox_exporter.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-04-05 17:48:58 UTC; 5s ago Main PID: 5869 (blackbox_export) Tasks: 4 Memory: 968.0K CPU: 9ms CGroup: /system.slice/blackbox_exporter.service └─5869 /usr/local/bin/blackbox_exporter --config.file /etc/blackbox_exporter/blackbox.yml

Nếu trạng thái của dịch vụ không active (running) , hãy làm theo log trên màn hình và truy xuất lại các bước trước đó để giải quyết sự cố trước khi tiếp tục hướng dẫn.

Cuối cùng, hãy bật dịch vụ đảm bảo Trình xuất hộp đen sẽ khởi động khi server khởi động lại:

  • sudo systemctl enable blackbox_exporter

Như vậy, Blackbox Exporter đã được cấu hình đầy đủ và đang chạy, ta có thể cấu hình Prometheus để thu thập số liệu về các yêu cầu thăm dò tới điểm cuối của ta , vì vậy ta có thể tạo cảnh báo dựa trên các số liệu đó và cài đặt thông báo cho cảnh báo bằng Alertmanager.

Bước 4 - Cấu hình Prometheus để Scrape Blackbox Exporter

Như đã đề cập trong Bước 3, danh sách các điểm cuối cần thăm dò nằm trong file cấu hình Prometheus như một phần của chỉ thị targets của Trình xuất khẩu hộp đen. Trong bước này, bạn sẽ cấu hình Prometheus để sử dụng Blackbox Exporter để xử lý web server Nginx đang chạy trên cổng 8080 mà bạn đã cấu hình trong hướng dẫn yêu cầu .

Mở file cấu hình Prometheus trong editor :

  • sudo nano /etc/prometheus/prometheus.yml

Đến đây, nó sẽ giống như sau:

/etc/prometheus/prometheus.yml
global:   scrape_interval: 15s  scrape_configs:   - job_name: 'prometheus'     scrape_interval: 5s     static_configs:       - targets: ['localhost:9090']   - job_name: 'node_exporter'     scrape_interval: 5s     static_configs:       - targets: ['localhost:9100'] 

Vào cuối chỉ thị scrape_configs , hãy thêm mục nhập sau, mục này sẽ yêu cầu Prometheus thăm dò điểm cuối đang chạy trên cổng local 8080 bằng cách sử dụng module của Blackbox Exporter http_2xx , được cấu hình ở Bước 3.

/etc/prometheus/prometheus.yml
...   - job_name: 'blackbox'     metrics_path: /probe     params:       module: [http_2xx]     static_configs:       - targets:         - http://localhost:8080     relabel_configs:       - source_labels: [__address__]         target_label: __param_target       - source_labels: [__param_target]         target_label: instance       - target_label: __address__         replacement: localhost:9115 

Theo mặc định, Blackbox Exporter chạy trên cổng 9115 với các số liệu có sẵn trên điểm cuối /probe .

Cấu hình scrape_configs cho Blackbox Exporter khác với cấu hình cho các nhà xuất khác. Sự khác biệt đáng chú ý nhất là chỉ thị targets , liệt kê các điểm cuối đang được thăm dò thay vì địa chỉ của nhà xuất khẩu. Địa chỉ của nhà xuất khẩu được chỉ định bằng cách sử dụng bộ nhãn __address__ thích hợp.

Bạn sẽ tìm thấy một lời giải thích chi tiết của relabel chỉ thị trong tài liệu hướng dẫn Prometheus .

Tệp cấu hình Prometheus của bạn bây giờ sẽ giống như sau:

Tệp cấu hình Prometheus - /etc/prometheus/prometheus.yml
global:   scrape_interval: 15s  scrape_configs:   - job_name: 'prometheus'     scrape_interval: 5s     static_configs:       - targets: ['localhost:9090']   - job_name: 'node_exporter'     scrape_interval: 5s     static_configs:       - targets: ['localhost:9100']   - job_name: 'blackbox'     metrics_path: /probe     params:       module: [http_2xx]     static_configs:       - targets:         - http://localhost:8080     relabel_configs:       - source_labels: [__address__]         target_label: __param_target       - source_labels: [__param_target]         target_label: instance       - target_label: __address__         replacement: localhost:9115 

Lưu file và đóng editor của bạn.

Khởi động lại Prometheus để các thay đổi có hiệu lực:

  • sudo systemctl restart prometheus

Đảm bảo rằng nó đang chạy như mong đợi bằng cách kiểm tra trạng thái dịch vụ Prometheus:

  • sudo systemctl status prometheus

Nếu trạng thái của dịch vụ không active (running) , hãy làm theo log trên màn hình và truy xuất lại các bước trước đó để giải quyết sự cố trước khi tiếp tục hướng dẫn.

Đến đây, bạn đã cấu hình Prometheus để loại bỏ các chỉ số từ Trình xuất hộp đen. Để nhận cảnh báo từ Alertmanager, trong bước tiếp theo, bạn sẽ tạo một bộ luật cảnh báo Prometheus thích hợp.

Bước 5 - Tạo luật cảnh báo

Prometheus Alerting được tách thành hai phần. Phần đầu tiên do server Prometheus xử lý và bao gồm việc tạo cảnh báo dựa trên các luật cảnh báo và gửi chúng đến Alertmanager . Phần thứ hai được thực hiện bởi Alertmanager, quản lý các cảnh báo đã nhận và gửi chúng đến những người nhận thích hợp, tùy thuộc vào cấu hình.

Trong bước này, bạn sẽ học cú pháp cơ bản của luật cảnh báo khi tạo luật cảnh báo để kiểm tra xem server của bạn có khả dụng hay không.

Đầu tiên, hãy tạo một file để lưu trữ các cảnh báo của bạn. Tạo một file trống có tên alert.rules.yml trong folder /etc/prometheus :

  • sudo touch /etc/prometheus/alert.rules.yml

Vì file này là một phần của cấu hình Prometheus, hãy đảm bảo quyền sở hữu được đặt cho user prometheus mà bạn đã tạo trong hướng dẫn Prometheus tiên quyết:

  • sudo chown prometheus:prometheus /etc/prometheus/alert.rules.yml

Với file cảnh báo đã có, ta cần thông báo cho Prometheus về nó bằng cách thêm chỉ thị thích hợp vào file cấu hình.

Mở file cấu hình Prometheus trong editor :

  • sudo nano /etc/prometheus/prometheus.yml

Thêm rule_files chỉ thị sau khi global chỉ để làm cho Prometheus tải file cảnh báo mới tạo của bạn khi Prometheus khởi động.

/etc/prometheus/prometheus.yml
global:   scrape_interval: 15s  rule_files:   - alert.rules.yml  scrape_configs: ... 

Lưu file và thoát khỏi editor của bạn.

Bây giờ ta hãy xây dựng một luật để kiểm tra xem điểm cuối có bị hỏng không.

Để đưa ra luật cảnh báo, bạn sẽ sử dụng chỉ số probe_success của Blackbox Exporter trả về 1 nếu điểm cuối tăng và 0 nếu không.

Các probe_success số liệu chứa hai nhãn: những instance nhãn với địa chỉ của terminal , và các job nhãn với tên của nhà xuất khẩu mà thu thập số liệu.

Mở file luật cảnh báo trong editor :

  • sudo nano /etc/prometheus/alert.rules.yml

Giống như file cấu hình Prometheus, file luật cảnh báo sử dụng định dạng YAML, định dạng này nghiêm cấm các tab và yêu cầu hai dấu cách để thụt lề. Prometheus sẽ không khởi động nếu file được định dạng không chính xác.

Đầu tiên, ta sẽ tạo một luật cảnh báo có tên EndpointDown để kiểm tra xem chỉ số probe_sucess bằng 0 với thời lượng 10 giây hay không. Điều này đảm bảo Prometheus sẽ không gửi bất kỳ cảnh báo nào nếu điểm cuối không khả dụng trong vòng ít hơn 10 giây. Bạn có thể tự do chọn bất kỳ thời lượng nào bạn muốn tùy thuộc vào loại ứng dụng và nhu cầu của bạn.

Ngoài ra, ta sẽ đính kèm hai nhãn biểu thị mức độ nghiêm trọng và tóm tắt cảnh báo, vì vậy ta có thể dễ dàng quản lý và lọc các cảnh báo.

Nếu bạn muốn đưa thêm chi tiết vào nhãn và chú thích của cảnh báo, bạn có thể sử dụng {{ $labels. metrics_label }} cú pháp {{ $labels. metrics_label }} để nhận giá trị của nhãn. Ta sẽ sử dụng điều này để bao gồm địa chỉ của điểm cuối từ nhãn instance của chỉ số.

Thêm luật sau vào file cảnh báo:

/etc/prometheus/alert.rules.yml
groups: - name: alert.rules   rules:   - alert: EndpointDown     expr: probe_success == 0     for: 10s     labels:       severity: "critical"     annotations:       summary: "Endpoint {{ $labels.instance }} down" 

Lưu file và thoát khỏi editor của bạn.

Trước khi khởi động lại Prometheus, hãy đảm bảo file cảnh báo của bạn chính xác về mặt cú pháp bằng cách sử dụng lệnh promtool sau:

  • sudo promtool check rules /etc/prometheus/alert.rules.yml

Đầu ra chứa số lượng luật được tìm thấy trong file , cùng với thông tin về việc các luật có đúng về mặt cú pháp hay không:

Output
Checking /etc/prometheus/alert.rules.yml SUCCESS: 1 rules found

Cuối cùng, khởi động lại Prometheus để áp dụng các thay đổi:

  • sudo systemctl restart prometheus

Xác minh dịch vụ đang chạy bằng lệnh status :

  • sudo systemctl status prometheus

Nếu trạng thái của dịch vụ không active , hãy làm theo log trên màn hình và truy xuất lại các bước trước đó để giải quyết sự cố trước khi tiếp tục hướng dẫn.

Với các luật cảnh báo được áp dụng, ta có thể download và cài đặt Alertmanager.

Bước 6 - Download Trình quản lý cảnh báo

Blackbox Exporter được cấu hình và các luật cảnh báo của ta được áp dụng. Hãy download và cài đặt Alertmanager để xử lý các cảnh báo mà Prometheus nhận được.

Bạn có thể tìm thấy các mã binary mới nhất cùng với tổng kiểm tra của chúng trên trang download Prometheus . Download và extract version ổn định hiện tại của Alertmanager vào folder chính của bạn:

  • cd ~
  • curl -LO https://github.com/prometheus/alertmanager/releases/download/v0.14.0/alertmanager-0.14.0.linux-amd64.tar.gz

Trước khi extract repository , hãy xác minh tổng kiểm tra của file bằng lệnh sha256sum sau:

  • sha256sum alertmanager-0.14.0.linux-amd64.tar.gz

So sánh kết quả từ lệnh này với tổng kiểm tra trên trang download Prometheus đảm bảo rằng file của bạn vừa chính hãng vừa không bị hỏng.

Output
caddbbbe3ef8545c6cefb32f9a11207ae18dcc788e8d0fb19659d88c58d14b37 alertmanager-0.14.0.linux-amd64.tar.gz

Nếu tổng kiểm tra không khớp, hãy xóa file đã download và lặp lại các bước trước đó để download lại file .

Khi bạn đã xác minh download , hãy extract repository :

  • tar xvf alertmanager-0.14.0.linux-amd64.tar.gz

Điều này tạo ra một folder có tên alertmanager- 0.14.0 .linux-amd64 chứa hai file binary ( alertmanageramtool ), giấy phép và file cấu hình mẫu.

Di chuyển hai file binary vào folder /usr/local/bin :

  • sudo mv alertmanager-0.14.0.linux-amd64/alertmanager /usr/local/bin
  • sudo mv alertmanager-0.14.0.linux-amd64/amtool /usr/local/bin

Đặt user và group sở hữu trên các file binary cho user alertmanager bạn đã tạo ở Bước 1:

  • sudo chown alertmanager:alertmanager /usr/local/bin/alertmanager
  • sudo chown alertmanager:alertmanager /usr/local/bin/amtool

Xóa các file còn sót lại khỏi folder chính của bạn khi chúng không còn cần thiết nữa:

  • rm -rf alertmanager-0.14.0.linux-amd64 alertmanager-0.14.0.linux-amd64.tar.gz

Như vậy, các file được yêu cầu đã ở vị trí thích hợp, ta có thể cấu hình Trình quản lý cảnh báo để gửi thông báo cho các cảnh báo qua email.

Bước 7 - Cấu hình Trình quản lý cảnh báo để gửi cảnh báo qua email

Trong bước này, bạn sẽ tạo folder và file để lưu trữ dữ liệu và cài đặt cấu hình của Alertmanager, sau đó cấu hình Alertmanager để gửi cảnh báo qua email.

Tuân theo các quy ước chuẩn của Linux, ta sẽ tạo một folder trong /etc để lưu trữ file cấu hình của Alertmanager.

  • sudo mkdir /etc/alertmanager

Đặt người sử dụng và quyền sở hữu group cho folder mới được tạo ra cho người sử dụng alertmanager:

  • sudo chown alertmanager:alertmanager /etc/alertmanager

Ta sẽ lưu trữ file cấu hình trong file alertmanager.yml , vì vậy hãy tạo file này và mở file trong editor :

  • sudo nano /etc/alertmanager/alertmanager.yml

Giống như các file khác liên quan đến Prometheus, file này cũng sử dụng định dạng YAML, vì vậy hãy đảm bảo sử dụng hai dấu cách thay vì các tab để thụt lề.

Ta sẽ cấu hình Trình quản lý cảnh báo để gửi email bằng Postfix mà bạn đã cài đặt theo hướng dẫn yêu cầu . Ta cần cung cấp địa chỉ của server SMTP, sử dụng chỉ thị smtp_smarthost , cũng như địa chỉ mà ta muốn gửi email từ chỉ thị smtp_from . Vì Postfix đang chạy trên cùng một server với Alertmanager, nên địa chỉ của server là localhost:25 . Ta sẽ sử dụng user alertmanager cho việc gửi email.

Theo mặc định, Postfix không được cấu hình TLS, vì vậy ta cần yêu cầu Alertmanager cho phép các server SMTP không phải TLS sử dụng chỉ thị smtp_require_tls .

Đặt cấu hình SMTP dưới global chỉ thị, vì nó được sử dụng để xác định các thông số hợp lệ trong tất cả các bối cảnh cấu hình khác. Điều này bao gồm cấu hình SMTP trong trường hợp của ta và cũng có thể bao gồm mã thông báo API cho các tích hợp khác nhau:

Tệp cấu hình Alertmanager phần 1 - /etc/alertmanager/alertmanager.yml
global:   smtp_smarthost: 'localhost:25'   smtp_from: 'alertmanager@your_domain'   smtp_require_tls: false 

Lưu ý: Đảm bảo thay thế your_domin trong chỉ thị smtp_from bằng domain của bạn.

Đến đây, Alertmanager biết cách gửi email, nhưng ta cần xác định cách nó sẽ xử lý các cảnh báo đến bằng cách sử dụng lệnh route . Chỉ thị route được áp dụng cho mọi cảnh báo đến và xác định các thuộc tính như cách Alertmanager sẽ group các cảnh báo, ai là người nhận mặc định hoặc Alertmanager sẽ đợi bao lâu trước khi gửi cảnh báo ban đầu.

Để group các cảnh báo, hãy sử dụng chỉ thị phụ group_by , chỉ thị này lấy một mảng nhãn nội tuyến (chẳng hạn như [' label-1 ', ' label-2 '] ). Việc group đảm bảo các cảnh báo có cùng nhãn sẽ được group lại và gửi trong cùng một đợt.

Mọi chỉ thị route đều có một máy thu duy nhất được xác định bằng cách sử dụng chỉ thị con của receiver . Nếu bạn muốn thêm nhiều người nhận, bạn cần một trong hai xác định nhiều người nhận dưới sự chỉ thị tương tự hoặc tổ nhiều route chỉ bằng cách sử dụng routes phụ chỉ thị. Trong hướng dẫn này, ta sẽ trình bày cách tiếp cận đầu tiên để cấu hình cảnh báo Slack.

Trong trường hợp này, ta sẽ chỉ group theo nhãn instance của Hộp đen và nhãn severity mà ta đã đính kèm vào cảnh báo ở bước 6, đảm bảo ta sẽ nhận được nhiều cảnh báo cho điểm cuối của bạn với mức độ nghiêm trọng trong một thư.

Thêm chỉ thị group_by sau:

Tệp cấu hình Alertmanager phần 2 - /etc/alertmanager/alertmanager.yml
... route:   group_by: ['instance', 'alert'] 

Tiếp theo, ta sẽ xác định các khoảng thời gian, chẳng hạn như Alertmanager sẽ đợi bao lâu trước khi gửi cảnh báo ban đầu và cảnh báo mới.

Sử dụng chỉ thị con group_wait , ta sẽ xác định Alertmanager sẽ đợi bao lâu trước khi gửi cảnh báo ban đầu. Trong khoảng thời gian này, Alertmanager sẽ đợi Prometheus gửi các cảnh báo khác nếu chúng tồn tại để chúng có thể được gửi trong cùng một đợt. Vì ta chỉ có một cảnh báo, ta sẽ chọn một giá trị tùy ý là 30 giây.

Tiếp theo, sử dụng khoảng thời gian group_interval , ta sẽ xác định Alertmanager sẽ đợi bao lâu trước khi gửi đợt cảnh báo tiếp theo nếu có cảnh báo mới trong cùng một group . Bạn có thể tự do chọn bất kỳ giá trị nào tùy thuộc vào nhu cầu của bạn , nhưng ta sẽ đặt giá trị này thành 5 phút một lần.

Khoảng cuối cùng mà ta sẽ cấu hình là repeat_interval , xác định khoảng thời gian Alertmanager sẽ đợi trước khi nó gửi thông báo nếu cảnh báo vẫn chưa được giải quyết. Bạn có thể chọn bất kỳ giá trị nào phù hợp với nhu cầu của bạn , nhưng ta sẽ sử dụng giá trị tùy ý của 3 giờ.

Cuối cùng, sử dụng chỉ thị phụ của receiver , xác định ai sẽ nhận thông báo cho các cảnh báo. Ta sẽ sử dụng bộ thu có tên là team-1 , ta sẽ xác định sau.

Sửa đổi chỉ thị tuyến đường để nó trông giống như sau:

Tệp cấu hình Alertmanager phần 2 - /etc/alertmanager/alertmanager.yml
route:   group_by: ['instance', 'severity']   group_wait: 30s   group_interval: 5m   repeat_interval: 3h   receiver: team-1 

Nếu bạn muốn đối sánh và chỉ gửi thông báo về các cảnh báo cụ thể, bạn có thể sử dụng chỉ thị phụ matchmatch_re để lọc ra các cảnh báo theo giá trị nhãn của chúng. Chỉ thị con match đại diện cho đối sánh bình đẳng, trong đó chỉ thị phụ match_re biểu thị đối sánh thông qua biểu thức chính quy.

Bây giờ, ta sẽ cấu hình bộ thu của team-1 để bạn có thể nhận thông báo cho các cảnh báo. Trong chỉ thị receivers bạn có thể xác định bộ thu có chứa tên và chỉ thị phụ cấu hình thích hợp. Danh sách các bộ thu khả dụng và hướng dẫn về cách cấu hình chúng có sẵn như một phần trong tài liệu của Alertmanager .

Để cấu hình người nhận email team-1 , ta sẽ sử dụng chỉ thị phụ email_configs trong chỉ thị người receivers :

Tệp cấu hình Alertmanager phần 3 - /etc/alertmanager/alertmanager.yml
receivers:   - name: 'team-1'     email_configs:       - to: 'your-email-address' 

Đến đây, bạn đã cấu hình Alertmanager để gửi thông báo cho các cảnh báo đến địa chỉ e-mail của bạn. Tệp cấu hình của bạn sẽ giống như sau:

Tệp cấu hình Alertmanager - /etc/alertmanager/alertmanager.yml
global:   smtp_smarthost: 'localhost:25'   smtp_from: 'alertmanager@example.com'   smtp_require_tls: false  route:   group_by: ['instance', 'severity']   group_wait: 30s   group_interval: 5m   repeat_interval: 3h   receiver: team-1  receivers:   - name: 'team-1'     email_configs:       - to: 'your-email-address' 

Trong bước tiếp theo, ta sẽ cấu hình Trình quản lý cảnh báo để gửi cảnh báo đến kênh Slack của bạn. Nếu không muốn cấu hình Slack, bạn có thể chuyển thẳng đến bước 10, nơi ta sẽ tạo file dịch vụ và cấu hình Prometheus để hoạt động với Alertmanager.

Bước 8 - Cấu hình Trình quản lý cảnh báo để Gửi cảnh báo qua Slack

Trước khi tiếp tục bước này, hãy đảm bảo bạn đã tạo account Slack và bạn có không gian làm việc Slack.

Để gửi cảnh báo tới Slack, trước tiên hãy tạo một Webhook đến .

Trỏ trình duyệt của bạn đến trang tạo Webhook Đến có tại https:// workspace-name .slack.com/services/new/incoming-webhook/ . Bạn sẽ nhận được trang chứa thông tin chi tiết về Webhook đến cũng như danh sách thả xuống mà từ đó bạn cần chọn kênh mà bạn muốn gửi thông báo.

Slack đến webhook

Sau khi bạn chọn kênh, hãy nhấp vào nút Thêm tích hợp WebHook đến .

Bạn sẽ thấy một trang mới xác nhận webhook đã được tạo thành công. Sao chép URL Webhook được hiển thị trên trang này, vì bạn sẽ sử dụng URL đó để cấu hình thông báo Slack của Alertmanager.

Mở file cấu hình Alertmanager trong editor để cấu hình thông báo Slack:

  • sudo nano /etc/alertmanager/alertmanager.yml

Đầu tiên, thêm các slack_api_url phụ chỉ thị cho global một phần của cấu hình của bạn, bằng cách sử dụng URL mà bạn nhận được khi bạn đã tạo các Slack Incoming Webhook.

Tệp cấu hình Alertmanager phần 1 - /etc/alertmanager/alertmanager.yml
global:   smtp_smarthost: 'localhost:25'   smtp_from: 'alertmanager@example.com'   smtp_require_tls: false    slack_api_url: 'your_slack_webhook_url' 

Có hai cách để gửi cảnh báo đến nhiều người nhận:

  1. Bao gồm nhiều cấu hình máy thu trong cùng một mục nhập. Đây là giải pháp ít lỗi nhất và là phương pháp dễ dàng nhất.
  2. Tạo nhiều mục nhận và lồng nhiều chỉ thị route .

Ta sẽ không đề cập đến cách tiếp cận thứ hai trong hướng dẫn này, nhưng nếu bạn quan tâm, hãy xem phần Cấu hình tuyến của tài liệu Alertmanager.

Trong bộ thu team-1 , hãy thêm một chỉ thị phụ mới có tên là slack_configs và cung cấp tên của kênh sẽ nhận được cảnh báo. Trong trường hợp này, ta sẽ sử dụng kênh general :

Tệp cấu hình Alertmanager phần 2 - /etc/alertmanager/alertmanager.yml
receivers:   - name: 'team-1'     email_configs:       - to: 'your-email-address'     slack_configs:       - channel: 'general<^>' 

Tệp cấu hình đã hoàn thành của bạn sẽ giống như sau:

Tệp cấu hình Alertmanager - /etc/alertmanager/alertmanager.yml
global:   smtp_smarthost: 'localhost:25'   smtp_from: 'alertmanager@example.com'   smtp_require_tls: false    slack_api_url: 'your_slack_webhook_url'  route:   group_by: ['instance', 'severity']   group_wait: 30s   group_interval: 5m   repeat_interval: 3h   receiver: team-1  receivers:   - name: 'team-1'     email_configs:       - to: 'your-email-address'     slack_configs:       - channel: 'general' 

Lưu file và thoát khỏi editor .

Bây giờ ta đã sẵn sàng để chạy Alertmanager lần đầu tiên.

Bước 9 - Chạy Trình quản lý cảnh báo

Hãy cài đặt và chạy Alertmanager. Trước tiên, ta sẽ tạo một file đơn vị systemd cho Alertmanager để quản lý dịch vụ của bạn bằng systemd . Sau đó, ta sẽ cập nhật Prometheus để sử dụng Alertmanager.

Tạo một file đơn vị systemd mới và mở nó trong editor của bạn:

  • sudo nano /etc/systemd/system/alertmanager.service

Thêm sau vào file để configure systemd để chạy Alertmanager như là user alertmanager, bằng cách sử dụng file cấu hình nằm ở /etc/alertmanager/alertmanager.yml và URL Alertmanager của, cấu hình để sử dụng địa chỉ IP của server của bạn:

/etc/systemd/system/alertmanager.service
[Unit] Description=Alertmanager Wants=network-online.target After=network-online.target  [Service] User=alertmanager Group=alertmanager Type=simple WorkingDirectory=/etc/alertmanager/ ExecStart=/usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml --web.external-url http://your_server_ip:9093  [Install] WantedBy=multi-user.target 

Thao tác này sẽ chạy Alertmanager với quyền là user alertmanager . Nó cũng yêu cầu Alertmanager sử dụng URL http:// your_server_ip :9093 cho giao diện user Web của nó, trong đó 9093 là cổng mặc định của Alertmanager. Đảm bảo bao gồm giao thức ( http:// ) nếu không mọi thứ sẽ không hoạt động.

Lưu file và đóng editor của bạn.

Tiếp theo, ta cần cho Prometheus biết về Alertmanager bằng cách thêm folder khám phá dịch vụ Alertmanager thích hợp vào file cấu hình Prometheus. Theo mặc định, Alertmanager đang chạy trên cổng 9093 và vì nó trên cùng một server với Prometheus, ta sẽ sử dụng địa chỉ localhost:9093 .

Mở file cấu hình Prometheus:

  • sudo nano /etc/prometheus/prometheus.yml

Sau chỉ thị rule_files , hãy thêm chỉ thị alerting sau:

Tệp cấu hình Prometheus - /etc/prometheus/prometheus.yml
... rule_files:   - alert.rules.yml  alerting:   alertmanagers:   - static_configs:     - targets:       - localhost:9093 ... 

Sau khi hoàn tất, hãy lưu file và đóng editor của bạn.

Để có thể theo dõi URL từ các cảnh báo bạn nhận được, bạn cần cho Prometheus biết địa chỉ IP hoặc domain của server của bạn bằng cách sử dụng -web.external-url khi bạn khởi động Prometheus.

Mở file đơn vị systemd cho Prometheus:

  • sudo nano /etc/systemd/system/prometheus.service

Thay thế dòng ExecStart hiện có ExecStart dòng sau:

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 \      --web.external-url http://your_server_ip 

Tệp đơn vị Prometheus mới của bạn sẽ giống như sau:

Tệp dịch vụ Prometheus - /etc/systemd/system/prometheus.service
[Unit] Description=Prometheus 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 \      --web.external-url http://your_server_ip  [Install] WantedBy=multi-user.target 

Lưu file và đóng editor của bạn.

Reload systemd và khởi động lại Prometheus để áp dụng các thay đổi:

  • sudo systemctl daemon-reload
  • sudo systemctl restart prometheus

Đảm bảo Prometheus đang hoạt động như dự định bằng cách kiểm tra trạng thái của dịch vụ:

  • sudo systemctl status prometheus

Nếu trạng thái của dịch vụ không active (running) , hãy làm theo log trên màn hình và truy xuất lại các bước trước đó để giải quyết sự cố trước khi tiếp tục hướng dẫn.

Cuối cùng, khởi động Alertmanager lần đầu tiên:

  • sudo systemctl start alertmanager

Kiểm tra trạng thái của dịch vụ đảm bảo Alertmanager đang hoạt động như dự kiến:

  • sudo systemctl status alertmanager

Nếu trạng thái của dịch vụ không active (running) , hãy làm theo các thông báo trên màn hình và truy xuất lại các bước trước đó để giải quyết sự cố trước khi tiếp tục hướng dẫn.

Cuối cùng, kích hoạt dịch vụ đảm bảo Alertmanager sẽ khởi động khi hệ thống khởi động:

  • sudo systemctl enable alertmanager

Để truy cập giao diện user Web của Alertmanager, hãy cho phép lưu lượng truy cập vào cổng 9093 thông qua firewall của bạn:

  • sudo ufw allow 9093/tcp

Alertmanager hiện được cấu hình để gửi thông báo cho các cảnh báo qua email và Slack. Hãy đảm bảo nó hoạt động.

Bước 10 - Kiểm tra Trình quản lý cảnh báo

Hãy đảm bảo Alertmanger đang hoạt động bình thường và gửi email cũng như thông báo Slack. Ta sẽ vô hiệu hóa điểm cuối bằng cách xóa khối server Nginx mà bạn đã tạo trong các hướng dẫn yêu cầu :

  • sudo rm /etc/nginx/sites-enabled/your_domain

Reload Nginx để áp dụng các thay đổi:

  • sudo systemctl reload nginx

Nếu bạn muốn xác nhận nó thực sự bị vô hiệu hóa, bạn có thể trỏ trình duyệt web đến địa chỉ server của bạn. Bạn sẽ thấy một thông báo cho biết rằng trang web không thể truy cập được nữa. Nếu không, hãy truy cập lại các bước trước đó và đảm bảo bạn đã xóa đúng khối server và reload Nginx.

Tùy thuộc vào khoảng thời gian group_wait , trong trường hợp của ta là 30 giây , bạn sẽ nhận được email và thông báo Slack sau 30 giây.

Nếu không, hãy kiểm tra trạng thái của dịch vụ bằng cách sử dụng các lệnh status sau và làm theo log trên màn hình để tìm nguyên nhân của sự cố:

  • sudo systemctl status alertmanager
  • sudo systemctl status prometheus

Bạn cũng có thể kiểm tra trạng thái của cảnh báo từ Giao diện user Web Prometheus, bằng cách trỏ trình duyệt web tới http:// your_server_ip /alerts . Bạn cần nhập tên user và password bạn đã chọn theo hướng dẫn của Prometheus. Bằng cách nhấp vào tên cảnh báo, bạn sẽ thấy trạng thái, luật cảnh báo và các nhãn được liên kết:

Giao diện  user  Prometheus - cảnh báo

Khi bạn đã xác minh Alertmanager đang hoạt động, hãy kích hoạt điểm cuối bằng cách tạo lại softlink từ folder sites-available sites-enabled folder sites-enabled :

  • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled

Reload Nginx để áp dụng các thay đổi:

  • sudo systemctl reload nginx

Trong bước tiếp theo, ta sẽ xem xét cách sử dụng Giao diện dòng lệnh của Alertmanager.

Bước 11 - Quản lý cảnh báo bằng CLI

Alertmanager đi kèm với công cụ dòng lệnh amtool , cho phép bạn theo dõi, quản lý và tắt tiếng cảnh báo.

Công cụ amtool yêu cầu bạn cung cấp URL của Alertmanager bằng cách sử dụng cờ --alertmanager.url mỗi khi bạn thực hiện một lệnh. Để sử dụng amtool mà không cần cung cấp URL, ta sẽ bắt đầu bằng cách tạo file cấu hình.

Vị trí mặc định cho file cấu hình là $HOME/.config/amtool/config.yml , làm cho cấu hình chỉ khả dụng cho user hiện tại của bạn và /etc/amtool/config.yml , cung cấp cấu hình cho mọi user trên server .

Bạn có thể tự do chọn bất cứ thứ gì phù hợp với nhu cầu của bạn , nhưng đối với hướng dẫn này, ta sẽ sử dụng file $HOME/.config/amtool/config.yml .

Đầu tiên, tạo folder . Cờ -p yêu cầu mkdir tạo bất kỳ folder mẹ nào cần thiết trong quá trình:

  • mkdir -p $HOME/.config/amtool

Tạo file config.yml và mở nó trong editor của bạn:

  • nano $HOME/.config/amtool/config.yml

Thêm dòng sau để amtool sử dụng Alertmanager với URL http://localhost:9093 :

~ / .config / amtool / config.yml
alertmanager.url: http://localhost:9093 

Lưu file và thoát khỏi editor của bạn.

Bây giờ, ta sẽ xem xét những gì ta có thể làm với công cụ dòng lệnh amtool .

Sử dụng lệnh amtool alert query , bạn có thể liệt kê tất cả các cảnh báo đã được gửi đến Alertmanager:

  • amtool alert query

Đầu ra hiển thị tên của cảnh báo, thời gian xuất hiện lần đầu tiên của cảnh báo và tóm tắt cảnh báo mà bạn đã cung cấp khi cấu hình :

Output
Alertname Starts At Summary EndpointDown 2018-04-03 08:48:47 UTC Endpoint http://localhost:8080 down

Bạn cũng có thể lọc các cảnh báo theo nhãn của chúng bằng cách sử dụng trình đối sánh thích hợp. Trình so khớp chứa tên nhãn, phép toán thích hợp, có thể là = để đối sánh toàn bộ và =~ đối với đối sánh một phần và giá trị của nhãn.

Nếu bạn muốn liệt kê tất cả các cảnh báo có gắn nhãn mức độ nghiêm trọng nghiêm trọng, hãy sử dụng trình so khớp severity=critical trong lệnh alert query :

  • amtool alert query severity=critical

Giống như trước đây, kết quả chứa tên cảnh báo, thời gian xuất hiện lần đầu tiên của cảnh báo và tóm tắt cảnh báo.

Output
Alertname Starts At Summary EndpointDown 2018-04-03 08:48:47 UTC Endpoint http://localhost:8080 down

Bạn có thể sử dụng biểu thức chính quy để so khớp các nhãn với toán tử =~ . Ví dụ: để liệt kê tất cả các cảnh báo cho điểm cuối http://localhost không phụ thuộc vào cổng, bạn có thể sử dụng instance=~http://localhost.* matcher:

  • amtool alert query instance=~http://localhost.*

Vì bạn chỉ có một cảnh báo và điểm cuối, kết quả sẽ giống như trong ví dụ trước.

Để xem cấu hình Alertmanager, hãy sử dụng lệnh amtool config :

  • amtool config

Đầu ra sẽ chứa nội dung của file /etc/alertmanager/alertmanager.yml .

Bây giờ ta hãy xem cách tắt tiếng cảnh báo bằng amtool .

Cảnh báo im lặng cho phép bạn tắt tiếng cảnh báo dựa trên trình khớp trong một thời gian nhất định. Trong khoảng thời gian đó, bạn sẽ không nhận được bất kỳ email hoặc thông báo Slack nào về cảnh báo đã im lặng.

amtool silence add lấy trình so khớp làm đối số và tạo một khoảng lặng mới dựa trên trình so khớp.

Để xác định kết thúc thời hạn một cảnh báo, sử dụng --expires cờ với thời gian mong muốn của sự im lặng, chẳng hạn như 1h hoặc --expire-on cờ với thời điểm hết hạn im lặng trong định dạng RFC3339 . Ví dụ: định dạng 2018-10-04T07:50:00+00:00 đại diện cho 07 giờ 50 sáng ngày 4 tháng 10 năm 2018.

Nếu --expires hoặc --expires-on không được cung cấp, cảnh báo sẽ bị tắt tiếng trong 1 giờ .

Để tắt tiếng tất cả các cảnh báo cho version http://localhost:8080 trong 3 giờ , bạn sẽ sử dụng lệnh sau:

  • amtool silence add instance=http://localhost:8080 --expires 3h

Đầu ra chứa một số nhận dạng cho khoảng lặng, vì vậy hãy nhớ ghi lại nó vì bạn cần nó trong trường hợp bạn muốn xóa dấu lặng:

Output
4e89b15b-0814-41d3-8b74-16c513611732

Nếu bạn muốn cung cấp thêm thông tin khi tạo khoảng lặng, chẳng hạn như tác giả và comment , hãy sử dụng cờ - tác giả và - --author --comment :

  • amtool silence add severity=critical --expires 3h --author "Sammy The Shark" --comment "Investigating the progress"

Giống như trước đây, kết quả chứa ID của khoảng lặng:

Output
12b7b9e1-f48a-4ceb-bd85-65ac882ceed1

Lệnh amtool silence query sẽ hiển thị danh sách tất cả các lệnh im lặng chưa hết hạn:

  • amtool silence query

Đầu ra chứa ID của khoảng thời gian im lặng, danh sách đối sánh, dấu thời gian hết hạn, tác giả và comment :

Output
ID Matchers Ends At Created By Comment 12b7b9e1-f48a-4ceb-bd85-65ac882ceed1 severity=critical 2018-04-04 08:02:58 UTC Sammy The Shark Investigating in the progress 4e89b15b-0814-41d3-8b74-16c513611732 instance=http://localhost:8080 2018-04-04 08:14:21 UTC sammy

Tương tự như lệnh alert query , bạn có thể sử dụng trình đối sánh nhãn để lọc kết quả theo các nhãn được đính kèm khi tạo:

  • amtool silence query instance=http://localhost:8080

Giống như trước đây, kết quả sẽ bao gồm số ID và chi tiết của cảnh báo:

Output
ID Matchers Ends At Created By Comment 4e89b15b-0814-41d3-8b74-16c513611732 instance=http://localhost:8080 2018-04-04 08:14:21 UTC sammy

Cuối cùng, để hết hiệu lực im lặng, hãy sử dụng chế amtool silence expire với ID của chế độ im lặng mà bạn muốn hết hạn:

  • amtool silence expire 12b7b9e1-f48a-4ceb-bd85-65ac882ceed1
  • amtool silence expire 4e89b15b-0814-41d3-8b74-16c513611732

Không có kết quả nào thể hiện việc thực thi lệnh thành công Nếu bạn thấy lỗi, hãy đảm bảo bạn đã cung cấp đúng ID của chế độ im lặng.

Kết luận

Trong hướng dẫn này, bạn đã cấu hình Blackbox Exporter và Alertmanager để hoạt động cùng với Prometheus để bạn có thể nhận thông báo qua email và Slack. Bạn cũng đã sử dụng giao diện dòng lệnh của amtool , amtool , để quản lý và tắt tiếng cảnh báo.

Nếu bạn muốn tìm hiểu thêm về các tích hợp Alertmanager khác, hãy xem phần [Cấu hình] (( https://prometheus.io/docs/alerting/configuration/) ) trong tài liệu của Alertmanager.

Ngoài ra, bạn có thể xem cách tích hợp Cảnh báo Prometheus với các dịch vụ khác như Grafana .


Tags:

Các tin liên quan

Giải pháp Deep Dive: Xây dựng một ứng dụng web khả dụng cao với khả năng xử lý và lưu trữ web bằng cách sử dụng MongoDB và Elk Stack
2018-03-15
Các bước đầu tiên của bạn với API âm thanh web
2018-01-09
Gói ứng dụng web của bạn bằng bưu kiện
2017-12-09
Tích hợp các thành phần web với ứng dụng Vue.js của bạn
2017-09-25
Cách làm việc với dữ liệu web bằng cách sử dụng yêu cầu và món súp đẹp mắt với Python 3
2017-07-14
Sử dụng Web worker một cách dễ dàng trong Vue.js với vue-worker
2017-05-16
Cách cài đặt Icinga và Icinga Web trên Ubuntu 16.04
2017-05-05
Cách lưu trữ nhiều trang web với Nginx và HAProxy bằng LXD trên Ubuntu 16.04
2017-04-19
Cách bảo mật ứng dụng web nông dân của bạn bằng Let's Encrypt trên Ubuntu 16.04
2017-03-29
Xây dựng các thành phần web gốc với Vue.js
2017-03-16