Table des matières
搭建步骤
1.创建模板
2.为模板添加 自动发现宏(自动发现宏声明的途径就是下图的脚本,脚本里只有生成固定的格式,zabbix就会认定他是 自动发现宏)
3.创建监控项(监控项和监控的脚本都是要改的,因为自动发现功能,至少脚本会多了一个参数)
4.创建 主机宏
Maison base de données tutoriel mysql Comment utiliser Zabbix pour surveiller plusieurs MySQL

Comment utiliser Zabbix pour surveiller plusieurs MySQL

Jun 02, 2023 pm 02:25 PM
mysql zabbix

Comment utiliser Zabbix pour surveiller plusieurs MySQL

用到的主要工具: 宏(分为模板宏,主机宏,自动发现宏)

     主机宏格式:$MACRO   (直接就可以 填  值)
          自动发现宏:#MACRO    (需要配合 创建的 key 取值)
Copier après la connexion

大体架构

1.agent主机 — agent 主机创建 宏变量 $MYSQLPORT ,宏变量的值为 Discovery rules的 自动发现脚本参数 2.模板 — 模板里创建自动发现规则,靠的是自动发现脚本,得到自动发现宏变量。 3.监控项– 在Discovery rules 里创建监控项,监控项名称和key值里都有自动发现宏变量,会自动生成相关端口的监控项 4.客户端 脚本和键创建,来支持整个架构运行

搭建步骤

1.创建模板
Comment utiliser Zabbix pour surveiller plusieurs MySQL

可以忽略这个模板的 items 和 triggers,因为它是默认的克隆 mysql 监控模板。 监控项都在 Discovery rules 里。

2.为模板添加 自动发现宏(自动发现宏声明的途径就是下图的脚本,脚本里只有生成固定的格式,zabbix就会认定他是 自动发现宏)
Comment utiliser Zabbix pour surveiller plusieurs MySQL

在上面的图中,mysql.discovery指的是获取自动发现宏的脚本,该脚本位于代理端。

后面的 为此脚本执行时带的参数,MYSQLPORT 是主机宏。

discovery rule 右边的 filters 是过滤规则的意思,比方你 只想取脚本里的 某某 自动发现宏,就可以在里面设置。 这里就只有一个自动发现宏,所有不做 配置。

3.创建监控项(监控项和监控的脚本都是要改的,因为自动发现功能,至少脚本会多了一个参数)
Comment utiliser Zabbix pour surveiller plusieurs MySQL
4.创建 主机宏
Comment utiliser Zabbix pour surveiller plusieurs MySQL

点开主机,添加主机宏,宏名称是 自动发现脚本里的 参数, 宏的值就是 此 主机上需要监控的端口。

这样就实现了 只要改动主机宏的 值,就可以改变主机宏的监控项。

脚本展示

1.discovery_mysql.sh 自动发现端口脚本 (网上抄的脚本做了修改)

res=`echo $1| sed "s/_/\n/g"`;
port=($res)printf '{\n'printf '\t"data":[\n'for key in ${!port[@]}do   if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then       printf '\t {\n'       printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"},\n" else [[ "${key}" -eq "((${#port[@]}-1))" ]]
       printf '\t {\n'       printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"}\n"fidoneprintf '\t ]\n'printf '}\n'
Copier après la connexion

执行实例: 以_ 为分隔符,格式化输出 自动发现宏 ./discovery_mysql.sh 3306_3307_3308

{
             "data":[
             {
                               "{#MYSQLPORT}":"3306"},
             {
                               "{#MYSQLPORT}":"3307"},
             {
                               "{#MYSQLPORT}":"3308"}
             ]
}
Copier après la connexion

2.mysql_filestype.sh 监控mysql的一些挂载盘

var=$1MYSQL_PORT=$2MYSQL_NAME=`ps -ef |grep '/mysql/app/bin/mysqld'| grep "$MYSQL_PORT" |grep -v grep | awk -F" " '{print $11}' |awk -F"/" '{print $2}'` ;
MYSQL_SOCk_DIR="/$MYSQL_NAME/" ;
df -h "${MYSQL_SOCk_DIR}${var}" |grep -v Filesystem |awk -F" " '{print $5}' | awk -F"%" '{print $1}' ;
Copier après la connexion

3.mysql_ping.sh 监控mysql状态

MYSQL_PORT=$1;

[ "${MYSQL_USER}"     = '' ] &&  MYSQL_USER=xxx
[ "${MYSQL_PASSWORD}" = '' ] &&  MYSQL_PASSWORD=xxxxx

mysqladmin=/mysql/app/bin/mysqladmin  ;

