Prometheus监控系统部署
项目目标
-
部署Prometheus服务器,实现对远程Linux主机和MySQL数据库的实时监控。
-
提供7x24小时不间断监控,支持异地集中监控。
-
为后续的可视化和报警功能提供数据支持。
任务背景
-
某电商公司业务快速发展,需要对现有机器进行业务监控。
-
运维部门负责实施监控项目,要求监控系统能够实时收集数据,及时发现问题并预警。
监控需求
-
监控主机状态(CPU、内存、磁盘等)。
-
监控MySQL数据库状态(连接数、查询性能等)。
-
提供数据支持,为系统优化提供依据。
-
支持Kubernetes内部监控。
实验环境准备
-
服务器IP分配
-
Prometheus服务器:
192.168.65.131
-
被监控Linux主机(Agent1):
192.168.65.132
-
Grafana服务器:
192.168.65.133
-
-
主机名设置
-
Prometheus服务器:
server.cluster.com
-
被监控Linux主机:
agent1.cluster.com
-
Grafana服务器:
grafana.cluster.com
-
-
时间同步
-
确保所有服务器时间同步,使用NTP服务或其他时间同步工具。
-
-
关闭防火墙和SELinux
# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭SELinux setenforce 0
-
安装Prometheus
-
下载并安装Prometheus
-
访问Prometheus官网下载页面:Download | Prometheus
-
下载最新版本的Prometheus二进制文件
wget https://github.com/prometheus/prometheus/releases/download/v2.5.0/prometheus-2.5.0.linux-amd64.tar.gz
-
解压并安装到指定目录
tar xf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus
-
-
启动Prometheus
-
使用默认配置文件启动Prometheus服务
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
-
确认Prometheus服务是否启动成功:
lsof -i:9090
-
如果端口被占用,说明Prometheus服务启动成功。
-
-
访问Prometheus界面
-
打开浏览器,访问
http://192.168.65.131:9090
,查看Prometheus主界面。
-
-
查看默认监控数据
-
默认情况下,Prometheus只监控本机数据。
-
访问
http://192.168.65.131:9090/metrics
,查看监控数据。
-
监控远程Linux主机
-
安装
node_exporter
-
在被监控主机
agent1
(IP:192.168.65.132
)上安装node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz tar xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter
-
-
启动
node_exporter
-
使用
nohup
命令启动node_exporter
,确保后台运行:nohup /usr/local/node_exporter/node_exporter &
-
确认
node_exporter
是否启动成功:
lsof -i:9100
-
-
配置Prometheus监控远程主机
-
编辑Prometheus服务器的配置文件
/usr/local/prometheus/prometheus.yml
,添加被监控主机的配置段:
scrape_configs:- job_name: 'agent1'static_configs:- targets: ['192.168.65.132:9100']
-
重启Prometheus服务:
pkill prometheus /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
-
访问
http://192.168.65.131:9090/targets
,确认被监控主机是否被成功添加。
-
-
查看远程主机监控数据
-
访问
http://192.168.65.132:9100/metrics
,查看node_exporter
收集的监控数据。 -
在Prometheus主界面通过关键字查询远程主机的监控项。
-
监控远程MySQL数据库
-
安装
mysqld_exporter
-
在被监控主机
agent1
(IP:192.168.65.132
)上安装mysqld_exporter
:wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/ mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter
-
-
安装并配置MySQL
-
安装MySQL(以MariaDB为例):
yum install mariadb* -y systemctl restart mariadb systemctl enable mariadb
-
创建监控用户并授权:
grant select, replication client, process on *.* to 'mysql_monitor'@'localhost' identified by '123'; flush privileges;
-
-
配置
mysqld_exporter
-
创建
mysqld_exporter
配置文件/usr/local/mysqld_exporter/.my.cnf
:
[client] user=mysql_monitor password=123
-
启动
mysqld_exporter
:nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
-
确认
mysqld_exporter
是否启动成功:
lsof -i:9104
-
-
配置Prometheus监控MySQL
-
编辑Prometheus服务器的配置文件
/usr/local/prometheus/prometheus.yml
,添加MySQL监控配置段:
scrape_configs:- job_name: 'agent1_mariadb'static_configs:- targets: ['192.168.65.132:9104']
-
重启Prometheus服务:
pkill prometheus /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
-
访问
http://192.168.65.131:9090/targets
,确认MySQL监控目标是否被成功添加。
-
-
查看MySQL监控数据
-
在Prometheus主界面通过关键字查询MySQL监控数据,例如
mysql_global_status_threads_connected
。
-
总结
通过上述步骤,Prometheus监控系统已经成功部署并实现了对远程Linux主机和MySQL数据库的监控。监控数据可以通过Prometheus界面查询和查看,为后续的可视化展示和报警功能提供了数据支持。