Directorio de artículos
1. Instale Docker
Nota: Utilizo el script que escribí antes para instalar Docker. Si ya tiene Docker, omita este paso. Docker se instala para facilitar la implementación de la base de datos MySQL. Si ya tiene una base de datos, puede omitir los dos primeros pasos.
Haga clic para obtener el script de instalación sin conexión de Docker
tar zxf docker20.10.14Install.tar.gz
cd docker20.10.14Install
bash install.sh
Verifique el estado de Docker como se muestra a continuación, lo que significa que no hay ningún problema:
systemctl status docker
2. Instale la base de datos MySQL (método contenedor Docker)
1. Preparación previa:
docker pull mysql:8.0.27
mkdir /data/db -p
systemctl stop firewalld
systemctl disable firewalld
iptables -F
2. Ejecute el contenedor:
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=NTQ34tg*@19VF \
-v /data/db:/var/lib/mysql -p 3306:3306 -v /etc/localtime:/etc/localtime \
--restart=always mysql:8.0.27
3. Pruebe si el contenedor se puede conectar.
docker exec -it mysql mysql -uroot -pNTQ34tg*@19VF
Por supuesto, puede utilizar herramientas para probar la conexión, como se muestra a continuación:
¡Solo asegúrese de que se pueda acceder a la base de datos normalmente!
4. Cree un usuario de monitoreo de MySQL
create user "prometheus"@"%" identified by 'NTQ34tg*@19VF';
grant select,replication client,process ON *.* to "prometheus"@"%";
flush privileges;
3. Instale Prometeo
1. Sincronización de hora y zona horaria
timedatectl set-timezone Asia/Shanghai
yum -y install ntpdate
/usr/sbin/ntpdate -u ntp1.aliyun.com
Configurar el tiempo de sincronización de tareas programadas
echo "0 5 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com >/dev/null &" >> /var/spool/cron/root
crontab -l
2. Instale Prometeo
wget https://github.com/prometheus/prometheus/releases/download/v2.42.0/prometheus-2.42.0.linux-amd64.tar.gz
tar zxf prometheus-2.42.0.linux-amd64.tar.gz
mv prometheus-2.42.0.linux-amd64 /usr/local/prometheus
3. Configurar la gestión del sistema
cat > /usr/lib/systemd/system/prometheus.service << EOF
[Unit]
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP \$MAINPID
[Install]
WantedBy=multi-user.target
Alias=dbus-org.fedoraproject.FirewallD1.service
EOF
4. Inicie y configure el inicio automático al arrancar
systemctl enable prometheus --now
systemctl status prometheus
La pantalla es como se muestra arriba, lo que significa que no hay ningún problema con Prometheus. El puerto predeterminado es 9090. Podemos acceder a él con un navegador. Haga clic en > para ver las
métricas Status
propias Targets
de Prometheus como se muestra a continuación:
4. Instale Grafana
1. Instalar Grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.1-1.x86_64.rpm
sudo yum install grafana-enterprise-9.4.1-1.x86_64.rpm -y
systemctl enable grafana-server.service --now
2. Verificación de la página WEB.
El puerto predeterminado es 3000. Cuando visite por primera vez, se le pedirá que restablezca la contraseña, como se muestra a continuación:
5. Proneteo y Grafana están relacionados
6. Instale mysqld_exporter
1. Instale mysqld_exporter
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
tar zxf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/mysqld_exporter
2. Configure Prometheus para monitorear la información del usuario de la base de datos.
cd /usr/local/mysqld_exporter
cat > .my.cnf <<EOF
[client]
user=prometheus
password=NTQ34tg*@19VF
EOF
3. Configurar la gestión del sistema
cat > /usr/lib/systemd/system/mysqld_exporter.service << EOF
[Unit]
Description=mysqld_exporter Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
ExecReload=/bin/kill -HUP \$MAINPID
Restart=on-failure
RestartSec=30s
[Install]
WantedBy=multi-user.target
EOF
Iniciar y unirse al inicio automático al arrancar
systemctl enable mysqld_exporter --now
systemctl status mysqld_exporter
El puerto predeterminado es 9104
ss -anput |grep 9104
4. Especifique la información de mysqld_exporter en el archivo de configuración de Prometheus.
vim /usr/local/prometheus/prometheus.yml
- job_name: "MySQL_115"
static_configs:
- targets: ["16.32.15.115:9104"]
Después de agregar el archivo de configuración, use el comando para probar si hay algún problema con el formato.
cd /usr/local/prometheus/
./promtool check config prometheus.yml
Reiniciar Prometeo
systemctl restart prometheus.service
7. Grafana agrega una plantilla de monitoreo de MySQL
Aquí se utiliza el ID de plantilla de MySQL: 7362,
haga clic 下方红圈地方
>>import
输入模板ID
La representación final es la siguiente: