Prometheus 모니터링 Nginx

2159 단어
환경.
시스템: CentOS 7.5
준비 하 다.
  • Nginx Lua 확장 추가
  • Nginx 단자
  • lua 스 크 립 트 주소 다운로드:https://github.com/knyar/nginx-lua-prometheus
  • lua 스 크 립 트 복사
    # cp prometheus.lua /usr/local/lib/lua/5.1/
    
  • Nginx 설정 추가
    # vim /etc/nginx/conf.d/prometheus.conf
    lua_shared_dict prometheus_metrics 10M;
    lua_package_path "/usr/local/lib/lua/5.1/?.lua";
    init_by_lua '
            prometheus = require("prometheus").init("prometheus_metrics")
            metric_requests = prometheus:counter(
                    "nginx_http_requests_total", "Number of HTTP requests", {"host", "status"})
            metric_latency = prometheus:histogram(
                    "nginx_http_request_duration_seconds", "HTTP request latency", {"host"})
            metric_connections = prometheus:gauge(
                    "nginx_http_connections", "Number of HTTP connections", {"state"})
            ';
    log_by_lua '
            metric_requests:inc(1, {ngx.var.server_name, ngx.var.status})
            metric_latency:observe(tonumber(ngx.var.request_time), {ngx.var.server_name})
    ';
    
    
    server {
            listen 9145;
            server_name xxx.your.domain.com;  
    
            location /metrics {
                    content_by_lua '
                    metric_connections:set(ngx.var.connections_reading, {"reading"})
                    metric_connections:set(ngx.var.connections_waiting, {"waiting"})
                    metric_connections:set(ngx.var.connections_writing, {"writing"})
                    prometheus:collect()
                    ';
            }
    }
    
  • Nginx 재 부팅
    # systemctl restart nginx
    
  • Prometheus 단
  • 프로 메 테 우 스 설정
    # vim /usr/local/prometheus/prometheus.yml
    scrape_configs:
      - job_name: 'Nginx'
      static_configs:
        - targets:
          - 10.10.10.1:9145
    
  • Prometheus 재 개
    # systemctl restart prometheus
    
  • Grafana 단
  • 대시 보드 추가 클릭 Create - Import, 입력 dashboards id( 462)
  • 좋은 웹페이지 즐겨찾기