实施步骤:
- 时间同步配置
- 下载Prometheus软件包
- 启动Prometheus服务
- 访问Web管理界面
实验环境:
设置三台服务器,一台prometheus,一台grafana,和一台docker1
Prometheus快速上手指南
时间同步操作指南
方法一:计划任务方式
- 创建定时任务:
*/2 * * * * /sbin/ntpdate ntp1.aliyun.com &>/dev/null
方法二:chrony服务方式
- 安装chrony:
dnf -y install chrony
- 配置chrony:
vim /etc/chrony.conf
- 添加或修改服务器配置:
server [目标IP/域名] iburst
保存退出(:wq)
- 启动服务:
systemctl enable chronyd --now
- 验证同步状态:
chronyc sources
方法三:timedatectl工具
- 查看时区:
timedatectl
- 设置时区:
timedatectl set-timezone Asia/Shanghai
- 查看当前时间:
date
- 手动修改时间:
date -s "YYYY-MM-DD HH:MM:SS"
个人推荐方法一和方法二
安装prometheus
你可以从Prometheus官网下载安装包,然后上传到服务器进行解压安装
Download | Prometheus 找到合适的安装包进行下载
解压安装包
tar xf 包名
mv 解压后的文件夹移动到 /usr/local/下,名字自己定
启动Prometheus服务
方法一:直接启动
- 进入Prometheus安装目录:
cd /usr/local/prometheus
- 启动服务:
./prometheus
方法二:配置systemd服务
-
创建服务配置文件:
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/prometheus.service
-
编辑服务配置:
vim /usr/lib/systemd/system/prometheus.service
添加以下内容:
[Unit] Description=Prometheus Monitoring System After=network.target [Service] ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml \ --storage.tsdb.path=/usr/local/prometheus/data/ [Install] WantedBy=multi-user.target
保存并退出(
:wq
) -
重新加载服务配置并启动:
systemctl daemon-reload systemctl enable --now prometheus
访问prometheus的web页面
访问你prometheus部署的服务器ip
显示所有键值
也可以命令行过滤查看
curl -s http://prometheus的ip地址:9090/metrics | grep -v '#' | wc -l
Node Exporter 安装与配置指南
- node-exporter用于监控硬件和系统的常用指标。
- exporter运行于被监控端,以服务的形式存在。每个exporter所使用的端口号都不一样。
- 在被监控节点上部署node exporter。
所有节点配置node_exporter是同理的
第一步:在被监控节点安装 Node Exporter
- 从 Prometheus 官网下载合适的安装包
- 解压安装包:
tar xf [package_name]
- 将解压后的文件夹移动到指定目录:
mv [extracted_folder] /usr/local/[custom_name]
第二步:配置 Systemd 服务
-
创建服务配置文件:
vim /usr/lib/systemd/system/node_exporter.service
-
添加以下内容:
[Unit] Description=node_exporter service After=network.target [Service] ExecStart=/usr/local/node_exporter/node_exporter [Install] WantedBy=multi-user.target
-
保存并退出编辑器,然后执行:
systemctl daemon-reload systemctl enable node_exporter --now
第三步:在 Prometheus 服务器配置监控
方法一、正常配置prometheus服务器端配置文件
-
编辑 Prometheus 配置文件:
vim /usr/local/prometheus/prometheus.yml
-
添加以下监控任务配置:
vim /usr/local/prometheus/prometheus.yml
#追加内容
- job_name: "node_exporter" # 定义监控任务名称,标识node_exporter采集任务:ml-citation{ref="1,2" data="citationList"}
static_configs: # 静态配置目标列表,适用于固定IP的监控目标:ml-citation{ref="1,5" data="citationList"}
- targets: ["192.168.88.20:9100"] # 指定node_exporter服务地址和端口,默认9100:ml-citation{ref="1,2" data="citationList"}
方法二、动态配置prometheus服务器端配置文件
-
编辑 Prometheus 配置文件:
vim /usr/local/prometheus/prometheus.yml
-
添加以下监控任务配置:
vim /usr/local/prometheus/prometheus.yml
#追加内容
- job_name: "dhcp_node_exporter" # 任务名称,标识动态DHCP环境的监控任务
file_sd_configs: # 文件服务发现配置,适用于IP不固定的目标
- targets: # 目标定义区块
- files: # 指定发现文件路径
- /usr/local/prometheus/discovery_node_exporter.json # JSON格式的服务发现文件
refresh_interval: 5s # 文件刷新间隔(默认5分钟,此处设置为5秒高频刷新)
创建同台加载配置文件
vim /usr/local/prometheus/discovery_node_exporter.json
[
{
"targets": [
"192.168.88.20:9100",
"192.168.88.30:9100"
]
}
]
......
:wq
适用于大量主机添加的时候
Prometheus安装监控小结
- prometheus通过各种exporter来进行监控客户端。
- 常用exporter
- node_exporter获取主机的系统监控项。
- 其他项目通过各种exporter(docker运行)实现。
- 以上部分主要讲解的是prometheus服务端的配置(连接客户端)
- prometheus.yml 主配置文件。
- 静态配置:state_configs 书写到配置文件,重启prometheus服务端生效。应用场景:适用于固定的服务器监控。
- 动态配置:file_sd_configs 配置书写到文件中,prometheus定时加载。应用场景:网站集群经常发生变化。
被监控节点显示页面
--------------------------------------------------------------------------------------
Prometheus过滤语句
基本过滤
- 获取所有主机可用内存输入
node_memory_MemFree_bytes
- 加入运算符后
node_memory_MemFree_bytes/1024^2
- 过滤负载
node_load1
- 查看所有键值