国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 集群監(jiān)控部署:prometheus + node-exporter + Grafana

這篇具有很好參考價值的文章主要介紹了Linux 集群監(jiān)控部署:prometheus + node-exporter + Grafana。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Linux 集群監(jiān)控部署:prometheus + node-exporter + Grafana

一、前言

之前我們有用到top、free、iostat等等命令,去監(jiān)控服務(wù)器的性能,但是這些命令,我們只針對單臺服務(wù)器進(jìn)行監(jiān)控,通常我們線上都是一個集群的項目,難道我們需要每一臺服務(wù)器都去敲命令監(jiān)控嗎?這樣顯然不是符合邏輯的,Linux中就提供了一個集群監(jiān)控工具 – prometheus。

二、搭建被監(jiān)測節(jié)點 node_exporter

2.1 查看Linux系統(tǒng)版本

該命令僅適合Redhat系列的Linux系統(tǒng),顯示的版本信息也比較簡單

cat /etc/redhat-release

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

2.2 部署前的準(zhǔn)備

關(guān)閉所有Linux機(jī)器的防火墻:systemctl stop firewalld.service
保證所有Linux機(jī)器的時間是準(zhǔn)確的,執(zhí)行date命令檢查;如果不準(zhǔn)確,建議使用。
如果你Linux上的時間不準(zhǔn)確,可以使用ntp命令同步網(wǎng)絡(luò)時間。

首先 ntp 需要安裝

yun intall -y ntp
#安裝成功之后,輸入如下命令
ntpdate pool.ntp.org

2.3 部署Linux操作系統(tǒng)監(jiān)控組件

下載監(jiān)控Linux的exporter(注意選擇自己的操作系統(tǒng),我的操作系統(tǒng)是 Linux centos7.9),下載鏈接:https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

將node_export 包上傳到需要被監(jiān)控的Linux服務(wù)器上,任意的目錄下,執(zhí)行解壓命令。

