一、關於Prometheus(普羅米修斯)
現在我們用Nginx的比較多,Nginx的監控比較老的方案可能是通過跑腳本定期收集nginx的status模塊的數據,或者監控nginx的日誌;後來阿里的tengine在國內開始流行,於是誕生了很多不錯的lua模塊;但是這些監控方案在有新的監控需求的時候,可能就需要再修改腳本或者更改nginx conf配置,有時候不是特別的方便。用Prometheus進行nginx的監控可以自動的對相關server_name和upstream進行監控,你也可以自定義Prometheus的數據標籤,實現對不同機房和不同項目的nginx進行監控。
監控Nginx主要用到以下三個模塊:
- nginx-module-vts:Nginx virtual host traffic status module,Nginx的監控模塊,能夠提供JSON格式的數據產出。
- nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用於收集Nginx的監控數據,並給Prometheus提供監控接口,默認端口號9913。
- Prometheus:監控Nginx-vts-exporter提供的Nginx數據,並存儲在時序數據庫中,可以使用PromQL對時序數據進行查詢和聚合。
一、nginx-module-vts模塊的編譯
nginx_vts_exporter依賴nginx-module-vts模塊,安裝此模塊無需任何其他依賴。模塊與Nginx的版本兼容性如下:
1.11.x (last tested: 1.11.10)
1.10.x (last tested: 1.10.3)
1.8.x (last tested: 1.8.0)
1.6.x (last tested: 1.6.3)
1.4.x (last tested: 1.4.7)
同時適用於tengine,其他nginx早期版本未做驗證。
二、安裝Prometheus(普羅米修斯)
2.1 下載安裝文件
wget https://github.com/prometheus/prometheus/releases/download/v2.5.0/prometheus-2.5.0.linux-amd64.tar.gz
2.2 解壓安裝包
tar -C /usr/local/ -xvf prometheus-2.5.0.linux-amd64.tar.gz
ln -sv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/Prometheus
2.3 修改配置文件prometheus.yml
監控nginx-vts-exporter的數據
- job_name: 'prometheus'
metrics_path: '/metrics'
scheme: 'http'
static_configs:
- targets: ['192.168.77.135:9913']
- job_name: 'vts'
metrics_path: '/status/format/prometheus'
static_configs:
- targets: ['192.168.77.135']
三、使用Prometheus(普羅米修斯)
瀏覽器訪問:
http://192.168.77.135:9090
四、安裝Grafana
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.3-1.x86_64.rpm
yum install -y urw-fonts
rpm -i grafana-5.2.3-1.x86_64.rpm
/sbin/chkconfig --add grafana-server
systemctl start grafana-server.service
瀏覽器訪問:
http://192.168.77.135:3000
(默認賬號密碼admin/admin)
進去後會要求修改密碼,然後點擊add datasource,選中 Prometheus 2.0 Stats後,就可以呈現出監控面板