企业级监控prometheus和grafana可视化技术
一、Grafana添加仪表盘
1.1 模版文件
仪表盘下载模板https://grafana.com/grafana/dashboards/
Grafana是一个跨平台的开源度量分析和可是化的工具,可以通过该将采集的数据查询然后可视化的展示,并及时通知。
1.2 手动模式
#rocess_start_time_seconds 是一个指标,用于记录进程启动时间的时间戳。该指标在 Prometheus 中以 Unix 时间戳的形式存在,其单位是秒。Unix 时间戳是从1970年1月1日(UTC)开始所经过的秒数
process_start_time_seconds
time()-process_start_time_seconds
(time()-process_start_time_seconds{job="db01",instance="192.168.3.51:9100"})
node_boot_time_seconds 是一个指标,用于表示节点(计算机)自启动以来的秒数。这个指标通常在操作系统级别提供,例如在 Linux 系统中,可以通过 /proc/uptime 文件获取。
二、Pushgateway
2.1 简介
Pushgateway为Prometheus整体监控方案的功能组件之一,并做为一个独立的工具存在。它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙;目标服务没有可抓取监控数据的端点等多种情况。在类似场景中,可通过部署Pushgateway的方式解决问题。
①监控源通过Post方式,发送数据到Pushgateway,路径为/metrics。 ②Prometheus服务端设置任务,定时获取Pushgateway上面的监控指标。 ③Prometheus获取监控指标后,会根据告警规则进行计算,如果匹配将触发告警到Alertmanager;同时,Grafana可配置数据源调用Prometheus数据,做为数据展示
2.2 安装和部署
#上传解压
tar -xzf pushgateway-1.9.0.linux-amd64.tar.gz
#2.创建长目录软连接和文件的软连接
ln -s pushgateway-1.9.0.linux-amd64 pushgateway
ln -s /app/tools/pushgateway/pushgateway /bin/
#3.启动
后台启动
#自定义服务vim /usr/lib/systemd/system/pushgateway.service
[Unit]
Description=Prometheus Server
After=network.target
[Service]
Type=simple
ExecStart=/app/tools/pushgateway/pushgateway
KillMode=process
[Install]
WantedBy=multi-user.target
2.3 编写脚本
#自定有监控cpu核心总数
lscpu |awk 'NR==4'|awk -F' ' '{print $NF}'
echo "cpus 1" | \curl --data-binary @- http://pushgateway:9091/metrics/job/pushgateway/instance/192.168.3.6:9091
#改造成脚本
#!/bin/bash
#desc:目标:
#2.定义变量
job=pushgateway
ins=192.168.3.6
cpus=`lscpu | awk 'NR==4'|awk -F' ' '{print $NF}'`
#3.脚本
echo "cpus $cpus" |\curl --data-binary @- http://$ins:9091/metrics/job/$job/instance/$ins
#4.定时任务
#定时任务
* * * * * /server/scripts/gateway.sh &> /dev/null
三、报警
3.1 安装
tar xzf alertmanager-0.27.0.linux-amd64.tar.gz -C /app
ln -s alertmanager-0.27.0.linux-amd64/ alertmanager
ln -s /app/alertmanager/alertmanager /bin/
#后台启动测试
3.2 第三方平台
#第三方的配置,修改alertManager.yml,对比一下
receivers:
- name: 'team-X-pager'
webhook_configs:
- url: 'http://api.aiops.com/alert/api/event/prometheus/b8c176817228473f96bbd0db435ab405' (保存当前应用,即可获取完整webhook地址信息)
send_resolved: true
3.3 配置prometheus告警
开启报警
# my global config
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets: ["192.168.3.62:9093"]
rule_files:
- "/app/prometheus/alert.yml"
配置rules文件
groups:
- name: alert_rules
rules:
- alert: CpuUsageAlertWarning
expr: sum(avg(irate(node_cpu_seconds_total{mode!='idle'}[5m])) without (cpu)) by (instance) > 0.01
for: 2m
labels:
level: warning
annotations:
summary: "Instance {{ $labels.instance }} CPU usage high"
再去9093的报警服务查看
在第三方平台查看告警信息
四、grafana+zabbix
4.1安装
tar xzf grafana-9.3.6-alexanderzobnin-zabbix-app-v4.2.10.tar.gz
mkdir -p /var/lib/grafana/plugins
mv alexanderzobnin-zabbix-app/ /var/lib/grafana/plugins/
systemctl restart grafana-server.service
4.2 激活zbx插件
配置zbx插件
如果搜索不到zabbix表示没有安装对应的插件
如果不成功,也可以通过提供的软件包解压或者grafana-cli plugins install alexanderzobnin-zabbix-app安装
在Zabbix插件上单击一下,进入如下界面
4.3配置grafana的数据源
grafana连接zabbix(添加数据源 datasource )
- 点赞
- 收藏
- 关注作者
评论(0)