Prometheus + Grafana
Prometheus#
简介#
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动
了prometheus的发展
时间序列化数据#
时间序列数据#
按照时间顺序记录系统、设备状态变化的数据被称为时序数据
时间序列数据特点#
-
性能好
关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理大规模数据,让依然比不上时间序列数据库
-
存储成本低
高效的压缩算法,节省存储空间,有效降低IO
Prometheus特点#
- 多维度数据模型
- 灵活的查询语言
- 不依赖分布式存储,单个服务器节点是自主的
- 以HTTP方式,通过pull模型拉去时间序列数据
- 也可以通过中间网关支持push模型
- 通过服务发现或者静态配置,来发现目标服务对象
- 支持多种多样的图表和界面展示
Prometheus架构图#
Prometheus安装配置#
架构图#
安装#
# 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0.linux-amd64.tar.gz
# 解压
tar -zxvf prometheus-2.14.0.linux-amd64.tar.gz -C /usr/local/
# 重命名
mv /usr/local/prometheus-2.14.0.linux-amd64/ /usr/local/prometheus
# 添加快捷方式
ln -s /usr/local/prometheus/prometheus /usr/bin/prometheus
# 后台启动
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
# 开机自启动
vim /etc/rc.d/rc.local
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
chmod +x /etc/rc.d/rc.local
# 查看端口号
netstat -aunpt | grep 9090
node_exporter安装#
# 下载
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
# 解压
tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz -C /usr/local/
# 重命名
mv /usr/local/node_exporter-0.18.1.linux-amd64/ /usr/local/node_exporter
# 快捷方式
ln -s /usr/local/node_exporter/node_exporter /usr/bin/node_exporter
# 启动
nohup /usr/local/node_exporter/node_exporter &
# 查看端口号
netstat -aunpt | grep 9100
监控端监控节点服务器状态#
vim /usr/local/prometheus/prometheus.yml
- job_name: 'node' # 取一个job名称来代 表被监控的机器
static_configs:
- targets: ['10.1.1.4:9100'] # 这里改成被监控机器 的IP,后面端口接9100
# 重启服务
pkill prometheus
# 查看端口
netstat -aunpt | grep 9100
# 启动
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
mysql_exporter安装#
# 下载
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
# 解压
tar -xvf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
# 重命名
mv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /usr/local/mysqld_exporter
# 添加快捷方式
ln -s /usr/local/mysqld_exporter/mysqld_exporter /usr/bin/mysqld_exporter
# 设置授权帐号
mysql -uroot -proot
grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by 'root';
flush privileges;
# 配置连接帐号
vim /usr/local/mysqld_exporter/.my.cnf
[client]
user=mysql_monitor
password=root
# 启动服务
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
# 查看端口
netstat -aunpt | grep 9104
# 开启自启动
vim /etc/rc.d/rc.local
/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
监控节点监控mysql状态#
vim /usr/local/prometheus/prometheus.yml
- job_name: 'mysql' # 取一个job名称来代 表被监控的机器
static_configs:
- targets: ['10.1.1.4:9104'] # 这里改成被监控机器 的IP,后面端口接9104
# 重启服务
pkill prometheus
# 查看端口
netstat -aunpt | grep 9100
# 启动
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
Grafana#
简介#
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警
安装#
# 下载rpm
wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpm
# 安装
yum localinstall grafana-6.5.2-1.x86_64.rpm -y
# 启动
systemctl enable grafana-server.service && systemctl start grafana-server.service
# 查看状态
systemctl status grafana-server.service
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!