Prometheus+Grafana部署

环境:Linux 发行版:CentOS7.6 Core:3.10 配置:2C4M 部署方式:二进制

注:本次实验只针对监控物理机资源和物理机上的容器资源

# 请提前准备好以下二进制文件 # 环境准备 prometheus-2.28.0.linux-amd64.tar.gz node_exporter-1.2.2.linux-amd64.tar.gz grafana-enterprise-8.3.3.linux-amd64.tar.gz alertmanager-0.23.0.linux-amd64.tar.gz pushgateway-1.4.1.linux-amd64.tar.gz cadvisor-0.44.0.tar.gz # 链接地址 # 建议在Windows下载好再上传Linux系统 https://github.com/prometheus/prometheus/releases/download/v2.28.0/prometheus-2.28.0.linux-amd64.tar.gz https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3.linux-amd64.tar.gz https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz https://github.com/prometheus/pushgateway/releases/download/v1.4.1/pushgateway-1.4.1.linux-amd64.tar.gz https://github.com/google/cadvisor/archive/refs/tags/v0.44.0.tar.gz

规划

1、所有配置都在(/data)目录下 2、所有服务都添加systemd管理 3、所有机器都采用同样的配置 4、所有服务都配置开机自启动 5、所有服务器必须使用ntp时间同步,因为prometheus T_S对系统时间的准确性要求极高,必须保证本机时间实时同步

1|0一、prometheus server部署

# 创建服务配置文件存放位置 mkdir -p /data/prometheus # 解压二进制文件并改名 tar xvf prometheus-2.28.0.linux-amd64.tar.gz -C /data/prometheus cd /data/prometheus mv prometheus-2.28.0.linux-amd64 prometheus-2.28 # 添加systemd管理 cat > /usr/lib/systemd/system/prometheus.service <<EOF [Unit] Description=prometheus [Service] ExecStart=/data/prometheus/prometheus-2.28/prometheus --config.file=/data/prometheus/prometheus-2.28/prometheus.yml ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable prometheus.service --now

修改prometheus.yml配置
prometheus.yml配置
热加载配置文件
查看prometheus进程

  • kill -1 32360或kill -HUP 32360

根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件

访问prometheus自带的web页面:
访问方式:ip+端口
http://172.31.10.11:9090
prometheus主页面
被监控的目标

2|0二、node exporter部署

注:此步骤在需要被监控的主机上部署,部署完后在prometheus.yml配置文件中添加相应的目标,然后热加载配置

# 创建服务配置文件存放位置 mkdir -p /data/node_exporter # 解压二进制文件并改名 tar xvf node_exporter-1.2.2.tar.gz -C /data/node_exporter/ cd /data/node_exporter mv node_exporter-1.2.2.linux-amd64/ node_exporter-1.2.2 # 添加systemd管理 cat > /usr/lib/systemd/system/node_exporter.service <<EOF [Unit] Description=node_exporter [Service] ExecStart=/data/node_exporter/node_exporter-1.2.2/node_exporter --collector.systemd --collector.systemd.unit-include=(docker|sshd|nginx).service ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable node_exporter.service --now

访问测试:
被监控的节点

3|0三、Grafana部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置 mkdir -p /data/grafana # 解压二进制文件并改名 tar xvf grafana-enterprise-8.3.3.linux-amd64.tar.gz -C /data/grafana/ # 添加systemd管理 cat > /usr/lib/systemd/system/grafana.service <<EOF [Unit] Description=grafana [Service] ExecStart=/data/grafana/grafana-8.3.3/bin/grafana-server -homepath=/data/grafana/grafana-8.3.3 ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable grafana.service --now
访问测试: ip+端口 默认用户密码:admin+admin # grafana模板下载地址 https://grafana.com/grafana/dashboards 常用模板 193 docke监控r模板 9276 node节点监控模板 7362 mysql监控模板

grafana图形界面
成功登录grafana

