Prometheus+Grafana監控部署實踐
前言:說明
原博客: https://blog.csdn.net/baidu_38432732/article/details/97003079 , 本文指令大部分復制原博客,所以版本號需要注意一下,不能原樣復制
在部署之前,需要關閉防火墻(firewalld)和selinux
# 查看防火墻狀態
[root@prometheus src]# systemctl status firewalld.service
# 臨時關閉防火墻
[root@prometheus src]# systemctl stop firewalld.service
# 禁止防火墻開機啟動,永久關閉
[root@prometheus src]# systemctl disable firewalld.service
[root@prometheus src]# removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service
[root@prometheus src]# removed symlink /etc/systemd/system/basic.target.wants/firewalld.service
?
#查看selinux狀態
[root@prometheus src]# getenforce
#臨時關閉selinux
[root@prometheus src]# setenforce 0
[root@prometheus src]# getenforce
Permissive
?
#永久關閉|禁止開機啟動,進入到/etc/selinux/config檔案,將SELINUX=enforcing改為SELINUX=disabled,重啟生效,
[root@prometheus src]# vim /etc/selinux/config
?
參考檔案:
Prometheus github:https://github.com/prometheus
grafana github:https://github.com/grafana/grafana
Prometheus getting_started:https://prometheus.io/docs/prometheus/latest/getting_started/
Prometheus node_exporter:https://github.com/prometheus/node_exporter
Prometheus部署(docker,optional):https://prometheus.io/docs/prometheus/latest/installation/
Prometheus組態檔詳解:
https://prometheus.io/docs/prometheus/latest/configuration/configuration/
grafana 部署:http://docs.grafana.org/installation/rpm/
一、環境
1.拓撲

2.節點
| *Node* | *OS* | *Hostname* | *IP* | *Remark* |
|---|---|---|---|---|
| prometheus& grafana server | centos 7.4 | prometheus | 172.20.1.211 | |
| prometheus node | centos 7.4 | node1 | 172.20.1.212 |
3.版本
| *Soft/Node* | *Version* | *Download* |
|---|---|---|
| go | 1.15.6 | https://dl.google.com/go/go1.15.6.linux-amd64.tar.gz |
| prometheus | 2.24.0 | https://github-production-release-asset-2e65be.s3.amazonaws.com/6838921/06f75900-503e-11eb-83ab-c11d8006db87?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20210119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20210119T011901Z&X-Amz-Expires=300&X-Amz-Signature=acd16dffc801c5b45ebb9cb685a9535035458465a2cbec7a898145dea5fb9324&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=6838921&response-content-disposition=attachment%3B%20filename%3Dprometheus-2.24.0.linux-amd64.tar.gz&response-content-type=application%2Foctet-stream |
| node_exporter | 0.18.1 | https://codeload.github.com/prometheus/node_exporter/tar.gz/v0.18.1 |
| mysql_exporter | 0.12.1 | https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz |
| grafana | 7.1.5 | https://mirrors.huaweicloud.com/grafana/7.1.5/grafana-7.1.5.linux-amd64.tar.gz |
| mysql | 8.0.20 | http://mirrors.sohu.com/mysql/MySQL-8.0/mysql-8.0.20.tar.gz |
二、搭建Go環境
-
執行
tar解壓到/usr/loacl目錄下,得到go檔案夾tar -C /usr/local -zxvf go1.10.3.linux-amd64.tar.gz -
添加
/usr/loacl/go/bin目錄到PATH變數中,添加到/etc/profile或$HOME/.profile都可以// 習慣用vim,沒有的話可以用命令`sudo apt-get install vim`安裝一個
vim /etc/profile
// 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
// wq保存退出后source一下
source /etc/profile -
執行
go version,如果顯示版本號,則Go環境安裝成功,
三、部署prometheus
1.下載部署
# 下載
[root@prometheus src]# cd /usr/local/src/
[root@prometheus src]# wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz
# 部署到/usr/local/目錄
# promethus不用編譯安裝,解壓目錄中有組態檔與啟動檔案
[root@prometheus src]# tar -zxvf prometheus-2.0.0.linux-amd64.tar.gz -C /usr/local/
[root@prometheus src]# cd /usr/local/
[root@prometheus local]# mv prometheus-2.0.0.linux-amd64/ prometheus/
# 驗證
[root@prometheus local]# cd prometheus/
[root@prometheus prometheus]# ./prometheus --version

