内网部署Prometheus-server结合grafana

目录

1.提取依赖包

2.所有节点安装chrony服务

2.1集群角色规划

[2.2 所有节点安装chrony服务](#2.2 所有节点安装chrony服务)

2.3添加hosts文件解析(服务端)

2.4修改时间服务器

​编辑

2.5重启chrony服务,使得配置生效

2.6修改客户端配置(注意是客户端其他节点)

2.6.1添加housts解析

2.6.2指定时间服务器

2.6.3重启chrony服务,使得配置生效

[2.6.4 测试时间服务器是否生效](#2.6.4 测试时间服务器是否生效)

[2.6.5 重启服务](#2.6.5 重启服务)

3.二进制部署prometheus-server

3.1创建工作目录

3.2解压软件包到指定路径

[3.3 创建符号链接](#3.3 创建符号链接)

3.4启动prometheus

3.4.1以相对路径启动

3.4.2以绝对路径启动

[3.4.3 以环境变量的方式启动](#3.4.3 以环境变量的方式启动)

[3.5 访问prometheus的WebUI](#3.5 访问prometheus的WebUI)

3.6将prometheus服务设置为开机自启动

3.7将服务设置开机自启动

3.7.1使用systemctl进行重载

[3.7.2使用API请求重载(要求启动服务时开启"--web.enable-lifecycle "参数)](#3.7.2使用API请求重载(要求启动服务时开启"--web.enable-lifecycle "参数))

4.部署node-exporter(所有节点安装)

[4.1 解压软件包到指定路径](#4.1 解压软件包到指定路径)

[4.2 启动node-exporter服务](#4.2 启动node-exporter服务)

5.Prometheus配置监控node-expoter

5.1重新加载配置文件

5.2访问Prometheus的WebUI

6.安装grafana

6.1内网部署需要很多依赖包(依次导入)

[6.2 启动grafana](#6.2 启动grafana)

6.3访问grafana的WebUI

6.4配置grafana的数据源为prometheus

6.4.1进入管理员界面

6.4.2添加数据源

6.4.3选择数据源为prometheus

6.4.4配置prometheus数据源

6.4.5保存配置

7.部署grafana并导入node-exporter模板(内网略过)

[7.1 进入到dashboard页面](#7.1 进入到dashboard页面)

[7.2 进入导入模板页面](#7.2 进入导入模板页面)

7.3选择相应的模板ID

8.grafana自定义dashboard案例

8.1创建dashboard

8.1.1新建dashboard

8.1.3创建可视化库

8.1.4效果图

8.2grafana的变量设置

[8.2.1 进入设置页面](#8.2.1 进入设置页面)

​编辑

8.2.3引用instance标签的值

8.2.5引用instance标签的值

8.2.6引用instance标签的值

[8.3Prom QL语句](#8.3Prom QL语句)

[9.Prom QL语句](#9.Prom QL语句)

9.1CPU核数

9.2CPU使用率

9.3内存总量

9.4内存使用率

9.5网络

9.6系统运行时间

9.7最大分区/data使用率

9.8系统负载(1m)

9.9过去5分钟内的网络上行速率,即每秒发送的字节数

[10.0 过去5分钟内每个实例的下行速率](#10.0 过去5分钟内每个实例的下行速率)

10.1磁盘IO读写时间

10.2磁盘每秒的I/O操作耗费时间(%)

[10.3TCP 连接情况](#10.3TCP 连接情况)

10.4磁盘读写速率(IOPS)

10.5磁盘读写容量大小

[10.6 上行速率大于0,表示没有延迟](#10.6 上行速率大于0,表示没有延迟)

[10.大概效果图 根据自己审美来](#10.大概效果图 根据自己审美来)

10.16.40.215

​编辑

10.16.36.204


1.提取依赖包

链接:https://pan.baidu.com/s/17bHDhmQvMHA3sg4s1OG0Sg

提取码:0124

--来自百度网盘超级会员V3的分享

2.所有节点安装chrony服务

2.1 集群角色规划

根据自己服务器规划

|-----|--------------|-----|----|------|-----------------------------------------|
| 主机名 | IP地址 | CPU | 内存 | 磁盘 | 角色 |
| | 10.16.36.204 | | | 20G+ | Prometheus server+grafana |
| | 10.16.40.215 | | | 20G+ | Prometheus server |
| | 可多节点我这里简单用两个 | | | | 也可以用于单节点部署grafana 之后采集Prometheus server |

2. 2 所有节点安装chrony服务

执行命令

rpm -ivh libseccomp-2.3.1-4.el7.x86_64.rpm chrony-3.4-1.el7.x86_64.rpm

2.3 添加hosts文件解析( 服务端 )

vim /etc/hosts

2.4 修改时间服务器

vim /etc/chrony.conf

2.5 重启chrony服务,使得配置生效

systemctl restart chronyd

2.6 修改客户端配置 注意是客户端其他节点

2.6.1 添加housts解析

vim /etc/hosts

2.6.2 指定时间服务器

vim /etc/chrony.conf

根据自己本机的修改

2.6.3 重启chrony服务,使得配置生效

systemctl restart chronyd

2.6.4 测试时间服务器是否生效

修改时间

date -s "2020-10-01 08:30:00"

2.6.5 重启服务

systemctl restart chronyd

date -R

3. 二进制部署prometheus-server

3.1 创建工作目录

mkdir -pv /gshx/{softwares,data,logs}

3.2 解压软件包到指定路径

tar xf prometheus-2.37.8.linux-amd64.tar.gz -C /gshx/softwares/

3. 3 创建符号链接

cd /gshx/softwares/ && ln -sv prometheus-2.37.8.linux-amd64 prometheus

3. 4 启动prometheus

3.4.1 以相对路径启动

cd /gshx/softwares/prometheus && ./prometheus

3 . 4.2 以绝对路径启动

/gshx/softwares/prometheus/prometheus --config.file=/oldboyedu/softwares/prometheus/prometheus.yml 以环境变量的方式启动

3.4.3 以环境变量的方式启动

复制代码
cat > /etc/profile.d/prometheus.sh <<EOF

#!/bin/bash

export PROMETHEUS_HOME=/gshx/softwares/prometheus

EOF



ln -sv /gshx/softwares/prometheus/prometheus /usr/local/bin/



prometheus --config.file=${PROMETHEUS_HOME}/prometheus.yml

3. 5 访问prometheus的WebUI

http://10.16.36.204:9090/graph

IP根据自己的改

3.6 将prometheus服务设置为开机自启动

编写启动脚本

复制代码
/etc/systemd/system/prometheus-server.service

[Unit]

Description=gshx   Prometheus Server

Documentation=https://prometheus.io/docs/introduction/overview/

After=network.target



[Service]

Restart=on-failure

ExecStart=/gshx/softwares/prometheus/prometheus \

    --config.file=/gshx/softwares/prometheus/prometheus.yml \

    --web.enable-lifecycle

ExecReload=/bin/kill -HUP $MAINPID

LimitNOFILE=65535



[Install]

WantedBy=multi-user.target

3.7 将服务设置开机自启动

systemctl enable --now prometheus-server

ss -ntl

3.7.1 使用syste mctl 进行重载

systemctl reload prometheus-server

3.7.2 使用API请求重载(要求启动服务时开启"--web.enable-lifecycle "参数)

curl -X POST http://10.16.36.204:9090/-/reload

4.部署node-exporter 所有节点安装)

4.1 解压软件包到指定路径

tar xf node_exporter-1.6.1.linux-amd64.tar.gz -C /gshx/softwares/

4.2 启动node -exporter 服务

cd /gshx/softwares/node_exporter-1.6.1.linux-amd64/ && ./node_exporter

vim /lib/systemd/system/node_exporter.service

复制代码
[Unit]
Description=Node Exporter
After=network-online.target


[Service]
User= prometheus
Type=simple
WorkingDirectory=/gshx/softwares/node_exporter-1.6.1.linux-amd64/
ExecStart=/gshx/softwares/node_exporter-1.6.1.linux-amd64/node_exporter \
          --collector.filesystem.fs-types-exclude=tmpfs|proc|rpc_pipefs|rootfs|nfs4 \
          --collector.diskstats.device-exclude=dm.*|sr\d+|loop\d+ \
          --collector.netclass.ignored-devices=br.*|docker.*|veth.*|lo.*|tap.*|virbr.*|cni.*|fw.*|vlan.*|vmbr.* \
          --collector.netdev.device-exclude=br.*|veth.*|docker.*|lo.*|tap.*|virbr.*|cni.*|fw.*|vlan.*|vmbr.* \
          --collector.filesystem.mount-points-exclude=.*docker.* \
          --no-collector.arp \
          --web.listen-address=0.0.0.0:9100 \
          --log.level=debug
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=20
CPUQuota=100%
MemoryLimit=512M

[Install]
WantedBy=multi-user.target

systemctl enable --now node_exporter # 启动并开机自启

5.Prometheus 配置监控node -expo ter

vim /gshx/softwares/prometheus/prometheus.yml

5.1重新加载配置文件

curl -X POST http://10.16.36.204:9090/-/reload

5.2 访问Prometheus的WebUI

http://10.16.36.204:9090/targets

6.安装grafana

6.1内网部署需要很多依赖包(依次导入)

就按圈内的操作其他不要管,自己的测试

rpm -ivh 包名

6.2 启动grafana

systemctl enable --now grafana-server

ss --ntl

6.3 访问grafana的WebUI

http://10.16.36.204:3000/

6.4 配置grafana的数据源为prometheus

6.4.1 进入管理员界面

6.4.2 添加数据源

6.4.3 选择数据源为prometheus

6.4.4 配置prometheus数据源

6.4.5 保存配置

7.部署 grafana并导入node-exporter模板(内网略过)

7 . 1 进入到dashboard页面

7.2 进入导入模板页面

7.3 选择相应的模板I D

(外网可以选择模板ID,1860)(内网选择自定义以下步骤)

8.grafana自定义dashboard案例

8.1创建dashboard

8.1.1 新建dashboard

8.1.2 选择要创建的资源

8.1.3创建可视化库

8.1.4效果图

8.2 grafana的变量设置

8.2 .1 进入设置页面

8.2.2 进入变量的配置页面

8.2.3 引用i nstance 标签的值

8.2.4 引用i nstance 标签的值

up{job="$job"}

8.2.5 引用i nstance 标签的值

复制代码
maxmount
topk(1,sort_desc (max(node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"}) by (mountpoint)))
/.*\"(.*)\".*/

8.2.6 引用i nstance 标签的值

8.3Prom QL语句

9.Prom QL语句

9.1CPU核数

复制代码
count(count(node_cpu_seconds_total{instance=~"$node", mode='system'}) by (cpu))

9.2CPU使用率

复制代码
100 - (avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[1m])) * 100)

9.3内存总量

复制代码
node_memory_MemTotal_bytes{instance=~"$node"}

9.4内存使用率

复制代码
((node_memory_MemTotal_bytes{instance=~"$node"} - node_memory_MemFree_bytes{instance=~"$node"} - node_memory_Buffers_bytes{instance=~"$node"} - node_memory_Cached_bytes{instance=~"$node"}) / (node_memory_MemTotal_bytes{instance=~"$node"} )) * 100

9.5网络

复制代码
irate(node_network_transmit_bytes_total{instance=~"$node"}[1m])

9.6系统运行时间

复制代码
time() - node_boot_time_seconds{instance=~"$node"}

9.7 最大分区 /data 使用率

复制代码
100 - ((node_filesystem_avail_bytes{instance=~"$node",mountpoint="$maxmount",fstype=~"ext4|xfs"} * 100) / node_filesystem_size_bytes {instance=~"$node",mountpoint="$maxmount",fstype=~"ext4|xfs"})

9.8系统负载(1m)

复制代码
node_load1{instance="$node"}

9.9 过去5分钟内的网络上行速率,即每秒发送的字节数

复制代码
sum(irate(node_network_receive_bytes_total{job=~"$job", instance=~'$node'}[5m])) by (instance)

10.0 过去5分钟内每个实例的下行速率

复制代码
sum(irate(node_network_receive_bytes_total{job=~"$job", instance=~'$node'}[5m])) by (instance)

10.1 磁盘IO读写时间

复制代码
irate(node_disk_io_time_seconds_total{instance=~"$node"}[1m])

10.2 磁盘每秒的I/O操作耗费时间 %

复制代码
irate(node_disk_io_time_seconds_total{instance=~"$node"}[1m])

10.3 TCP 连接情况

复制代码
node_netstat_Tcp_CurrEstab{instance=~'$node'}

10.4磁盘读写速率(IOPS)

复制代码
irate(node_disk_reads_completed_total{instance=~"$node"}[1m])

10.5 磁盘读写容量大小

复制代码
irate(node_disk_read_bytes_total{instance=~"$node"}[1m])

10.6 上行速率大于0,表示没有延迟

复制代码
irate(node_network_receive_bytes_total{job=~"$job", instance=~'$node'}[5m]) > 0

10.大概效果图 根据自己审美来

10.16.40.215

10.16.36.204

相关推荐
xiao-xiang14 小时前
redis-集成prometheus监控(k8s)
数据库·redis·kubernetes·k8s·grafana·prometheus
陈陈CHENCHEN1 天前
【Kubernetes】在 K8s 上部署 Prometheus
kubernetes·prometheus
计算机毕设定制辅导-无忧学长3 天前
Grafana 与 InfluxDB 可视化深度集成(二)
信息可视化·数据分析·grafana
云游3 天前
大模型性能指标的监控系统(prometheus3.5.0)和可视化工具(grafana12.1.0)基础篇
grafana·prometheus·可视化·监控
qq_232045574 天前
非容器方式安装Prometheus和Grafana,以及nginx配置访问Grafana
nginx·grafana·prometheus
测试开发Kevin4 天前
详解grafana k6 中stage的核心概念与作用
测试工具·压力测试·grafana
夜莺云原生监控5 天前
Prometheus 监控 Kubernetes Cluster 最新极简教程
容器·kubernetes·prometheus
SRETalk5 天前
Prometheus 监控 Kubernetes Cluster 最新极简教程
kubernetes·prometheus
川石课堂软件测试5 天前
JMeter并发测试与多进程测试
功能测试·jmeter·docker·容器·kubernetes·单元测试·prometheus
SRETalk6 天前
夜莺监控的几种架构模式详解
prometheus·victoriametrics·nightingale·夜莺监控