```bash
#1.解壓命令
tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
#2.使用復(fù)制命令復(fù)制到 node_exporter 文件夾
mv node_exporter-1.6.1.linux-amd64 node_exporter
進(jìn)入解壓后的文件夾中,執(zhí)行啟動腳本。

#1.進(jìn)入 node_exporter 文件夾
cd node_exporter
#2.執(zhí)行啟動腳本
nohup ./node_exporter
#3.查看nohup日志,tail -100 nohup.out,出現(xiàn)如下日志,代表啟動成功
注意:極有可能發(fā)生如下,報錯信息如下:顯示 listen tcp :9100: bind: address already in use 9100端口被占用,那么如何殺掉9100端口的進(jìn)程呢?
[root@mysql node_exporter-1.3.1.linux-amd64]# systemctl status  node_exporter
● node_exporter.service - node_exporter
   Loaded: loaded (/etc/systemd/system/node_exporter.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2023-02-08 14:21:40 CST; 8s ago
  Process: 32897 ExecStart=/opt/module/node_exporter-1.3.1.linux-amd64/node_exporter (code=exited, status=1/FAILURE)
 Main PID: 32897 (code=exited, status=1/FAILURE)

Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=timex
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=udp_queues
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=uname
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=vmstat
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=xfs
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:115 level=info collector=zfs
Feb 08 14:21:40 mysql systemd[1]: Unit node_exporter.service entered failed state.
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:199 level=info msg="Listening on" address=:9100
Feb 08 14:21:40 mysql node_exporter[32897]: ts=2023-02-08T06:21:40.435Z caller=node_exporter.go:202 level=error err="listen tcp :9100: bind: address already in use"
Feb 08 14:21:40 mysql systemd[1]: node_exporter.service failed.
打開linux系統(tǒng),在linux的桌面的空白處右擊。
  1. 在彈出的下拉選項里,點擊打開終端。
  2. 在終端窗口中輸入 netstat -tln | grep 被占用的端口命令。 輸入 lsof -i:被占端口命令,回車后可查 看端口被那個進(jìn)程占用。
  3. 輸入kill -9 進(jìn)程 id命令,回車后即可殺死占用的端口進(jìn)程。(一般情況下不建議直接殺死進(jìn)程)
    我的端口號是被 gitlab-prometeus 占用的

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

第一種解決方案:kill -9 進(jìn)程號

yum install lsof
lsof -i:9100
kill -9 pid進(jìn)程號

#無法kill掉的時候,可以使用如下的命令
gitlab-ctl stop node_exporter

#查看狀態(tài)
gitlab-ctl stop node_exporter

第二種解決方案:修改 node_exporter 端口號

#1.新增一個 node_exporter 服務(wù)
vi /usr/lib/systemd/system/node_exporter.service
#2.粘貼如下命令
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9111
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target

#3.執(zhí)行如下的命令重新加載系統(tǒng)服務(wù)
systemctl daemon-reload
#4.啟動服務(wù)
systemctl start node_exporter.service
#5.查看服務(wù)狀態(tài)
systemctl status node_export.service
image-20230802182202762

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

出現(xiàn)如上的結(jié)果表示 node_exporter.service 啟動成功。

2.4 啟動成功之后,訪問對應(yīng)的接口

例如:http://192.168.xx.7:9111/metrics

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

出現(xiàn)如上的結(jié)果表示結(jié)果正常。

三、搭建監(jiān)測節(jié)點

3.1 下載包鏈接:

3.1.1 Linux系統(tǒng)下載

#1.下載命令
wget https://github.com/prometheus/prometheus/releases/download/v2.46.0/prometheus-2.46.0.linux-amd64.tar.gz

#2.將 Prometheus 上傳到一臺單獨的Linux機(jī)器上,然后執(zhí)行下面的解壓命令
tar -zxvf prometheus-2.46.0.linux-amd64.tar.gz

#3.移動修改文件名稱
mv prometheus-2.46.0.linux-amd64 prometheus

#4.進(jìn)入解壓后的文件夾中,修改配置文件,添加要監(jiān)控的服務(wù)器信息 ip
vim prometheus.yml
#5.添加如下的命令,其目的是在scrape_configs 配置項下添加 Linux 監(jiān)控的 job,其中 IP 修改為 node_exporter 機(jī)器的ip,端口號默認(rèn)是9100的,自己修改的端口號寫自己的端口號。(復(fù)制粘貼下面的配置信息)

 - job_name: "linux"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["192.168.xx.7:9111"]

#6.保存配置文件,啟動prometheus
 nohup ./prometheus &
// 檢查nohup.out日志,如果有以下信息,啟動成功
#7.在瀏覽器中訪問部署的prometheus:http://ip:9090,點擊菜單欄 Status -> Targets,看到頁面中有如下node節(jié)點,代表 Prometheus 和 node_exporter 鏈接成功。 出現(xiàn)如下的結(jié)果就正常。

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

3.1.2 Windows系統(tǒng)下載

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

鏈接:https://github.com/prometheus/prometheus/releases/download/v2.46.0/prometheus-2.46.0.windows-amd64.zip

#3.移動修改文件名稱
mv prometheus-2.46.0.linux-amd64 prometheus

#4.進(jìn)入解壓后的文件夾中,修改配置文件,添加要監(jiān)控的服務(wù)器信息 ip
prometheus.yml
#5.添加如下的命令,其目的是在scrape_configs 配置項下添加 Linux 監(jiān)控的 job,其中 IP 修改為 node_exporter 機(jī)器的ip,端口號默認(rèn)是9100的,自己修改的端口號寫自己的端口號。(復(fù)制粘貼下面的配置信息)

 - job_name: "linux"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["192.168.xx.7:9111"]

#6.在promehteus的文件夾下找到
prometheus.exe 點擊運行

#7.在瀏覽器中訪問部署的prometheus:http://ip:9090,點擊菜單欄 Status -> Targets,看到頁面中有如下node節(jié)點,代表 Prometheus 和 node_exporter 鏈接成功。 出現(xiàn)如下的結(jié)果就正常。
3.2 部署Grafana
下載安裝granfana,(和prometheus 同一臺服務(wù)器)輸入命令安裝。
#1.下載及安裝 granfana
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.0-1.x86_64.rpm

#2.啟動 granfana
systemctl start granfana-server

#3.在瀏覽器訪問:http://ip:3000/
#4.用戶名/密碼:首次登陸用戶名/密碼為:admin/admin,然后會讓你修改密碼。如果不設(shè)置的話,可以直接點擊skip。
登陸界面

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

自定義用戶名和密碼
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

添加你的第一個數(shù)據(jù)源

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

選擇prometheus 進(jìn)行添加linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

設(shè)置prometheus 的 name 和 url 鏈接地址
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

保存及測試
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

創(chuàng)建自己的面板
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

創(chuàng)建所需要的 Dashboards
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

導(dǎo)入 dashboard
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

官方Dashboard網(wǎng)站 在該頁面搜索 Node Export ,直接選擇中文的或者選擇英文的。

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

選擇對應(yīng)的 DashBoard ID
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

整體效果如下
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

整體效果-2linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

四、郵件警告

4.1 告警介紹

在Prometheus 平臺中,警報由獨立的自建 Alertmanager 處理。通常情況下,我們首先告訴 Prometheus Altertmanager 所在的位置,然后在 Prometheus 配置中創(chuàng)建警報規(guī)則,最后配置 Altertmanager 來處理警報并發(fā)送給接收者(郵件,webhook,slack等)。

在QQ郵箱開通授權(quán)碼:

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

4.2 配置 alertmanager.yml 文件

alertmanager.yml

global:  
  resolve_timeout: 15s
  smtp_smarthost: 'smtp.qq.com:465' #smtp服務(wù)
  smtp_from: 'xxxxxx@qq.com' #發(fā)送郵箱
  smtp_auth_username: 'xxxxxx@qq.com' #用戶郵箱
  smtp_auth_password: 'vkqubunlwssebbij' #授權(quán)碼
  smtp_hello: '@qq.com'
  smtp_require_tls: false
templates:
  - 'D:\softwore\alertmanager-0.25.0.windows-amd64\tmpl\email.tmpl'  #增加templates配置 不填寫,有默認(rèn)模板
route:
  group_by: ['alertname']
  group_wait: 20s
  group_interval: 5m
  repeat_interval: 5m 
  receiver: 'email'
receivers:
- name: 'email'
  email_configs:
  - to: 'xxxxxx@qq.com' #發(fā)給那個郵箱
    html: '{{ template "email.html" . }}' #警告模板
    send_resolved: true
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

4.3 配置 prometheus.yml 文件

prometheus.yml

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["127.0.0.1:9093"] # 配置 node-exporter 地址
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "rules/rules.yml" # 配置的警告規(guī)則 文件
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  - job_name: "node-exporter"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["192.168.50.7:9111"]


  - job_name: "alertmanager"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["127.0.0.1:9093"]

4.4 配置rules.yml 規(guī)則

rules.yml

groups:
- name: general.rules
  rules:
  - alert: "Memory 使用率"
    expr: round(100- node_memory_MemAvailable_bytes/node_memory_MemTotal_bytes*100) > 99
    for: 15s
    labels:
      severity: warning
    annotations:
      summary: "內(nèi)存使用率過高大于90%,當(dāng)前使用率{{ $value }}%"
  - alert: InstanceDown
    expr: up{job="node-exporter"} == 0
    for: 10s
    labels:
      severity: warning
    annotations: 
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."
      summary: "{{ $labels.instance }} 已停止運行超過 10s!"
  - alert: "CPU使用率過高"
    expr: ceil(100 - sum(increase(node_cpu_seconds_total{job="node-exporter",mode="idle"}[5m]))  by(instance) / sum(increase(node_cpu_seconds_total{job="node-exporter"}[5m])) by(instance)*100) > 90
    for: 10s
    labels:
      severity: warning
    annotations: 
      description: "{{ $labels.instance }} 的 {{ $labels.mountpoint }} CPU使用大于90%"
      summary: "{{ $labels.mountpoint  }} CPU使用率過高!"
  - alert: "Disk 使用率"
    expr: round((1 - (node_filesystem_avail_bytes{fstype=~"ext3|ext4|xfs|nfs",job="node-exporter"} / node_filesystem_size_bytes{fstype=~"ext3|ext4|xfs|nfs",job="node-exporter"})) * 100)  > 90
    for: 10s
    labels:
      severity: warning
    annotations: 
      description: "{{ $labels.instance }}的{{ $labels.mountpoint }} 分區(qū)使用大于90% (當(dāng)前值: {{ $value }}%)"
      summary: "{{ $labels.instance }}:{{ $labels.mountpoint }} 分區(qū)使用率過高"

4.5 配置 email.tmpl 警告內(nèi)容通知模板

{{ define "email.html" }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 異常告警 ======== <br>
告警程序: prometheus_alert <br>
告警級別: {{ $alert.Labels.severity }}<br>
告警名稱: {{ $alert.Labels.alertname }} <br>
告警機(jī)器: {{ $alert.Labels.instance }} {{ $alert.Labels.device }} <br>
告警主題: {{ $alert.Annotations.summary }} <br>
告警詳情: {{ $alert.Annotations.description }} <br>
告警時間: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }} <br>
========== END ========== <br>
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert := .Alerts -}}
======== 告警恢復(fù) ======== <br>
告警名稱: {{ $alert.Labels.alertname }} <br>
告警級別: {{ $alert.Labels.severity }} <br>
告警機(jī)器: {{ $alert.Labels.instance }} <br>
告警詳情: {{ $alert.Annotations.summary }} <br>
告警時間: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }} <br>
恢復(fù)時間: {{ $alert.EndsAt.Format "2006-01-02 15:04:05" }} <br>
========== END ========== <br>
{{- end }}
{{- end }}
{{- end }}

##4.6 郵件通知效果如下
linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

4.7 具體內(nèi)容如下

linux安裝prometheus,Linux運維,開發(fā)語言,linux,prometheus

五、自動化部署腳本

5.1 Linux 命令詳解

top 命令經(jīng)常用來監(jiān)控Linux的系統(tǒng)狀況,是常用的性能分析工具,能夠?qū)崟r分析系統(tǒng)中各個進(jìn)程的資源占用情況。

5.1.1 常用參數(shù)

top 的使用方式 top [-d number] | top [-bnp]

參數(shù) 	  含義
-d number number 代表秒數(shù),表示top命令顯示的頁數(shù)更新一次的間隔(default=5s)
-b	      以批次的方式執(zhí)行top
-n	      與-b配合使用,表示需要進(jìn)行幾次 top 命令的輸出結(jié)果
-p	      指定特定的pid進(jìn)程號進(jìn)行觀察

5.1.2 top 命令顯示的頁面還可以輸入一下按鍵執(zhí)行相應(yīng)的功能(注意大小寫區(qū)分的)

參數(shù)	含義
?	顯示在top當(dāng)中可以輸入的命令
P	以CPU的使用資源排序顯示
M	以內(nèi)存的使用資源排序顯示
N	以 pid 排序顯示
T	由進(jìn)程使用的時間累計排序顯示
k	給某一個pid一個信號,可以用來殺死進(jìn)程(9)
r	給某個pid重新定制一個nice值(即優(yōu)先級)
q	推出 top(用ctr + c也可以退出 top)

5.1.3 top 各輸出參數(shù)含義

1.top 前五條信息解釋
top - 13:41:32 up 48 days, 15:36, 3 users, load average: 0.72,0.66,0.68
內(nèi)容	                          含義
13:41:32	                  表示當(dāng)前時間
up 48 days,15:36	          系統(tǒng)運行時間,格式為時:分
3 users	                      當(dāng)前登陸用戶數(shù)
load average:0.72,0.66,0.68	  系統(tǒng)負(fù)載,即任務(wù)隊列的平均長度。三個數(shù)值分別為1分鐘,5分鐘,15分鐘前到現(xiàn)在的平均值

第二行的數(shù)據(jù)

Tasks: 465 total, 1 running, 644 sleeping, 0 stopped, 0 zombie
內(nèi)容	              含義
Tasks:465 total	  進(jìn)程總數(shù)
1 running	      正在運行的進(jìn)程數(shù)
644 sleeping	  睡眠的進(jìn)程
0 stopped	      停止的進(jìn)程數(shù)
0 zombie	      僵尸進(jìn)程數(shù)

第三行數(shù)據(jù)

Cpu(s):3.8%us, 1.8%sy, 0.0%ni,94.3%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
內(nèi)容	      含義
3.8%us	用戶空間占用CPU百分比
1.8%sy	內(nèi)核空間占用CPU百分比
0.0%ni	    用戶進(jìn)程空間內(nèi)改變過優(yōu)先級的進(jìn)程占用CPU百分比
94.3%id	空閑CPU百分比
0.1%wa	等待輸入輸出的CPU時間百分比
0.0%hi  	硬中斷(Hardware IRQ)占用CPU的百分比
0.0%si	   軟中斷(Software Interrupts)占用 CPU 的百分比
0.0 st	   用于有虛擬機(jī) cpu 的情況,用來指示被虛擬機(jī)偷掉的 cpu 時間
第四行數(shù)據(jù)
KiB Mem: 32365492 total, 377508 free, 25695388 used, 6292596 buffers/cache
內(nèi)容	             含義
32365492 total	物理內(nèi)存總量
377508 free	    空閑內(nèi)從總量
25695388 used	使用的物理內(nèi)存總量
6292596 buffers/cache	用作內(nèi)核緩存的內(nèi)存量
第五行數(shù)據(jù)
KiB Swap: 29360120 total, 13275880 free,16084240 used,  2091316 avail Mem
內(nèi)容	            含義
29360120 total	交換區(qū)總量
13275880 free	空閑交換區(qū)總量
16084240 used	使用的交換區(qū)總量
2091316 avail Mem	可用交換取總量
5.1.4 進(jìn)程信息
列名  	含義
PID	    進(jìn)程id
USER	進(jìn)程所有者的用戶名
PR	    優(yōu)先級
NI      nice 值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級
VIRT	進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
RES	    進(jìn)程使用的,違背換出的物理內(nèi)存大小,單位kb。RES = CODE + DATA
SHR	    共享內(nèi)存大小,單位kb
S	    進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程
%CPU	上次更新到現(xiàn)在的CPU時間占用百分比
%MEM	進(jìn)程使用的物理內(nèi)存百分比
TIME+	進(jìn)程使用的CPU時間總計,單位1/100秒
默認(rèn)進(jìn)入 top 時,各進(jìn)程是按照 CPU 的占用了來排序的。

5.2 安裝 node_exporter 節(jié)點 shell 腳本

5.2.1 創(chuàng)建node_exporter shell 腳本

#1.創(chuàng)建node_exporter.sh 腳本
touch node_exporter.sh
#2.編輯node_exporter.sh腳本
vim node_exporter.sh

粘貼下面內(nèi)容,到 node_exporter.sh 里面

#1.首先 ntp 需要安裝,進(jìn)行時間同步
yun intall -y ntp
#2.安裝成功之后,輸入如下命令
ntpdate pool.ntp.org
#3.下載 node_exporter 安裝包
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
#4.解壓到當(dāng)前文件夾或解壓到固定文件夾
tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
#5.使用復(fù)制命令復(fù)制到 node_exporter 文件夾
mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter

5.2.2 使用第6步到第8步進(jìn)行啟動,也可以使用5.2.3方式創(chuàng)建一個 node_exporter 服務(wù)

#6.進(jìn)入 /usr/local/node_exporter 文件夾
cd node_exporter
#7.執(zhí)行啟動腳本
nohup ./node_exporter
#8.查看nohup日志,tail -100 nohup.out,出現(xiàn)如下日志,代表啟動成功

5.2.3 創(chuàng)建一個 node_exporter 服務(wù)

【優(yōu)點】:可以在服務(wù)器任何地方執(zhí)行,不用進(jìn)入文件夾下執(zhí)行命令。

#1.新增一個 node_exporter 服務(wù)
touch /usr/lib/systemd/system/node_exporter.service
filename="/usr/lib/systemd/system/node_exporter.service"
#2.粘貼如下命令
cat>"${filename}" << EOF
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9111
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
#3.執(zhí)行如下的命令重新加載系統(tǒng)服務(wù)
systemctl daemon-reload
#4.啟動服務(wù)
systemctl start node_exporter.service
#5.查看服務(wù)狀態(tài)
systemctl status node_export.service

【腳本一】

#1.首先 ntp 需要安裝,進(jìn)行時間同步
yun intall -y ntp
#2.安裝成功之后,輸入如下命令
ntpdate pool.ntp.org
#3.下載 node_exporter 安裝包
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
#4.解壓到當(dāng)前文件夾或解壓到固定文件夾
tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
#5.使用復(fù)制命令復(fù)制到 node_exporter 文件夾
mv node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter

#6.新增一個 node_exporter 服務(wù)
touch /usr/lib/systemd/system/node_exporter.service
filename="/usr/lib/systemd/system/node_exporter.service"
#7.粘貼如下命令
cat>"${filename}" << EOF
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9111
[Install]
WantedBy=multi-user.target
[Unit]
Description=node_exporter
After=network.target
EOF
#8.執(zhí)行如下的命令重新加載系統(tǒng)服務(wù)
systemctl daemon-reload
#9.啟動服務(wù)
systemctl start node_exporter.service
#10.設(shè)置node-exporter開機(jī)啟動
systemctl enable node-exporter.service
#11.查看服務(wù)狀態(tài)
systemctl status node_export.service

【腳本二】文章來源地址http://www.zghlxwxcb.cn/news/detail-756420.html

#!/bin/bash
#變量
set -e
COLOR="echo -e \\E[1;32m"
COLOR1="echo -e \\E[1;31m"
END="\\E[0m"
install_dir="/apps"

#函數(shù)
node_exporter_install() {
#判斷安裝目錄是否存在
[ -f ${install_dir} ] || mkdir -p $install_dir
#下載軟件
cd $install_dir
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.0/node_exporter-1.2.0.linux-amd64.tar.gz &> /dev/null
#解壓軟件包,并創(chuàng)建軟鏈接
tar xf node_exporter-1.2.0.linux-amd64.tar.gz
ln -sv node_exporter-1.2.0.linux-amd64 node_exporter &> /dev/null
#創(chuàng)建node-exporter的service文件
cat > /usr/lib/systemd/system/node-exporter.service <<EOF
[Unit]
Description=This is prometheus node exporter

[Service]
Type=simple
ExecStart=/apps/node_exporter/node_exporter
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF
#同步service文件
systemctl daemon-reload
#啟動node-exporter
systemctl start node-exporter.service
#設(shè)置node-exporter開機(jī)啟動
systemctl enable node-exporter.service &> /dev/null
}

node_exporter_install

#變量
node_exporter_port=`ss -ntlp | grep -o 9100`
if [ $node_exporter_port == "9100" ];then
    ${COLOR}node-exporter安裝成功!${END}
else
    ${COLOR1}node-exporter安裝失敗!${END}
fi

5.3 prometheus shell 腳本

#1.下載命令
wget https://github.com/prometheus/prometheus/releases/download/v2.46.0/prometheus-2.46.0.linux-amd64.tar.gz

#2.將 Prometheus 上傳到一臺單獨的Linux機(jī)器上,然后執(zhí)行下面的解壓命令
tar -zxvf prometheus-2.46.0.linux-amd64.tar.gz

#3.移動修改文件名稱
mv prometheus-2.46.0.linux-amd64 prometheus

#4.進(jìn)入解壓后的文件夾中,修改配置文件,添加要監(jiān)控的服務(wù)器信息 ip
cd prometheus

#5.添加如下的命令,其目的是在scrape_configs 配置項下添加 node-exporter 監(jiān)控的 job,其中 IP 修改為 node_exporter 機(jī)器的ip,端口號默認(rèn)是9100的,自己修改的端口號寫自己的端口號。(復(fù)制粘貼下面的配置信息)
vim prometheus.yml

 - job_name: "node-exporter"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["192.168.xx.7:9111"]
      
#6.保存配置文件,啟動prometheus
 nohup ./prometheus &
// 檢查nohup.out日志,如果有以下信息,啟動成功
#7.在瀏覽器中訪問部署的prometheus:http://ip:9090,點擊菜單欄 Status -> Targets,看到頁面中有如下node節(jié)點,代表 Prometheus 和 node_exporter 鏈接成功。 出現(xiàn)如下的結(jié)果就正常。

5.4 grafana 腳本

#1.下載及安裝 granfana
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.0-1.x86_64.rpm

#2.啟動 granfana
systemctl start granfana-server
#3.查看端口驗證
netstat -nlpt|grep 3000
#4.在瀏覽器訪問:http://ip:3000/
#5.用戶名/密碼:首次登陸用戶名/密碼為:admin/admin,然后會讓你修改密碼。如果不設(shè)置的話,可以直接點擊skip。

到了這里,關(guān)于Linux 集群監(jiān)控部署:prometheus + node-exporter + Grafana的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Kibana+Prometheus+node_exporter 監(jiān)控告警部署

    Kibana+Prometheus+node_exporter 監(jiān)控告警部署

    下載好三個軟件包 一、prometheus安裝部署 1、解壓 ?2、修改配置文件的IP地址 3、運行Prometheus 4、打開瀏覽器根據(jù)配置文件的地址和端口訪問,如果狀態(tài)欄看到的跟下圖不一樣,記得在標(biāo)簽欄中的Status狀態(tài)選擇Targets ?二、node_exporter 安裝部署 1、解壓,運行 ?2、打開瀏覽器輸入

    2024年02月15日
    瀏覽(19)
  • 二進(jìn)制部署Prometheus + Grafana監(jiān)控集群,及各exporter安裝

    二進(jìn)制部署Prometheus + Grafana監(jiān)控集群,及各exporter安裝

    Prometheus三大組件: Server 主要負(fù)責(zé)數(shù)據(jù)采集和存儲,提供PromQL查詢語言的支持。 Alertmanager 警告管理器,用來進(jìn)行報警。 Push Gateway 支持臨時性Job主動推送指標(biāo)的中間網(wǎng)關(guān)。 Prometheus是由SoundCloud開發(fā)的開源監(jiān)控報警系統(tǒng)和時序列數(shù)據(jù)庫(TSDB)。Prometheus使用Go語言開發(fā),是Google B

    2024年02月13日
    瀏覽(27)
  • 【大數(shù)據(jù)監(jiān)控】Prometheus、Node_exporter、Graphite_exporter安裝部署詳細(xì)文檔

    【大數(shù)據(jù)監(jiān)控】Prometheus、Node_exporter、Graphite_exporter安裝部署詳細(xì)文檔

    Prometheus是一個開源的系統(tǒng)監(jiān)控和報警系統(tǒng),現(xiàn)在已經(jīng)加入到CNCF基金會,成為繼k8s之后第二個在CNCF托管的項目,在kubernetes容器管理系統(tǒng)中,通常會搭配prometheus進(jìn)行監(jiān)控,同時也支持多種exporter采集數(shù)據(jù),還支持pushgateway進(jìn)行數(shù)據(jù)上報,Prometheus性能足夠支撐上萬臺規(guī)模的集群。

    2023年04月08日
    瀏覽(74)
  • prometheus使用node_exporter監(jiān)控Linux主機(jī)CPU、內(nèi)存、磁盤、服務(wù)運行狀況

    prometheus使用node_exporter監(jiān)控Linux主機(jī)CPU、內(nèi)存、磁盤、服務(wù)運行狀況

    目錄 1.node_exporter簡介 2.部署node_exporter 2.1.安裝node_exporter 2.2.編寫system啟動腳本 3.prometheus監(jiān)控Linux主機(jī) 3.1.修改配置文件增加主機(jī)節(jié)點 3.2.主機(jī)添加成功 4.監(jiān)控Linux主機(jī)CPU、內(nèi)存、磁盤使用率 4.1.監(jiān)控CPU使用率 4.1.1.獲取空閑CPU監(jiān)控數(shù)據(jù) 4.1.2.獲取5分鐘內(nèi)的監(jiān)控數(shù)據(jù) 4.1.3.獲取5分鐘

    2024年04月16日
    瀏覽(52)
  • 基于Prometheus+Grafana搭建監(jiān)控平臺(Windows/Linux環(huán)境exporter部署)

    基于Prometheus+Grafana搭建監(jiān)控平臺(Windows/Linux環(huán)境exporter部署)

    1.1 Prometheus是什么?Prometheus(普羅米修斯)是一個最初在SoundCloud上構(gòu)建的監(jiān)控系統(tǒng)。自2012年成為社區(qū)開源項目,擁有非?;钴S的開發(fā)人員和用戶社區(qū)。為強(qiáng)調(diào)開源及獨立維護(hù),Prometheus于2016年加入云原生云計算基金會(CNCF),成為繼Kubernetes之后的第二個托管項目。 Prometheus

    2024年01月19日
    瀏覽(31)
  • Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux部署docker以及prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警)

    Linux安裝docker以及部署prometheus+node_exporter+mysqld-exporter+grafana+cadvisor+Alertmanager(告警) 1、官方安裝腳本自動安裝docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2、啟動docker systemctl start docker 3、搜索鏡像-例如搜索prometheus docker search prom/prometheus 4、拉取鏡像--這里僅列出我

    2024年03月15日
    瀏覽(28)
  • Prometheus監(jiān)控實戰(zhàn)之node_exporter詳解

    Prometheus監(jiān)控實戰(zhàn)之node_exporter詳解

    目錄 1 概述 2 功能 2.1 不同操作系統(tǒng)采集端 2.2?linux操作系統(tǒng)采集端 2.3 監(jiān)控指標(biāo) 2.4 參數(shù)定義 2.4.1?默認(rèn)啟用的參數(shù) ?2.4.2?默認(rèn)不啟用的參數(shù) 2.5 啟動參數(shù) 3 安裝部署 3.1?下載 3.2?安裝配置 3.3 測試驗證 3.4 prometheus配置 3.5?在 grafana 中添加圖表? ?Exporter是Prometheus的指標(biāo)數(shù)據(jù)收

    2024年02月03日
    瀏覽(27)
  • (mac)Prometheus監(jiān)控之Node_exporter(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)

    (mac)Prometheus監(jiān)控之Node_exporter(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等)

    1.啟動 Prometheus 普羅米修斯? 瀏覽器訪問? http://localhost:9090/targets ?2.啟動Node_exporter? 訪問: http://localhost:9100 ?? 3.啟動grafana 訪問 http://localhost: 3000? 4.添加數(shù)據(jù)源 5.查看Dashboard? ?普羅米修斯是后端數(shù)據(jù)監(jiān)控平臺,通過Node_exporter收集數(shù)據(jù),Grafana將數(shù)據(jù)用圖形的方式展示出來

    2024年04月26日
    瀏覽(30)
  • 免費開源服務(wù)器資源監(jiān)控系統(tǒng)grafana+prometheus+node_exporter

    免費開源服務(wù)器資源監(jiān)控系統(tǒng)grafana+prometheus+node_exporter

    有項目做測試的時候需要查詢服務(wù)器資源利用情況,自己又沒寫相應(yīng)的模塊,此時就需要一套好用的資源監(jiān)控系統(tǒng),,咨詢了運維人員給推薦了一套,裝完后真的很好用。 就是grafana+prometheus+ node_exporter(linux)或者windows_exporter(wins) 具體介紹不多說: 1、grafana是對數(shù)據(jù)做展

    2024年02月12日
    瀏覽(21)
  • Docker Desktop 部署 mysql-exporter 監(jiān)控(Prometheus,mysql-exporter)時遇到的一些問題

    本次使用 Prometheus 系列的監(jiān)控組件,只部署了 mysql 相關(guān)組件: mysql , mysqld-exporter , Prometheus 。 Docker 使用的是 Docker Desktop。 最開始部署時, docker-compose.yml 文件為: docker 部署 mysql 在這里就不細(xì)說,這里的配置只是我隨便寫的,只需要保證 mysql 能正常啟動就行。 注意 :這

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包