简介
监控与运维的作用
- 能够对系统进行7*24小时的实时监控
- 能够及时反馈系统状态
- 保证平台的稳定运行
- 保证服务的安全可靠
- 保证业务的持续运行
概况
Prometheus是用于事件监控和警报的免费软件应用程序。该项目是用Go编写的,并在 Apache 2 许可下获得许可,源代码可在GitHub 上获得,用于云原生计算的监控,2016 加入云原生计算基金会,成为继Kubernetes(K8S)之后的第二个托管项目。
架构图
- Prometheus Server:服务端用于抓取指标、存储时间序列数据
- exporter:采集数据,并通过HTTP 服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter 提供的接口,即可获取到需要采集的监控数据
- pushgateway:push 的方式将指标数据推送到该网关
- alertmanager:告警管理器,处理报警的报警组件
- adhoc:用于数据查询
- grafana:图形展示工具
pull和push两种方式
- pull具有可控性,可控服务器的负载,网络的负载
- push保证数据的实时性,得到最flush的数据
安装
Prometheus Server
容器方式启动
docker run --name prometheus -dp 9090:9090 prom/prometheus
安装成功后访问9090端口显示获取服务器时间时出错:检测到浏览器和服务器之间有时间差Prometheus 依赖于准确的时间,时间漂移可能会导致意外的查询结果,所以我们调整服务器为网络时间。
yum install ntp ntpdate -y
#安装ntpdate工具
ntpdate cn.pool.ntp.org
#设置系统时间与网络时间同步
hwclock --systohc
#将系统时间写入硬件时间
clock -w
#强制写入CMOS防止重启失效
http://192.168.2.249:9090
#输入自己服务器IP地址
主机方式启动
换一台服务器
wget https://github.com/prometheus/prometheus/releases/download/v2.35.0/prometheus-2.35.0.linux-amd64.tar.gz
tar xvfz prometheus-*.tar.gz -C /usr/local/
mv /usr/local/prometheus-* /usr/local/prometheus
echo "PATH=$PATH:/usr/local/prometheus/" >>/root/.bashrc
source /root/.bashrc
cd /usr/local/prometheus/
nohup prometheus &
#回车后可在后台运行,不占用终端,输出默认在在当前目录nohup.out
http://192.168.2.248:9090
exporter
换一台被监控机安装node_exporter,我们这里通过node-exporter来获取node节点信息,node_exporter 就是用于采集服务器节点的各种运行指标的,
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xvfz node_exporter-1.3.1.linux-amd64.tar.gz -C /usr/local
mv /usr/local/node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter
echo "PATH=$PATH:/usr/local/node_exporter/" >>/root/.bashrc
nohup node_exporter &
http://192.168.2.250:9100/
#访问自己服务器地址的9100端口
server通过webhook技术去访问这个网址获取node上的metrics
配置
浏览器访问服务端IP地址
http://192.168.2.248:9090
Status—>Targets
可以看到只监控服务器本机
更改server配置文件
vim /usr/local/prometheus/prometheus.yml
末尾追加
- job_name: "node"
static_configs:
- targets: ["192.168.2.250:9100"]
因为Prometheus没有服务重启,所以只能
查看进程杀死再启动
刷新server web
已经启动监控
Graph查找CPU可以看到相关数据