Prometheus + Grafana 监控解决方案介绍
Prometheus(普罗米修斯)是一套开源的 监控&报警&时间序列 数据库 的组合,起始是由SoundCloud公司开发。
随着发展,越来越多公司和组织接受采用Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。
Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。
现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,
不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。
Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。
输出被监控组件信息的HTTP接口被叫做 exporter 。
目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等),
具体支持的源看:https://github.com/prometheus。
prometheus 组件构成
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
3、通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
4、混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
5、注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
6、过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
zabbix 与 prometheus 对比
首先准备prometheus和grafana的安装包
官方下载地址: Prometheus官网下载地址
官网下载地址: grafana官网下载地址
[root@server160 ~]# ls
grafana-9.5.10-1.x86_64.rpm prometheus-2.45.1.linux-amd64.tar.gz
解压到opt目录下
tar xf prometheus-2.45.1.linux-amd64.tar.gz -C /opt/
mv /opt/prometheus-2.45.1.linux-amd64/ /opt/prometheus-2.45
然后创建prometheus用户,并将目录所属用户更改
useradd -M -s /sbin/nologin prometheus
chown -R prometheus:prometheus /opt/prometheus-2.45/
然后创建服务启动脚本
touch /usr/lib/systemd/system/prometheus.service
cat > /usr/lib/systemd/system/prometheus.service << EOF
[Unit]
Description=Prometheus Server
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/opt/prometheus-2.45/prometheus \
--config.file=/opt/prometheus-2.45/prometheus.yml \
--storage.tsdb.path=/opt/prometheus-2.45/tsdata \
--storage.tsdb.retention.time=15d \
--web.enable-lifecycle
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
启动并查看启动状态
systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus
systemctl status prometheus
出现9090端口就是没问题了,然后Prometheus就安装完成了
浏览器访问查看
然后到grafana的安装
grafana是rpm包,直接安装就好了
yum localinstall grafana-9.5.10-1.x86_64.rpm
然后直接启动
systemctl start grafana-server.service
[root@server160 ~]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 920/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1020/master
tcp6 0 0 :::22 :::* LISTEN 920/sshd
tcp6 0 0 :::3000 :::* LISTEN 11687/grafana
去浏览器访问192.168.121.161:3000
然后这样就安装完成了