Prometheus(普羅米修斯)首先聯想到的是異形,一部很不錯的電影。在這裏指的是一套開源的監控、
報警、時序數據庫的組合。是由SoundCloud公司開發。
Prometheus基本原理是通過HTTP協議週期性抓取(Pull方式)被監控組件的狀態,好處是任意組件只要提供HTTP接口就可以接入監控系統,不需要任何SDK或者其他的集成過程。這樣做非常適合虛擬化環境,比如VM或者Docker。輸出被監控組件信息的Http接口叫exporter。
常用的組件大部分都有exporter可以直接使用,比如Nginx、MySQL、Linux OS系統信息等。
Prometheus架構:
Prometheus基於Go編寫,編譯後的軟件包,不依賴於任何的第三方依賴。只需下載對應平臺的二進制包,解壓到對應目錄啓動Prometheus Server即可。
- 下載二進制包
通過prometheus官網,我們下載最新版本的prometheus,目前官網最新版本prometheus-2.18.1。wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64 tar xzvf prometheus-2.18.1.linux-amd64.tar.gz mv prometheus-2.18.1.linux-amd64 /usr/local/ ln -s /usr/local/prometheus-2.18.1.linux-amd64/ /usr/local/prometheus
- 配置
默認的Prometheus配置文件爲promethes.yml
scrape_interval: 15s # 設置抓取間隔,默認爲1分鐘 evaluation_interval: 15s #估算規則的默認週期,每15秒計算一次規則。默認1分鐘
- 創建Prometheus用戶及數據存儲目錄
爲安全起見,使用普通用戶來啓動prometheus服務。作爲一個時序型的數據庫產品,prometheus的數據默認會存放在應用所在目錄下,這裏需要修改爲 /data/prometheus下。#創建用戶 useradd -s /sbin/nologin -M prometheus mkdir /data/prometheus -p #修改目錄屬主 chown -R prometheus:prometheus /usr/local/prometheus/ chown -R prometheus:prometheus /data/prometheus/
- 使用Systemd服務啓動prometheus
創建prometheus.service文件
vim /etc/systemd/system/prometheus.service[Unit] Description=Prometheus Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=prometheus ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus Restart=on-failure [Install] WantedBy=multi-user.target
在service文件裏面,定義了啓動的命令,定義了數據存儲在/data/prometheus路徑下,否則默認會在prometheus二進制的data目錄下。
啓動prometheus服務systemctl start prometheus systemctl enable prometheus
- 打開prometheus瀏覽首頁
prometheus啓動後默認會監聽9090端口,如果本地有防火牆,如iptables,需將9090端口放開。
打開本地localhost:9090。