建设部网站办事大厅,上海免费关键词排名优化,网站建设与设计学了做什么的,网站布局选择1.选型对比
最近项目上有对项目服务及中间件的监控需求#xff0c;要做实现方案调研#xff0c;总结一下自己的成果#xff0c;目前业界主流可选的方案有#xff1a;
国外开源#xff1a;
Prometheus#xff1a;Prometheus - Monitoring system time series dat…1.选型对比
最近项目上有对项目服务及中间件的监控需求要做实现方案调研总结一下自己的成果目前业界主流可选的方案有
国外开源
PrometheusPrometheus - Monitoring system time series database 优点使用exporter方式主动拉取方式采集灵活覆盖面广结合grafana能快速搭建上手promql功能强大自定义指标方便对云环境支持很好
缺点采用分布式部署基于本地文件存储数据数据统一采集不方便采用配置文件配置较为繁琐ps也支持服务发现promql学习成本较高
zabbix
Grandage-Zabbix中国 优点老牌监控框架、all-in-one 部署使用MySQL存储数据使用页面配置采集。推荐6.0以上版本使用agent2
缺点比较重灵活性比较差自定义指标实现难度高
grafana
开源的可视化框架可以使用多种数据源对Prometheus支持非常友好也支持zabbix。可以很方便的集成到自己的前端项目中。 国内开源
夜莺 夜莺 - 快猫星云
优点集成了Prometheus和zabbix的优点可以通过页面配置监控告警还能all-in-one 部署。文档比较友好。(由于是后来才找到这个框架所以没有深入研究)
本次我验证了(监控服务器rabbitmq、nacos、redis、mysql、MongoDBspring-bootNginx)等常用中间件的监控留档以备后续查看。其他的基本都可以参照官网
2. Prometheus基础环境搭建
Prometheus支持两种搭建方式二进制安装和docker安装基本所有的组件都提供了这两种安装方式。二进制方式可以将组件注册为Linux系统服务使用systemctl来管理
2.1 二进制方式安装
主要安装Prometheusnode_exporter(服务器节点监控)alertmanagergrafana适合在离线没有网络的环境。
网上有现成的仓库 prometheus: 二进制安装prometheus
项目使用方法
1.将项目下载到自己的Linux服务器
https://gitee.com/lengedcloud/prometheus.git
进入目录 cd prometheus
2.将服务移动到系统服务目录
mv *.service /etc/systemd/system/
3.创建一个普通用户
useradd -M -s /usr/sbin/nologin prometheus -M不创建家目录不允许登录
4.启动服务并设置开机启动
systemctl enable alertmanager.service --now
systemctl enable grafana-server.service --now
systemctl enable node_exporter.service --now
systemctl enable prometheus.service --now
5.检查服务状态
systemctl status alertmanager.service
systemctl status grafana-server.service
systemctl status node_exporter.service
systemctl status prometheus.service
6.访问测试
alertmanager.service 告警 端口 ip:9093/metrics
grafana-server 数据展示 端口 ip:3000 账号/密码 admin/admin
node_exporter 数据采集 ip:9100/metrics
prometheus 数据存储 端口 ip:9090
2.2 docker方式安装
主要安装Prometheuscadvsior(docker监控)node_exporteralertmanagergrafana
此处可以下载打包 docker-compose: docker-compose仓库 docker-compose.yaml文件如下
version: 3.3volumes:prometheus_data: {}grafana_data: {}networks:monitoring:driver: bridgeservices:prometheus:image: prom/prometheus:v2.37.6container_name: prometheusrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./prometheus/:/etc/prometheus/- prometheus_data:/prometheuscommand:- --config.file/etc/prometheus/prometheus.yml- --storage.tsdb.path/prometheus- --web.console.libraries/usr/share/prometheus/console_libraries- --web.console.templates/usr/share/prometheus/consoles#热加载配置- --web.enable-lifecycle#api配置#- --web.enable-admin-api#历史数据最大保留时间默认15天- --storage.tsdb.retention.time30d networks:- monitoringlinks:- alertmanager- cadvisor- node_exporterexpose:- 9090ports:- 9090:9090depends_on:- cadvisoralertmanager:image: prom/alertmanager:v0.25.0container_name: alertmanagerrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- ./alertmanager/:/etc/alertmanager/command:- --config.file/etc/alertmanager/config.yml- --storage.path/alertmanagernetworks:- monitoringexpose:- 9093ports:- 9093:9093cadvisor:image: google/cadvisor:latestcontainer_name: cadvisorrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:ronetworks:- monitoringexpose:- 8080ports:- 8080:8080node_exporter:image: prom/node-exporter:v1.5.0container_name: node-exporterrestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- /proc:/host/proc:ro- /sys:/host/sys:ro- /:/rootfs:rocommand: - --path.procfs/host/proc - --path.sysfs/host/sys- --collector.filesystem.ignored-mount-points^/(sys|proc|dev|host|etc|rootfs/var/lib/docker)($$|/)networks:- monitoringports:- 9100:9100grafana:image: grafana/grafana:9.4.3container_name: grafanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime:ro- grafana_data:/var/lib/grafana- ./grafana/provisioning/:/etc/grafana/provisioning/env_file:- ./grafana/config.monitoringnetworks:- monitoringlinks:- prometheusports:- 3000:3000depends_on:- prometheus使用docker-compose 一键安装
docker-compose up -d 安装
安装完成后测试 同二进制安装测试相同
Prometheus页面可以从statustarget目录下查看当前的监控任务状态点击endpoint确认每个target路径有数据即为正常。 grafana页面 2.3 配置Prometheus监控
打开 vim prometheus.yaml,修改ip或服务名为自己的宿主机ip Prometheus重新热加载配置 很常用
curl -X POST http://localhost:9090/-/reload
2.4 配置grafana监控页面
grafana提供了大量配置模板可以快速生成监控
给grafana配置Prometheus数据源 填写信息可以测试连接一下docker版要写宿主机的ip,http一定要加 1.配置模板-服务器监控
Dashboards | Grafana Labs
选择数据源模板可以按照自己的需要进行修改有些指标名称在不用版本的Prometheus库中可能已经被替换或者更新实际使用时要进行相应的更改。 点击要使用的模板获取模板id或者json文件此处还有Prometheus中的配置 在grafana中导入 输入ID并导入 选择数据源修改面板名称 查看效果 2.配置模板-docker服务监控
选择想要的模板 复制id 10619重复上面的步骤导入 3.配置模板-alertmanager告警监控告警也是Prometheus的核心功能。
选择模板id9578 重复上面的步骤导入 exp告警规则可以通过使用promql定义的非常丰富。 告警配置文件在prometheus挂载出来的alert.yml文件中