Cấu hình Prometheus giám sát dịch vụ Kong API Gateway – Cuongquach.com | Ở bài viết này mình coi như các bạn đã biết cách sử dụng dịch vụ Kong API Gateway và dịch vụ giám sát Prometheus. Các bạn sẽ chỉ quan tâm là liệu Kong API Gateway có public endpoint metrics để Prometheus có thể lấy dữ liệu cho việc monitor Kong API Gateway không ? Và liệu metrics đó nhiều và chi tiết như mình muốn không ?
1. Kích hoạt Prometheus Kong plugin
Plugin ‘Kong Prometheus‘ sẽ ghi nhận và xuất các thông tin metric về dịch vụ Kong đang sử dụng như :
- Khả năng kết nối Database: con số thể hiện việc Kong có đang kết nối được database (postgreql/cassandra) hay không ?
- Các kết nối web service: các thông số kết nối đến Openresty Kong như active, reading, writing và accepted .
- Status code: mã trạng thái HTTP trả về từ các dịch vụ upstream, nếu bạn có cấu hình Kong Upstream.
- ..
Nhìn chung các metrics không quá chi tiết, metrics về web service cũng chỉ ở mức cơ bản như OpenResty open source có thể cung cấp.
Bạn có thể kích hoạt plugin ‘Kong Prometheus‘ qua API Kong Admin . Giả sử port admin mình đổi về 18001 vì lý do bảo mật.
curl http://kong:18001/plugins -d 'name=prometheus' -d 'service_id=<uuid>'
hoặc qua công cụ giao diện web quản lý KongA.
Khi plugin đã kích hoạt bạn có thể truy cập metrics của Kong API qua endpoint admin Kong.
# curl http://kong:18001/metrics # HELP kong_datastore_reachable Datastore reachable from Kong, 0 is unreachable # TYPE kong_datastore_reachable gauge kong_datastore_reachable 1 # HELP kong_openresty_http_current_connections Number of HTTP connections # TYPE kong_openresty_http_current_connections gauge kong_openresty_http_current_connections{state="accepted"} 9852 kong_openresty_http_current_connections{state="active"} 2 kong_openresty_http_current_connections{state="handled"} 9852 kong_openresty_http_current_connections{state="reading"} 0 kong_openresty_http_current_connections{state="total"} 24503 kong_openresty_http_current_connections{state="waiting"} 1 kong_openresty_http_current_connections{state="writing"} 1 # HELP kong_openresty_metric_errors_total Number of openresty-lua-prometheus errors # TYPE kong_openresty_metric_errors_total counter kong_openresty_metric_errors_total 0
Kế đến bạn phải nhớ mở firewall rule cho Prometheus query vào port Admin Kong nhé.
2. Cấu hình Prometheus giám sát host Kong API
Như vậy ngoài metrics cung cấp bởi Node_exporter bạn sẽ có thể lấy metrics của chính dịch vụ Kong API Gateway. Giờ bạn chỉ việc cấu hình target nhóm dịch vụ Kong API Gateway thôi.
scrape_configs: - job_name: 'cuongquach_kong' scrape_interval: 5s static_configs: - targets: ['10.0.11.10:18001']
Khởi động lại dịch vụ Prometheus.
# systemctl restart prometheus
Coi thông tin trên web Prometheus ở phần target sẽ thấy server đã up.
Lúc này bạn đã có thông tin Prometheus lấy được từ metrics endpoint của Kong, phần còn lại thì bạn đã có thể tự thực hiện trên những tool như Grafana để thể hiện hoạt động giám sát dịch vụ rồi.
Nguồn: https://cuongquach.com/