0.prometheus是什么?有什么优缺点
Prometheus是一个开源的监控系统,由SoundCloud开发并于2015年发布。它集成了数据采集、多维度数据查询、可视化和告警等功能。
Prometheus的优点包括:
- 数据模型简单:Prometheus有一个简单但非常强大的数据模型,它是基于时间序列的,易于理解和使用。
- 灵活的查询语言:PromQL是Prometheus的查询语言,它非常灵活,具有强大的表达能力,可以对数据进行非常复杂的分析和处理。
- 可视化:Prometheus内置了一个强大的图表库,可以方便地生成各种类型的图表。
- 告警:Prometheus提供了强大的告警机制,可以根据自定义规则对监控数据进行告警。社区活跃:由于Prometheus是一个开源项目,拥有庞大的用户和开发者群体,使得它得到了不断的更新和维护。
Prometheus的缺点包括:
- 存储量大:Prometheus的存储机制需要存储所有的监控数据,因此随着监控对象的增加,存储量也会增加。
- 配置复杂:对Prometheus进行配置需要熟悉其配置文件格式和规则,可能需要一定的学习成本。
- 对象发现难度大:由于Prometheus需要手动配置监控对象,因此需要手动添加新的监控对象或删除不需要监控的对象,这可能会造成一定的困扰。
- 高可用性需要自行实现:Prometheus本身并不提供高可用性保障,需要使用另外的组件来保障高可用性。
1.快速部署Prometheus服务
- 下载二进制安装包(当然docker安装更快)
wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz
- 将压缩包解压到指定目录
[root@localhost ~]# mkdir /data [root@localhost ~]# tar xf prometheus-2.42.0.linux-amd64.tar.gz -C /data/ [root@localhost ~]# cd /data/ [root@localhost data]# ls prometheus-2.42.0.linux-amd64 [root@localhost data]# ln -s prometheus-2.42.0.linux-amd64/ prometheus
添加Prometheus为系统服务开机启动(注意user、group、IP用自己的)
vim /usr/lib/systemd/system/prometheus.service
[Unit] Description=Prometheus server daemon After=network.target [Service] Type=simple User=root Group=root ExecStart=/data/prometheus/prometheus \ --config.file "/data/prometheus/prometheus.yml" \ --storage.tsdb.path "/data/prometheus/data" \ --storage.tsdb.retention=15d \ --web.console.templates="/data/prometheus/consoles" \ --web.console.libraries="/data/prometheus/console_libraries" \ --web.max-connections=512 \ --web.external-url "http://192.168.10.2:9090" \ --web.listen-address "0.0.0.0:9090" Restart=on-failure [Install] WantedBy=multi-user.target
- 启动服务
[root@localhost prometheus]# systemctl daemon-reload [root@localhost prometheus]# systemctl start prometheus.service [root@localhost prometheus]# systemctl enable prometheus.service
网页登录测试
2.快速部署被监控端加入监控端
- 依然先下载软件包
wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
- 依然将软件包解压到/data目录
[root@node-centos ~]# mkdir /data [root@node-centos ~]# tar xf node_exporter-1.5.0.linux-amd64.tar.gz -C /data/ [root@node-centos ~]# cd /data/ [root@node-centos data]# ls node_exporter-1.5.0.linux-amd64 [root@node-centos data]# ln -s node_exporter-1.5.0.linux-amd64/ node_exporter
依然将服务加入到开机启动
vim /usr/lib/systemd/system/node_exporter.service
[Unit] Description=node_exporter Documentation=https:// prometheus.io/ After=network-online.target [Service] Type=simple User=root Group=root ExecStart=/data/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target
- 启动服务(确认启动成功就可以接下来的步骤了)
[root@node-centos data]# systemctl daemon-reload [root@node-centos data]# systemctl start node_exporter.service [root@node-centos data]# systemctl enable node_exporter.service [root@node-centos data]# systemctl status node_exporter.service
修改服务端配置文件,将被监控端加入服务端(在scrape_configs: 块下加入以下内容,注意ip是自己的
)
vim /data/prometheus/prometheus.yml
- job_name: "node_exporter" static_configs: - targets: ["192.168.10.3:9100"
- 重启prometheus服务然后在网页查看是否监控到节点
[root@localhost ~]# systemctl restart prometheus.service
3.使用grafana作为UI展示
以下操作在服务端进行
- 安装grafana服务(官方命令直接复制,此版本为最新版)
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.6-1.x86_64.rpm sudo yum install grafana-enterprise-9.3.6-1.x86_64.rpm
- 启动服务,通过浏览器访问(http://ip:3000)(用户名/密码:admin/admin)
[root@localhost ~]# systemctl start grafana-server.service
配置将prometheus作为数据源
输入prometheus的url,别的暂时使用默认,在最下面找到保存点击(注意如果不加http://可能会报错)
导入prometheus 仪表盘
仪表盘展示
4.导入node_exporter模板监控node节点
- 安装饼图插件
[root@localhost ~]# grafana-cli plugins install grafana-piechart-panel [root@localhost ~]# systemctl restart grafana-server.service
点击小方块——点击Import——输入ID——点击load——选择prometheus——点击Import
- 数据太少也可以在服务端装上node_exporter加入到监控中,重复第二步,在配置文件中写在10.3下方
static_configs: - targets: ["192.168.10.3:9100"] - targets: ["192.168.10.2:9100"]
- 重启prometheus服务
[root@localhost prometheus]# systemctl restart prometheus.service
在网页grafana仪表盘中查看是否监控到节点
- 可以看到已经可以看到新添加的节点数据,此部分内容就先到这了。