MYSQL_SOCk_DIR=`ps -ef |grep 'mysql'| grep "${MYSQL_PORT}" |grep -v 'grep' | awk -F" " '{print $16}'`  ;${mysqladmin}   -u${MYSQL_USER} -p${MYSQL_PASSWORD}  ${MYSQL_SOCk_DIR}  ping   2> /dev/null |grep 'alive'|wc -l  ;
Copier après la connexion

注意: 这边连接实例 都是 mysql -u -p -S /xxx/mysql.sock

但是后来发现部分客户端总是无法正确显示值,而且就是这条 语句报错, 感觉是环境变量的问题

所以拿 –socket=/xxx/mysql.sock 来代替 -S/xxx/mysql.sock 。 这里的变量${MYSQL_SOCk_DIR} 就是–socket=/xxx/mysql.sock 。

4.mysql_repl.sh mysql主从状态监控

var=$1MYSQL_PORT=$2MYSQL_SOCk_DIR=`ps -ef |grep 'mysql'| grep "${MYSQL_PORT}" |grep -v 'grep' | awk -F" " '{print $16}'`  ;
mysql=/mysql/app/bin/mysql
[ "${MYSQL_USER}"     = '' ] &&  MYSQL_USER=xxx
[ "${MYSQL_PASSWORD}" = '' ] &&  MYSQL_PASSWORD=xxxx${mysql}  -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_SOCk_DIR} -e "show slave status\G;"  2> /dev/null |grep "\b${var}\b"|awk -F" " '{print $2}'   ;
Copier après la connexion

主从状态 有几个端口的值是 空的, 这个得 具体问题具体设置

5.mysql_status2 mysql性能之类的监控

mysql=/mysql/app/bin/mysql
var=$1MYSQL_PORT=$2[ "${MYSQL_USER}"     = '' ] &&  MYSQL_USER=xxx
[ "${MYSQL_PASSWORD}" = '' ] &&  MYSQL_PASSWORD=xxxxx

MYSQL_SOCk_DIR=`ps -ef |grep 'mysql'| grep "${MYSQL_PORT}" |grep -v 'grep' | awk -F" " '{print $16}'`  ;${mysql}  -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_SOCk_DIR} -e "show global status;" 2> /dev/null |grep -v Variable_name|grep "\b${var}\b"|awk '{print $2}'   ;
Copier après la connexion

发现有些监控项 或因为数字过长而无法显示,待解决

6.mysql_version.sh mysql版本监控

MYSQL_PORT=$1;

MYSQL_SOCk_DIR=`ps -ef |grep 'mysql'| grep "${MYSQL_PORT}" |grep -v 'grep' | awk -F" " '{print $16}'`  ;

mysql=/mysql/app/bin/mysql ;

[ "${MYSQL_USER}"     = '' ] &&  MYSQL_USER=xxx
[ "${MYSQL_PASSWORD}" = '' ] &&  MYSQL_PASSWORD=xxxx${mysql}  -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_SOCk_DIR}  -e "select version();" 2> /dev/null |awk 'END {print}'
Copier après la connexion

7.mysql_status_many.conf 生成可用键 配置文件

UserParameter=mysql.discovery[*],/patrol/zabbix/bin/duoshili_discovery/discovery_mysql.sh $1  
UserParameter=mysql.status_many[*],/patrol/zabbix/bin/duoshili_discovery/mysql_status2 $1 $2UserParameter=mysql.ping_many[*],/patrol/zabbix/bin/duoshili_discovery/mysql_ping.sh $1UserParameter=mysql.version_many[*],/patrol/zabbix/bin/duoshili_discovery/mysql_version.sh $1UserParameter=mysqlcheck_repl[*],/patrol/zabbix/bin/duoshili_discovery/mysql_repl.sh $1 $2UserParameter=mysql.filestyle_many[*],/patrol/zabbix/bin/duoshili_discovery/mysql_filestype
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

Comment récupérer les données après que SQL supprime les lignes Comment récupérer les données après que SQL supprime les lignes Apr 09, 2025 pm 12:21 PM

La récupération des lignes supprimées directement de la base de données est généralement impossible à moins qu'il n'y ait un mécanisme de sauvegarde ou de retour en arrière. Point clé: Rollback de la transaction: Exécutez Rollback avant que la transaction ne s'engage à récupérer les données. Sauvegarde: la sauvegarde régulière de la base de données peut être utilisée pour restaurer rapidement les données. Instantané de la base de données: vous pouvez créer une copie en lecture seule de la base de données et restaurer les données après la suppression des données accidentellement. Utilisez la déclaration de suppression avec prudence: vérifiez soigneusement les conditions pour éviter la suppression accidentelle de données. Utilisez la clause WHERE: Spécifiez explicitement les données à supprimer. Utilisez l'environnement de test: testez avant d'effectuer une opération de suppression.

Comment exécuter SQL dans Navicat Comment exécuter SQL dans Navicat Apr 08, 2025 pm 11:42 PM

Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

See all articles