4|0四、Alertmanager部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置 mkdir -p /data/alertmanager # 解压二进制文件并改名 tar xvf alertmanager-0.23.0.linux-amd64.tar.gz -C /data/alertmanager/ cd /data/alertmanager/ mv alertmanager-0.23.0.linux-amd64/ alertmanager-0.23 # 添加systemd管理 cat > /usr/lib/systemd/system/alertmanager.service <<EOF [Unit] Description=alertmanager [Service] ExecStart=/data/alertmanager/alertmanager-0.23/alertmanager --config.file=/data/alertmanager/alertmanager-0.23/alertmanager.yml ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable alertmanager.service --now

5、修改alertmanager配置(钉钉告警版)

[root@prometheus alertmanager]# cat alertmanager.yml global: resolve_timeout: 5m templates: - '/data/alertmanager/alertmanager-0.23/template/*.tmpl' route: group_by: ['alertname'] group_wait: 30s group_interval: 1m repeat_interval: 2m receiver: 'web.hook' receivers: - name: 'web.hook' webhook_configs: - url: 'http://localhost:8060/dingtalk/webhook1/send' send_resolved: true inhibit_rules: - source_match: alertname: 'ApplicationDown' severity: 'critical' target_match: severity: 'warning' equal: ['alertname',"target","job","instance"]

6、修改alertmanager配置(邮件告警版)

[root@prometheus alertmanager]# cat alertmanager.yml.bak20210830 global: resolve_timeout: 5m #邮箱服务器 smtp_smarthost: 'smtp.126.com:25' smtp_from: 'xxx@126.com' smtp_auth_username: 'xxx@126.com' smtp_auth_password: 'xxx' smtp_require_tls: false #配置路由树 route: group_by: ['alertname'] # 根据告警规则组名进行分组 group_wait: 10s # 分组内第一个告警等待时间,10s内如有第二个告警会合并一个告警 group_interval: 10s # 发送新告警间隔时间 repeat_interval: 1h # 重复告警间隔发送时间 receiver: 'mail' #接收人 receivers: - name: 'mail' email_configs: - to: '1665111913@qq.com'

5|0五、PushGateway部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置 mkdir -p /data/pushgateway # 解压二进制文件并改名 tar xf pushgateway-1.4.1.linux-amd64.tar.gz -C /data/pushgateway/ cd /data/pushgateway/ mv pushgateway-1.4.1.linux-amd64/ pushgateway-1.4.1 # 添加systemd管理 cat > /usr/lib/systemd/system/pushgateway.service <<EOF [Unit] Description=pushgateway After=network.target [Service] User=root Type=simple ExecStart=/data/pushgateway/pushgateway-1.4.1/pushgateway Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable pushgateway.service --now 访问:http://XX.XX.XX.XX:9091/metrics # 配置prometheus.yml主配置文件 - job_name: 'pushgateway' honor_labels: true # 避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖 scrape_interval: 5s # 抓取时间间隔为5秒 static_configs: - targets: ['172.31.10.20:9091'] instance: pushgateway # 重新热加载配置文件 kill -1 prometheus服务进程

6|0六、cAdvisor部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置 mkdir -p /data/cadvisor # 解压二进制文件并改名 tar xf cadvisor-0.44.0.tar.gz -C /data/cadvisor/ # 添加systemd管理 cat > /usr/lib/systemd/system/cadvisor.service <<EOF [Unit] Description=cadvisor After=network.target [Service] User=root Type=simple ExecStart=/data/pushgateway/pushgateway-1.4.1/pushgateway Restart=on-failure [Install] WantedBy=multi-user.target EOF # 加载配置并启动 systemctl daemon-reload && systemctl enable pushgateway.service --now 访问:http://XX.XX.XX.XX:9091/metrics # 配置prometheus.yml主配置文件 - job_name: 'pushgateway' honor_labels: true # 避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖 scrape_interval: 5s # 抓取时间间隔为5秒 static_configs: - targets: ['172.31.10.20:9091'] instance: pushgateway # 重新热加载配置文件 kill -1 prometheus服务进程

__EOF__

本文作者_安阳
本文链接https://www.cnblogs.com/msfyang/p/16325727.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   _安阳  阅读(165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示