2.組態檔
# 解壓目錄中的prometheus.yml
# 簡單驗證,主要配置采用默認檔案配置,有修改/新增處用紅色標示
[root@prometheus prometheus]# vim prometheus.yml
# 全域配置global:
scrape_interval: 15s # 設定抓取(pull)時間間隔,默認是1m
evaluation_interval: 15s # 設定rules評估時間間隔,默認是1m
# scrape_timeout is set to the global default (10s).
# 告警管理配置,暫未使用,默認配置alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# 加載rules,并根據設定的時間間隔定期評估,暫未使用,默認配置rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# 抓取(pull),即監控目標配置
# 默認只有主機本身的監控配置scrape_configs:
# 監控目標的label(這里的監控目標只是一個metric,而不是指某特定主機,可以在特定主機取多個監控目標),在抓取的每條時間序串列中都會添加此label
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
# 可覆寫全域配置設定的抓取間隔,由15秒重寫成5秒,
scrape_interval: 5s
# 靜態指定監控目標,暫不涉及使用一些服務發現機制發現目標static_configs:
- targets: ['localhost:9090']
# (opentional)再添加一個label,標識了監控目標的主機
labels:
instance: prometheus
- job_name: 'linux'
scrape_interval: 10s
static_configs:
# 采用node_exporter默認開放的埠
- targets: ['localhost:9100']
labels:
instance: node1
3.設定用戶
# 添加用戶,后期用此賬號啟動服務
[root@prometheus prom etheus]# groupadd prometheus
[root@prometheus prometheus]# useradd -g prometheus -s /sbin/nologin prometheus
# 賦權
[root@prometheus prometheus]# cd ~
[root@prometheus ~]# chown -R prometheus:prometheus /usr/local/prometheus/
# 創建prometheus運行資料目錄
[root@prometheus ~]# mkdir -p /var/lib/prometheus
[root@prometheus ~]# chown -R prometheus:prometheus /var/lib/prometheus/
4.設定開機自啟動
[root@prometheus ~]# touch /usr/lib/systemd/system/prometheus.service
[root@prometheus ~]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
# Type設定為notify時,服務會不斷重啟
Type=simple
User=prometheus
# --storage.tsdb.path是可選項,默認資料目錄在運行目錄的./dada目錄中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 設定開機啟動
[root@prometheus ~]# systemctl enable Prometheus
[root@prometheus ~]# systemctl start prometheus
5.設定iptables
[root@prometheus ~]# iptables -I INPUT -p tcp --dport 9090 -j ACCEPT # linux iptables開放埠命令
#下面的命令是修改iptables表的指令,但是我自測行不通
#[root@prometheus ~]# vim /etc/sysconfig/iptables
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT
# 也有說是這種指令 -A INPUT -p udp -m udp --dport 631 -j ACCEPT,也沒測驗通過
# 具體可以參考鏈接: https://www.cnblogs.com/xiujin/p/11494471.html
[root@prometheus ~]# service iptables restart
6.啟動并驗證
-
查看服務狀態
[root@prometheus ~]# systemctl status prometheus

[root@prometheus ~]# netstat -tunlp | grep 9090

-
web ui
Prometheus自帶有簡單的UI,http://localhost:9090

在Status選單下,Configuration,Rule,Targets等,
Statu-->Configuration展示prometheus.yml的配置,如下:

四、部署node_exporter
Node_exporter收集機器的系統資料,這里采用prometheus官方提供的exporter,除node_exporter外,官方還提供consul,memcached,haproxy,mysqld等exporter,具體可查看官網,
1.下載&部署
# 部署
[root@node1 src]# tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/
[root@node1 src]# cd /usr/local/
[root@node1 local]# mv node_exporter-0.18.1.linux-amd64/ node_exporter/
2.設定用戶
[root@node1 ~]# groupadd prometheus
[root@node1 ~]# useradd -g prometheus -s /sbin/nologin prometheus
[root@node1 ~]# chown -R prometheus:prometheus /usr/local/node_exporter/
3.設定開機啟動
[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
?
[root@node1 ~]# systemctl enable node_exporter
[root@node1 ~]# systemctl start node_exporter
4.設定iptables
# 官方node_exporter默認使用9100埠
[root@node1 ~]# iptables -I INPUT -p tcp --dport 9090 -j ACCEPT # linux iptables開放埠命令
[root@node1 ~]# service iptables restart
5.驗證
訪問:http://local:9090,可見node1主機已經可被監控,如下:

五、部署grafana
1.下載&部署
# 部署
[root@node1 src]# tar -zxvf grafana-7.1.5.linux-amd64.tar.gz -C /usr/local/
[root@node1 src]# cd /usr/local/
[root@node1 local]# mv grafana-7.1.5.linux-amd64/ grafana/
2.組態檔
組態檔位于/etc/grafana/grafana.ini,這里暫時保持默認配置即可,
3.設定開機啟動
[root@localhost system]# vim /usr/lib/systemd/system/grafana-server.service
[Unit]
Description=Grafana
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/grafana/bin/grafana-server -homepath /usr/local/grafana
Restart=on-failure
[Install]
WantedBy=multi-user.target
?
[root@prometheus src]# systemctl enable grafana-server
[root@prometheus src]# systemctl start grafana-server
4.設定iptables
# 官方node_exporter默認使用3000埠
[root@node1 ~]# iptables -I INPUT -p tcp --dport 3000 -j ACCEPT # linux iptables開放埠命令
[root@node1 ~]# service iptables restart
5.添加資料源
-
登錄
訪問:http://localhost,默認賬號/密碼:admin/admin

-
添加資料源
在登陸首頁,點擊"Add data source"按鈕,跳轉到添加資料源頁面,配置如下:
Name: prometheus
URL: http://localhost:9090/
Access: Browser
取消Default的勾選,其余默認,點擊"Add",如下:

在"Dashboards"頁簽下"import"自帶的模版,如下:

6.匯入dashboard
從grafana官網下載相關dashboaed到本地,如:https://grafana.com/dashboards/405
Grafana首頁-->左上角圖示-->Dashboard-->import

Upload已下載至本地的json檔案(或者使用dashboard id,如這里的405),如下:

資料源選擇"prometheus",即添加的資料源name,點擊"Import"按鈕,如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/253352.html
標籤:其他
上一篇:linux升級內核
