prometheus+grafana 搭建企业级监控系统(一)
前言
首先选型阶段:zabbix 和 prometheus
如果监控的是物理机,用 Zabbix 没毛病,Zabbix在传统监控系统中,尤其是在服务器相关监控方面,占据绝对优势。甚至环境变动不会很频繁的情况下,Zabbix 也会比 Prometheus 好使;
但如果是云环境的话,除非是 Zabbix 玩的非常溜,可以做各种定制,否则还是 Prometheus 吧,毕竟人家就是干这个的。Prometheus开始成为主导及容器监控方面的标配,并且在未来可见的时间内被广泛应用。
结论:Linux基金会旗下的原生云基金会将prometheus列为第二大开源项目,第一大开源项目正是大名鼎鼎的容器大牛Kubernetes,Prometheus正是在K8S项目基础上开发的开源项目,对Kubernetes兼容友好,
而Zabbix对容器化技术不怎么友好。
prometheus的架构图:
它大致使用逻辑是这样:
- Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
- 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
- Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
- Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
- 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。
适用场景
Prometheus在记录纯数字时间序列方面表现非常好。它既适用于面向服务器等硬件指标的监控,也适用于高动态的面向服务架构的监控。对于现在流行的微服务,Prometheus的多维度数据收集和数据筛选查询语言也是非常的强大。Prometheus是为服务的可靠性而设计的,当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系。
Prometheus,它的价值在于可靠性,甚至在很恶劣的环境下,你都可以随时访问它和查看系统服务各种指标的统计信息。 如果你对统计数据需要100%的精确,它并不适用,例如:它不适用于实时计费系统。
Prometheus+grafana 搭建
1,去官网https://prometheus.io/download/ 下载 prometheus的二进制安装文件 我的是最新版本 2.22.1 prometheus-2.22.1.linux-amd64.tar.gz
#解压二进制文件
tar xf prometheus-2.22.1.linux-amd64.tar.gz -C /usr/local/
#剪切到prometneus目录
mv /usr/local/prometheus-2.22.1.linux-amd64/ /usr/local/prometheus
#启动promentheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
# 查看是否启动 promethues默认启动端口是9090
lsof -i:9090
2,监控服务器 https://prometheus.io/download/ 下载node_exporter,按下面操作安装完成后,
[root@agent1 ~]# tar xf node_exporter-0.16.0.linux- amd64.tar.gz -C /usr/local/
[root@agent1 ~]# mv /usr/local/node_exporter-0.16.0.linux- amd64/ /usr/local/node_exporter
[root@agent1 ~]# ls /usr/local/node_exporter/ LICENSE node_exporter NOTICE
[root@agent1 ~]# nohup /usr/local/node_exporter/node_exporter &
确认端口(9100)
[root@agent1 ~]# lsof -i:9100
http://10.0.100.100:9100/metrics查看,这里是服务器的相关服务度量信息。通过9100端口对外暴露,方便prometheus来定时拉取。
3,修改prometheus的配置文件,配置
在主配置文件最后加上下面三行
[root@server ~]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent1' # 取一个job名称来代 表被监控的机器
static_configs:
- targets: ['10.1.1.14:9100']
# 这里改成被监控机器 的IP,后面端口接9100 改完配置文件后,重启服务
[root@server ~]# pkill prometheus
[root@server ~]# lsof -i:9090 # 确认端口没有进程占 用
[root@server ~]# /usr/local/prometheus/prometheus -- config.file="/usr/local/prometheus/prometheus.yml" &
[root@server ~]# lsof -i:9090 # 确认端口被占用,说 明重启成功
4,这里的指标信息是metrics展示的,不是很好看,所以我们可以用grafana这个前端展示系统来显示。
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。
安装 Grafana
#下载
wget https://dl.grafana.com/oss/release/grafana-7.3.2-1.x86_64.rpm
#安装
rpm -ivh /root/Desktop/grafana-7.3.2-1.x86_64.rpm
#启动服务
systemctl start grafana-server
systemctl enable grafana-server
确认端口是否正常
lsof -i:3000
通过网页访问,第一次默认 用户名是 admin 密码 admin ,登陆后修改密码/
点击Configuration->Data Sources,增加一个数据源,选择prometheus,输入prometheus的地址http://10.0.100.100:9090/,点击 save&test增加
增加数据源后,点击“+”->import,输入 4701(https://grafana.com/grafana/dashboards/4701),加载进去,就可以看到节点的服务配置信息。
还没有评论,来说两句吧...