應朋友們要求,介紹上linux系統下的實時監控平臺,在上次提到了glances,它提供了較多的監控指標,那如果我們要看歷史數據呢?某一時間段的回放呢?顯然glances是做不到的。因此,實時監控平臺就應運而生了。

平臺采用Grafana+ Prometheus 構建,Grafana 是炫麗的可視化框架,Prometheus 是在監控方面較為流行的時序數據庫,采用Go語言開發,我們知道,監控平臺大部分是在不斷產生時間序列數據,進而進行監控回放,實時更新數據等。此外,Prometheus 提供了強大的導出器功能,支持常見業務系統的監控,如InfluxDB,PostgreSQL,Kafka,服務器監控等。
下面,我們來看看軟件在Ubuntu Server 16.04 系統下的安裝:
- Grafana安裝
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install grafana
修改配置文件/etc/grafana//grafana.ini
.........
[server]
http_addr:監聽的ip地址,,默認是0.0.0.0,即所有IP
http_port:監聽的端口,默認是3000
安裝后,會自動新建systemd服務,可通過以下命令啟動服務:
systemctl start grafana-server
2.Prometheus

新建prometheus用戶
sudo useradd --no-create-home --shell /bin/false prometheus
新建 /etc/prometheus(存放配置文件)和/var/lib/prometheus(存放數據文件)目錄,并更改屬主為prometheus。
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
下載Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.10.0/prometheus-2.10.0.linux-amd64.tar.gz --no-check-certificate
解壓Prometheus
tar -zxvf prometheus-2.10.0.linux-amd64.tar.gz
創建軟連接
ln -s /usr/local/prometheus-2.11.0-rc.0.linux-amd64 /usr/local/prometheus
將兩個執行腳本復制到該/usr/local/bin目錄,并更改屬主為prometheus。
sudo cp /usr/local/prometheus/prometheus /usr/local/bin/
sudo cp /usr/local/prometheus/promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
將consoles和console_libraries目錄復制到/etc/prometheus,并更改屬主為prometheus。
sudo cp -r /usr/local/prometheus/consoles /etc/prometheus
sudo cp -r /usr/local/prometheus/console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
修改prometheus的配置文件prometheus.yml
vim /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['127.0.0.1:9090']
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
#--storage.tsdb.path: /etc/prometheus/data
#--storage.tsdb.retention.time: 15d
#--storage.tsdb.retention.size: 1GB
scrape_interval——指標更新時間間隔
job_name——為實例服務的配置,包括prometheus和各種導出器
配置systemd服務:
sudo vim /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
?
[Install]
WantedBy=multi-user.target
重載systemd
systemctl daemon-reload
啟動Prometheus
systemctl start prometheus
訪問Grafana
http://127.0.0.1:3000/

訪問prometheus
http://127.0.0.1:9090/

到此,我們就完成了Grafana和Prometheus的安裝,下期會介紹常用導出器的配置,如node_exporter,bind_exporter和redis_exporter,下期見。