Prometheus 是 DBA 们必须掌握的云原生监控工具之一,本方案主要介绍使用 dbosp1.5 如何快速搭建 Prometheus 监控 MySQL 数据库。
本篇是第一篇,介绍如何使用 dbops1.5 部署 Prometheus + Grafana + Alertmanager。第二篇会介绍使用dbops1.5 如何部署MySQL8.4。第三篇介绍,如何部署MySQL exporter 和注册 exporter 到 Prometheus。第四篇演示告警和短信。
第五篇介绍,dbops1.5 开发这个功能,都做了什么努力。
使用说明
1. 安装
以安装 dbops1.5开发版为例
1.1 安装 Prometheus + Grafana + Alertmanager 全家桶
1.1.1 下载 dbops
yum install git -y
cd usr/local
git clone https://gitee.com/fanderchan/dbops/复制
1.1.2 切换到最新dbops1.5
cd dbops/
git checkout dbops1.5复制
1.1.3 安装 ansible
dbops 自带绿色版 ansible,安装注册绿色版 ansible 的步骤在 这里也有涉及。
cd portable-ansible-v0.5.0-py3
sh setup_portable_ansible.sh
source ~/.bashrc复制
检查ansible是否成功
ansible --version
复制
1.1.4 配置ansible主机
cd ..
cd monitoring_prometheus_ansible
vi inventory/hosts.ini复制
把你的主机信息填入到 inventory/hosts.ini 文件中。主要包含以下信息:
主机IP
操作主机的用户名(只支持root)
操作主机的密码
## Configuration for monitoring_prometheus_deployment.yml only ##
[prometheus]
192.168.199.133 ansible_user=root ansible_ssh_pass="'密码'"
[grafana]
192.168.199.133 ansible_user=root ansible_ssh_pass="'密码'"
[alertmanager]
192.168.199.133 ansible_user=root ansible_ssh_pass="'密码'"
[all:vars]
#ansible_python_interpreter=/usr/bin/python3复制
1.1.5 上传软件安装包
保证/usr/local/dbops/downloads 目录下有以下文件:
alertmanager-0.27.0.linux-amd64.tar.gz
grafana-enterprise-10.4.6.linux-amd64.tar.gz
prometheus-2.54.0.linux-amd64.tar.gz复制
下载地址
# 下载 Alertmanager 0.27.0
wget https://github.com/prometheus/alertmanager/releases/download/v0.27.0/alertmanager-0.27.0.linux-amd64.tar.gz
# 下载 Grafana Enterprise 10.4.6
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.6.linux-amd64.tar.gz
# 下载 Prometheus 2.54.0
wget https://github.com/prometheus/prometheus/releases/download/v2.54.0/prometheus-2.54.0.linux-amd64.tar.gz复制
1.1.6 修改 Prometheus + Grafana + Alertmanager 配置
cd playbooks
vi common_config.yml #修改通用设置复制
由于本篇是快速入门,所以只需要修改以下几个参数:
alert_email_to: '510386283@qq.com' # The email address to receive alert notifications.
alert_email_from: '510386283@qq.com' # The sender email address for alert notifications.
alert_smtp_smarthost: 'smtp.qq.com:587' # The SMTP server address (e.g., smtp.qq.com:587).
alert_smtp_auth_username: '510386283@qq.com' # The SMTP server authentication username.
alert_smtp_auth_password: 'xxxxxxxxxx' # The SMTP server authentication password.复制
示例是作者的QQ邮箱,把邮箱改为你的告警邮箱,smtp_smarthost 改为你的邮箱smtp服务器地址,smtp_auth_username 改为你的邮箱地址,smtp_auth_password 改为你的邮箱的授权密码。
授权密码获取方式:QQ邮箱的话点击 这里 获取帮助。
接着修改剧本设置
vi vars/var_monitoring_prometheus_deployment.yml
复制
本篇傻瓜式教程不涉及修改此配置,也不建议修改。
1.1.7 安装 Prometheus + Grafana + Alertmanager 全家桶
ansible-playbook monitoring_prometheus_deployment.yml
复制
1.1.8 确认信息
在执行 playbook 后,会输出以下信息,请确认无误后输入 confirm 继续。
TASK [Display the list of target hosts and additional information] ***********************************************
ok: [192.168.199.133] => {
"msg": [
"Hosts to be affected by Deploy Prometheus+Grafana+Alertmanager using binary installation: 192.168.199.133",
"prometheus ip: 192.168.199.133",
"prometheus port: 9090",
"prometheus package: prometheus-2.54.0.linux-amd64.tar.gz",
"grafana ip: 192.168.199.133",
"grafana port: 3000",
"grafana package: grafana-enterprise-10.4.6.linux-amd64.tar.gz",
"alertmanager ip: 192.168.199.133",
"alertmanager port: 9093",
"alertmanager package: alertmanager-0.27.0.linux-amd64.tar.gz"
]
}
TASK [Prompt user for confirmation] ******************************************************************************
[Prompt user for confirmation]
This will perform Deploy Prometheus+Grafana+Alertmanager using binary installation on the displayed hosts. Please type 'confirm' to continue or press Ctrl+C to cancel.:复制
输入 confirm 后,会开始安装。安装完成后,会输出以下信息:
TASK [../roles/alertmanager : Start alertmanager service] ********************************************************
changed: [192.168.199.133]
TASK [../roles/alertmanager : Check if Alertmanager is operational] **********************************************
ok: [192.168.199.133]
TASK [../roles/alertmanager : Fail if Alertmanager is not operational] *******************************************
skipping: [192.168.199.133]
TASK [../roles/alertmanager : Touch alertmanager_finish.flag] ****************************************************
changed: [192.168.199.133]
PLAY RECAP *******************************************************************************************************
192.168.199.133 : ok=71 changed=40 unreachable=0 failed=0 skipped=16 rescued=0 ignored=0
Playbook run took 0 days, 0 hours, 2 minutes, 30 seconds复制
1.1.9 打开 Web 页面确认安装完成
prometheus
http://192.168.199.133:9090/alerts?search=
grafana
http://192.168.199.133:3000/
alertmanager
http://192.168.199.133:9093/
官方文档:
https://gitee.com/fanderchan/dbops_docs/blob/master/monitoring_prometheus_ansible/Prometheus%E7%9B%91%E6%8E%A7mysql%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8.md#https://gitee.com/link?target=https%3A%2F%2Fk49r1gqq90.feishu.cn%2Fdocx%2FRgXPdLx4Wod4BWxuQMucQ5yTnMb