Annuaire d'articles
-
- **But:**
- Déployez et installez Zabbix 3.0 :
- MySQL construit la base de données, importe la bibliothèque et la table zabbix
- Modifiez le fichier de configuration principal de Zabix pour démarrer
- Configurer la fonction d'alerte par e-mail :
- Configurez la découverte automatique et testez :
- Créez des hôtes et des groupes d'hôtes :
- Configurer les éléments de surveillance (élément) :
- Configurez le déclencheur (Trigger):
- Configurer les actions -- Actions et configurer les alertes par e-mail :
- Essayez de restaurer l'exercice d'échec à l'aide d'un script :
- Ajoutez le type de média de l'e-mail d'alarme -- utilisez le script (script) :
- Créer des graphiques :
- Configurez le modèle d'hôte (Template) :
- Ajoutez des éléments de surveillance de la mémoire libre pour le client en créant une clé personnalisée :
- Le client installe le service Nginx et configure la surveillance :
- Fonction d'alarme Zabbix du robot cloueur Python :
-
But:
-
Déployer Zabbix 3.0
-
Configurer la fonction d'alarme par e-mail, configurer la détection automatique du système d'exploitation et la fonction d'ajout automatique
-
Configurez l'action pour surveiller automatiquement les hôtes découverts et envoyer des alertes par e-mail
-
Configurez l'action pour surveiller automatiquement les hôtes découverts et réaliser l'alarme du robot DingTalk
Déployez et installez Zabbix 3.0 :
HOSTNAME=zabbix
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash #触发bash;主机名已改变
yum -y install mariadb-server mariadb
systemctl start mariadb #启动服务
systemctl enable mariadb #加入系统服务,开机自启动
-
Installez Zabbix en utilisant la source officielle de yum
- Adresse du site officiel :
https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=MySQL
cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el7.noarch.rpm
- Installez certains packages zabbix qui doivent être utilisés
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
- Installez le package logiciel zabbix-get pour faciliter l'obtention d'informations de surveillance en exécutant des commandes ultérieurement
yum install -y zabbix-get-3.0.28-1.el7.x86_64
- Supplément : (certains noms de packages et utilisations de zabbix) \color{red}{supplément : (certains noms de packages et utilisations de zabbix)}Supplément : ( quelques noms de paquets et utilisations de z a b b i x )
- zabbix-server-mysql-3.4.6-1.el7.x86_64 (programme d'installation principal du serveur zabbix)
- zabbix-agent-3.4.6-1.el7.x86_64 (programme d'installation principal de l'agent zabbix)
- zabbix-web-3.4.6-1.el7.noarch (programme d'installation Web zabbix)
- zabbix-get-3.4.6-1.el7.x86_64.rpm (programme d'installation du serveur zabbix, utilisé pour obtenir les données de surveillance)
- zabbix-web-mysql-3.4.6-1.el7.noarch.rpm (programme d'installation pour la base de données de connexion Web zabbix)
- zabbix-release-3.4.2-1.el7.noarch.rpm (générer le fichier de configuration source zabbix yum)
- zabbix-sender-3.4.6-1.el7.x86_64.rpm (programme d'installation de l'agent zabbix, utilisé pour envoyer des données de surveillance)
Concentrez-vous ensuite sur les deux packages suivants (zabbix-get et zabbix-sender) :
- zabbix-get (installé côté serveur)
- zabbix-sender (installé côté agent)
- zabbix-get est installé côté serveur zabbix, utilisé pour communiquer avec le côté agent zabbix et utilisé pour extraire activement des données du côté agent vers le côté serveur ;
- zabbix-sender est installé du côté de l'agent zabbix, utilisé pour communiquer avec le côté serveur zabbix et utilisé pour pousser activement les données du côté agent vers le côté serveur.
rpm -qa |grep zabbix #查看已经安装的Zabbix程序包
MySQL construit la base de données, importe la bibliothèque et la table zabbix
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix # 导入数据库脚本,生成数据库环境并授权
- Commande Zcat :
"Zcat" est un utilitaire de ligne de commande permettant d'afficher le contenu des fichiers compressés sans les décompresser. Il développe le fichier compressé en sortie standard, vous permettant de visualiser son contenu. De plus, zcat a exactement le même résultat que l'exécution de la commande gunzip -c.
Modifiez le fichier de configuration principal de Zabix pour démarrer
#将DBPassword复制一行进行修改
sed -i 's/# DBPassword=.*/&\nDBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
#为Zabbix前端配置PHP,更改时区
sed -i 's|# \(php_value date.timezone\) Europe/Riga|\1 Asia/Shanghai|g' /etc/httpd/conf.d/zabbix.conf
#重启服务
systemctl restart zabbix-server zabbix-agent httpd
#加入系统服务,开机自启动
systemctl enable zabbix-server zabbix-agent httpd
- Accès à la page Web : http://192.168.137.235/zabbix
- Ici, vous pouvez voir que la valeur de la date du fuseau horaire que nous avons modifiée ci-dessus a pris effet
- Renseignez le Mot de passe de la base de données : zabbix
- Répertorier les détails des services Zabbix, l'étape suivante par défaut
- Résumé avant l'installation, étape suivante par défaut
- Une fois l'installation terminée, cliquez sur Terminer pour vous connecter à la page de gestion Web
- Nom d'utilisateur et mot de passe par défaut Admin/zabbix
- Changez la langue de l'interface en chinois (selon vos préférences personnelles, pas nécessaire)
- Passer au chinois (zh_Cn) Chinois, mettre à jour pour confirmer la mise à jour
Configurer la fonction d'alerte par e-mail :
-
Gestion – Type de média d'alarme – E-mail
-
Ajout de 163 boîtes aux lettres pour l'envoi d'e-mails d'alarme
-
Modifier le support d'alarme de l'administrateur (Admin) Admin
- Utilisateur - Admin
-
Ajouter un support d'alerte
-
Selon les besoins, réglez et ajustez vous-même
-
mettre à jour, ajouter
Configurez la découverte automatique et testez :
- Ouvrez une nouvelle machine virtuelle et installez et configurez le client zabbix
# 主机名和hosts解析部署
HOSTNAME=zabbix-test
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash #触发bash;主机名已改变
# 将 Zabbix 服务端添加到 hosts 解析文件中(方便后面配置文件指向服务端地址)
echo "192.168.137.235 zabbix_server">>/etc/hosts
# 使用官方yum源安装配置Zabbix agent
cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el6.noarch.rpm
# 安装客户端
yum -y install zabbix-agent
# 修改客户端配置文件 zabbix_agentd.conf
cd /etc/zabbix/
sed -i 's/^Server=127.0.0.1/Server=zabbix_server/g' zabbix_agentd.conf
sed -i 's/^ServerActive=127.0.0.1/ServerActive=zabbix_server:10051/g' zabbix_agentd.conf
sed -i "s/^\(Hostname=\).*/\1$(hostname)/g" zabbix_agentd.conf
# 在当前系统级别开启 zabbix-agent 服务,并启动客户端(便于实现自动发现)
chkconfig zabbix-agent on
/etc/init.d/zabbix-agent start
- Ajoutez la fonction de découverte automatique à la page Web :
Configuration – Découverte automatique – Créer des règles de découverte
- Ajouter une règle de découverte automatique
- statut activé
- Détection – découverte automatique
Vous pouvez voir que le client a été connecté et que la découverte automatique est terminée
- Supplément (opération facultative) : − − Créer une action de découverte automatique (action) − − réaliser un ajout automatique ou envoyer une notification par e-mail) \color{red}{Supplément (opération facultative) :-- Créer une action de découverte automatique (action ) - - réaliser un ajout automatique ou envoyer une notification par e-mail)}Supplément ( opération facultative ) : _−−Créer une action de découverte automatique ( action ) _ _ _ _−− Réaliser l'ajout automatique ou envoyer une notification par e-mail )
- Créez d'abord un groupe d'hôtes pour faciliter l'ajout automatique d'hôtes de découverte au groupe ultérieurement
- Configuration - Action - Source d'événement (Découverte automatique) - Créer une action - Envoyer un e-mail de notification après l'ajout automatique de l'hôte
- Créer une action de découverte automatique
Onglet Configurer les actions
- Onglet Configurer les conditions
- Onglet Configurer les actions – Envoyer un e-mail
- Afficher la liste des actions de découverte automatique
- Dans l'événement, nous pouvons voir l'événement déclenché par la découverte automatique
- Le client recevra un e-mail lorsque la connexion sera déconnectée
- Créez d'abord un groupe d'hôtes pour faciliter l'ajout automatique d'hôtes de découverte au groupe ultérieurement
Créez des hôtes et des groupes d'hôtes :
- Configuration – Hôte – Créer un hôte
- Ajoutez le contenu du premier onglet, et les onglets restants ne seront pas définis temporairement
- Affichez le groupe d'hôtes, le groupe d'hôtes nouvellement créé a été généré et zabbix-agent a été ajouté à ce groupe d'hôtes
Configurer les éléments de surveillance (élément) :
- Créer un nouvel élément de surveillance
- Configurer et ajouter des éléments de surveillance du processeur
system.cpu.switches : le nombre de contextes à basculer. Il renvoie une valeur entière.
- Le serveur exécute la commande pour obtenir la valeur entière du nombre de contextes CPU client à basculer
zabbix_get -s 192.168.137.137 -k "system.cpu.switches"
- Configurer l'acquisition d'éléments de surveillance
- Afficher à nouveau les éléments de surveillance de zabbix-agent
- Voir la tendance du graphique de tendance
- Configurer et ajouter des éléments de surveillance de carte réseau
net.if.in[if,<mode>] 网络接口上传流量统计;返回 整数。
[if,<mode>] 带中括号的Key表示能接受参数的key
if 指定网卡接口名称;<mode> 指定具体需要监控模式的数据
- Supplément : Ajouter une méthode de clé personnalisée
要想使用自定义key,需要更改agent端配置文件/etc/zabbix/zabbix-agentd.conf
UserParameter=<key>,<command> -- 不接收参数
UserParameter=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo
UserParameter=<key[*]>,<command>$1...$9 -- 接收参数
UserParameter=system.memory.usage[*],awk '/^$1/{print $$2}' /proc/meminfo
第一个$1是前system.memory.usage[*]的所有输出结果;$$2是通过awk过滤出第二行或列的值。
Exemple : \color{rouge}{Exemple :}Exemple :
找到UserParameters,添加UserParametes=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo(自定义的key,需注意不要与内建key重名) --监控空闲内存的值
配置完成需要重启服务:systemctl restart zabbix-agent.service
服务端通过命令查看客户端空先内存:zabbix_get -s 192.168.137.139 -k "system.memory.free"
- Le serveur exécute la commande pour obtenir la valeur entière des statistiques de trafic de téléchargement de l'interface réseau du client
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,packets]"
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,bytes]"
- Exécutez la commande ifconfig sur le client pour voir d'où viennent les données et si elles sont cohérentes
- Configurer les éléments de surveillance à obtenir et enregistrer (mise à jour)
- En plus de l'enregistrement (mise à jour), le bas de l'élément de contrôle prend également en charge l'option de clonage, qui peut cloner un élément de surveillance et le configurer
- Clonez un élément de surveillance et ajoutez la surveillance en tant que : Octets entrants - le nombre d'octets entrants
Modifiez simplement la valeur et le nom de la clé
- Continuez à cloner et ajoutez le nombre de paquets sortants et d'octets sortants Nombre
de paquets sortants
- Octets sortants
- Enregistrer et afficher les nouveaux éléments de surveillance
- Vous pouvez toujours voir la tendance des données de surveillance
Configurez le déclencheur (Trigger):
- Configuration - hôte - hôte/groupe d'hôtes correspondant - déclencheur - sélectionnez le propriétaire et l'hôte du groupe correspondant - créez un déclencheur
- Créer un nouveau déclencheur Paquets entrants – le nombre moyen de paquets entrants dépasse 100 par seconde pour déclencher un événement Événement (alarme)
- Sélectionnez l'élément de surveillance correspondant
- Sélectionnez le nombre de paquets entrants
- Configurer les expressions de déclencheur
- Enfin, configurez et ajoutez
{zabbix-agent:net.if.in[eth0,packets].last(#1)}>100
- Afficher la liste des déclencheurs
- Afficher la tendance des éléments de surveillance
- Afficher les déclencheurs associés et surveiller la taille du nombre de paquets
- Revenez au déclencheur, changez la valeur en "5" (100 est trop défini) puis observez
pour voir les événements anormaux (3 méthodes)
- La première méthode : filtrer les déclencheurs correspondant à l'hôte
- La seconde est de visualiser les événements de l'hôte correspondant
- La troisième méthode consiste à afficher l'état système correspondant du tableau de bord
- La première méthode : filtrer les déclencheurs correspondant à l'hôte
Configurer les actions – Actions et configurer les alertes par e-mail :
- Configuration - Actions - Déclencheurs (action de création)
- action de configuration
- conditions de configuration
- Configurer les actions - Courrier Envoyer un message
- afficher la liste des actions
- Vérifiez si vous avez reçu le courrier
∗ ∗ Résumé : ∗ ∗ \color{red}{**Résumé :**}∗∗Résumé :∗∗
Le client se connecte au serveur – configure les éléments de surveillance – configure les déclencheurs – exécute les actions – reçoit les alarmes
∗ ∗ Supplément : ∗ ∗ \color{red}{**Supplément : **}∗∗Supplément :∗∗ -Détails de la configuration del'onglet
Action-Détailsde l'onglet Condition -Détailsdela configuration de l'onglet Opération -Détails de la configuration de l'opération d'action-Envoyerun message-Commandeà distanceexécutée
Essayez de restaurer l'exercice d'échec à l'aide d'un script :
Le client installe et démarre le service Httpd, et écoute le port 80 ;
le serveur surveille ce service (port), et s'il ne peut pas être détecté, exécute l'opération "restart/start".
L'état détecté est "OK" ; sinon, "Problème"
# 客户端安装httpd服务
yum install -y httpd
# 客户端启动 httpd 服务并查看进程及端口
systemctl start httpd.service #启动服务
ps -ef |grep httpd #查看服务进程
ss -tnl #查看启用端口
- Afficher les éléments de surveillance, ajoutés
- Afficher les données de détection
- Afficher les tendances de détection
-
L'hôte zabbix-agent ajoute des déclencheurs (Triggers) :
- nouveau déclencheur
{zabbix-agent:net.tcp.listen[80].last(#1)}=0
- sélectionner une expression
- Afficher la liste des déclencheurs
停止 httpd 服务
systemctl stop httpd.service
- Afficher à nouveau les tendances du moniteur
启动 httpd服务,查看事件
systemctl start httpd.service
状态由:OK -- Problem -- OK
-
L'hôte zabbix-agent ajoute des actions (Actions) :
- Configurer l'onglet Actions
- Configurer l'onglet Conditions
- Configurer l'onglet Actions
- Configuration première étape
- Configurer la deuxième étape
- Configuration première étape
- Configurer l'onglet Actions
La prémisse de l'implémentation du script personnalisé (script personnalisé) :
configurez du côté de l'agent :
1. zabbix a le pouvoir d'exécuter le script correspondant ;
éditez le fichier /etc/sudoers, ajoutez : zabbix ALL=(ALL) NOPASSWD : ALL
commentez le ligne suivante : Defaults requlretty
2. Le processus de l'agent doit autoriser l'exécution de commandes à distance, modifier le
fichier et définir EnableRemoteCommands=1 ; redémarrer le service pour prendre effet
- Modifiez le fichier de configuration de zabbix-agent :
visudo #为zabbix用户赋予sudo权限,如果 /etc/sudoers文件中有Defaults requiretty这一行需要注释,表明远程执行命令不需要开启终端
systemctl restart zabbix-agent.service #重启zabbix-agent客户端服务
- Configurer la troisième étape
- Afficher la liste des actions
- Fermez le service httpd et déclenchez l'action
systemctl stop httpd.service #停止httpd服务
ps -ef |grep httpd #查看服务进程
ss -tnl #查看启用端口
- Afficher les changements de tendance de statut
- Vérifiez l'événement et constatez que le temps d'arrêt du service est très court
- Selon le niveau de journalisation, les actions exécutées seront affichées dans /var/log/zabbix/zabbix_server.log
- Modifiez le numéro de port de démarrage du service httpd, vérifiez s'il continuera à exécuter les prochaines étapes (problème d'escalade) \color{red}{modifiez le numéro de port de démarrage du service httpd, vérifiez s'il continuera à exécuter les prochaines étapes (problème escalade)}Modifiez le numéro de port de démarrage du service h t t p d et vérifiez s'il continuera à exécuter les prochaines étapes ( escalade du problème ) .
grep Listen /etc/httpd/conf/httpd.conf #查看httpd占用端口号
sed -i 's/80/8080/g' /etc/httpd/conf/httpd.conf #修改监听端口Listen 80为8080
grep Listen /etc/httpd/conf/httpd.conf #查看httpd占用端口号
ss -tnl #查看当前占用端口
systemctl restart httpd.service #重启httpd服务
ss -tnl #查看当前占用端口
-
Afficher les dernières données, les tendances des données
-
Attendez quelques minutes pour voir l'état d'exécution de l'événement
-
Vérifiez, le courrier a été distribué
-
Modifiez le numéro de port à 80 pour redémarrer le service et vérifier le courrier
Ajoutez le type de média de l'e-mail d'alarme - utilisez le script (script):
- Ajout
du script de type de support d'alarme − − emplacement de stockage du script sur le serveur zabbix : \color{red}{script -- emplacement de stockage du script sur le serveur zabbix :}s c r i p t−−L'emplacement où le script est stocké sur le serveur z a b b i x :
位于server主机的alertscripts参数定义的目录下,默认为/usr/lib/zabbix/alertscripts/
zabbix调用脚本时会向其传递参数;3.0之前的版本通过:
$1:消息接收人 $2:消息主题 $3:消息主体
3.X之后的版本,此三个参数默认不再传递,需自行定义;
参数(宏):{
ALSTER.SENDTO} {
ALSTER.SUBJECT} {
ALSTER.MESSAGE}
-
Afficher la liste des médias
-
Ajout du type de support d'alarme "Admin" sur la base de l'original
-
Sélectionnez le type, ajoutez
-
mettre à jour le support d'alarme
-
Action ajoutée - action (utiliser un script pour envoyer un courrier)
-
Ajouter des scripts au serveur zabbix
yum provides */mail #查看mail命令在哪个安装包中(脚本中用到此命令,需要安装)
yum install -y mailx-12.5-19.el7.x86_64 #安装包含mailm命令安装包
vi sendmail.sh #新建脚本文件,需要与配置报警媒介脚本命名一样
chmod +x sendmail.sh #赋予执行权限
systemctl restart zabbix-server #重启服务生效
bash -n sendmail.sh 测试脚本有没有问题
bash -x sendmail.sh [email protected] "hello world" "hello everyone" #发送测试邮件
-
Vérifiez que l'e-mail a été envoyé avec succès
-
Le client modifie à nouveau le numéro de port, attend l'heure et vérifie à nouveau.
Vérifiez l'événement, les quatre étapes ont été exécutées
-
Le journal de l'action d'exécution peut être consulté dans : Rapport - Journal des actions pour afficher l'état de l'envoi de l'exécution (y compris le contenu du sujet)
-
Vérifiez si l'e-mail a bien été reçu
Créer des graphiques :
-
Configuration - Hôte - Graphiques (graphiques)
- Créer un graphique de tendance du nombre de paquets entrants et sortants
- Afficher le graphique
Surveillance – graphique – sélectionner le groupe/hôte correspondant
- Créer un graphique de tendance des octets entrants et sortants
- Créer un graphique de tendance du nombre de changements de contexte CPU
- Créer un graphique de tendance de service Web (à l'aide d'un camembert)
-
Affichez le graphique de tendance ci-dessus sur un seul écran :
Détection - Graphique agrégé - Créer un graphique agrégé
- Afficher la liste des graphiques agrégés et les configurer
- ajouter des graphiques
- Ajouter quatre graphiques pour agréger le graphique en séquence
- Voir l'effet
Configurez le modèle d'hôte (Template) :
C'est très similaire à la création d'un hôte et à la configuration des éléments de surveillance de l'hôte, des déclencheurs, des graphiques, etc., donc je ne le présenterai pas en détail ici\color{red}{C'est très similaire à la création d'un hôte et à la configuration des éléments de surveillance de l'hôte, déclencheurs, graphiques, etc., donc ici Introduction pas trop détaillée}C'est très similaire à la création d'un hôte et à la configuration des éléments de surveillance de l'hôte , des déclencheurs , des graphiques, etc. , donc je ne vais pas le présenter en détail ici
- créer un modèle
- Filtrer la liste des modèles sous le groupe test-templates-group
- Allez dans le modèle et créez un ensemble d'applications pour ce modèle
- Créer un élément de surveillance de modèle - le nombre d'octets entrants et sortants de la carte réseau
- Modèle de vue - Liste des éléments de surveillance
- Créer un modèle – Graphique
- Afficher la liste des graphiques sous le modèle de modèles de test
- Méthode de modèle de lien d'hôte
- Méthode de modèle de dissociation de l'hôte
- Afficher les graphiques de tendance de surveillance pour les hôtes de modèles liés
- Liez/agrégez d'autres modèles à ce modèle et appliquez leur contenu de configuration de modèle.
Par exemple : liez les modèles Linux du système d'exploitation de modèle dans le modèle de modèles de test, qui sont tous applicables au système d'exploitation linux
- Après avoir lié le modèle Template OS Linux, vérifiez à nouveau le contenu du modèle test-templates, qui a
évidemment beaucoup augmenté : ensembles d'applications/éléments de surveillance/triggers/graphiques...etc.
- Importation/exportation de modèles - il est pratique de partager des modèles entre différents serveurs zabbix
- Créez un nouveau service Web d'élément de surveillance de l'hôte, appelez la macro "{$HTTP_PORT}"
- Afficher les éléments de surveillance que vous venez de configurer
- Ajouter des macros globales
- Afficher à nouveau les éléments de surveillance que vous venez de configurer
- Ajouter une macro de modèle
- Afficher à nouveau les éléments de surveillance que vous venez de configurer
- Ajouter une macro hôte
- Afficher à nouveau les éléments de surveillance que vous venez de configurer
Résumé : \color{red}{Résumé :}Résumé :
由此断定,范围越小,优先级越高;
宏的依次查找次序为:
全局宏 -- 模板宏 -- 主机宏
宏类型:
内建:{
MACRO_NAME}
自定义:{
$MACRO_NAME}
命名方式:大写字母、数字和下划线组成;
Ajoutez des éléments de surveillance de la mémoire libre pour le client en créant une clé personnalisée :
创建自定义Key方法,上面在创建主机组的时候已经讲过,也做了示范;
- Afficher les derniers éléments de surveillance sans mémoire de données
- Lors de la visualisation du graphique de tendance et de l'affichage
du déclencheur pour définir cet élément de surveillance en unités Mb, il doit être inférieur à une certaine valeur, déclenchant Action (action) pour alarme − − ne pas faire de démonstration Lors de la définition du déclencheur pour cet élément de surveillance, il doit be Lorsqu'il est inférieur à une certaine valeur, déclencher une Action (action) pour donner une alarme − - pas de démonstration \color{red}{Lors de la définition du déclencheur de cet élément de surveillance, il doit déclencher une Action (action) lorsqu'il est inférieur supérieure à une certaine valeur Alarme -- pas de démonstration Lors de la définition du déclencheur de cet élément de surveillance, il doit être inférieur à une certaine valeur, déclencheur Action (action) pour alarme -- pas de démonstration}Lors de la définition du déclenchement de cet élément de surveillance , lorsqu'il est inférieur à une certaine valeur , déclenchez Act i o n ( action ) pour donner une alarme−−Aucune démonstration Lors de la définition du déclenchement de cet élément de surveillance , lorsqu'il est inférieur à une certaine valeur , déclenchez Act i o n ( action ) pour donner une alarme−− pas de présentation
Le client installe le service Nginx et configure la surveillance :
- Remarque : \color{rouge}{Remarque :}Remarque :
上面安装了httpd服务,端口会被占用,因此先把httpd服务停掉;
systemctl stop httpd.service
将zabbix中httpd的80端口监控项也禁用掉。
# 先下载nginx的rpm包
cd /usr/local/src/
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
# 安装nginx服务
yum install -y nginx-1.10.0-1.el7.ngx.x86_64.rpm
- Modifiez le fichier de configuration "/etc/nginx/conf.d/default.conf" et ajoutez la section location
- Démarrer le service nginx
nginx -t #查看配置文件语法是否存在错误
systemctl start nginx.service #启动服务
ps -ef |grep nginx #查看进程
netstat -anpl |grep pid #查看占用端口号
curl http://127.0.0.1/ngxstatus #网页查看nginx的活动连接数
- Ajoutez une clé personnalisée pour obtenir le nombre de connexions actives nginx
# 修改zabbix-agent配置文件"/etc/zabbix/zabbix_agentd.conf" 添加:
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk '/^Active/{print $3}'
- Ajoutez une clé personnalisée pour obtenir le nombre de visites que nginx accepte
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk 'NR==3{print $3}'
# 重启服务
systemctl restart zabbix-agent.service
# zabbix-server端命令获取自定义key的结果(nginx活动连接数)
zabbix_get -s 192.168.137.139 -k "nginx.status.active"
# zabbix-server端命令获取自定义key的结果(nginx接收访问的数量)
zabbix_get -s 192.168.137.139 -k "nginx.status.accepts"
- Afin de faciliter la lecture des valeurs des paramètres et de faire correspondre automatiquement les paramètres qui doivent être lus, un script doit être écrit \color{red}{Afin de faciliter la lecture des valeurs des paramètres et de faire correspondre automatiquement les paramètres qui ont besoin pour être lu, un script doit être écrit}Afin de faciliter la lecture des valeurs des paramètres et de faire correspondre automatiquement les paramètres à lire , un script doit être écrit
cat /usr/bin/ngxstatus.sh
# 赋予脚本执行权限
chmod +x /usr/local/ngxstatus.sh
# 依次执行脚本获取各个值
/usr/bin/ngxstatus.sh active
# 修改zabbix-agent配置文件自定义key参数的变量值
UserParameter=nginx.status.[*],/usr/bin/ngxstatus.sh $1
# 重启服务
systemctl restart zabbix-agent.service
- Le serveur exécute la commande et vérifie à nouveau la valeur obtenue
zabbix_get -s 192.168.137.139 -k "nginx.status.[active/accepts/...]"
- Résumé : \color{red}{Résumé :}Résumé :
Combinez la clé personnalisée dans le script d'appel pour créer l'élément de surveillance de zabbix-agent. Je ne l'expliquerai pas en détail ici, mais cela peut être réalisé en combinant la clé de mémoire libre personnalisée ci-dessus.
Exemple:- Configurer les éléments de surveillance nginx-active
- Créer des déclencheurs, lier aux éléments de surveillance (élément)
- Vérifiez le graphique de tendance de surveillance.
Si l'état est zéro, le déclencheur déclenchera un événement, et l'événement exécutera une action, puis enverra une alarme.
Voici une brève introduction à ceux-ci, et le reste sera ajouté par vous-même, et ces indicateurs obtenus par nginx seront mis dans un graphique agrégé.
- Configurer les éléments de surveillance nginx-active
Fonction d'alarme Zabbix du robot cloueur Python :
Ajoutez d'abord un robot personnalisé dans le chat de groupe DingTalk :
创建群聊 -- 群设置 -- 添加机器人 -- 选择自定义机器人
-
cliquez pour ajouter
-
Nom de bot personnalisé ; ajout terminé
-
Copier le contenu du webhook
-
Après l'ajout, il y aura un message de chat de groupe
-
Créer un scénario :
# 在zabbix服务端的alertscripts目录下新建一个python脚本
cd /usr/lib/zabbix/alertscripts/
# 脚本内容可以直接克隆我的Git:
git --version #查看是否安装又git
yum -y install git #安装git工具
git clone https://github.com/Linux-Chiron/zabbix-dingding.git #克隆zabbix-dingding代码到本地
mv zabbix-dingding/zabbix_dingding.py . #移动zabbix_dingding.py脚本到当前目录
- Modifiez la valeur URL (webhook) du paramètre "api_url" dans le script :
# 为脚本赋予执行权限
chmod +x zabbix_dingding.py
# 查看Python版本,使用Python2.x
进入:python
退出:quit()
# 手动调试脚本
python zabbix_dingding.py 123
- Lorsque vous voyez le script de débogage manuel, une erreur est signalée ; solution : − − aucune démonstration de capture d'écran\color{rouge}{lorsque vous voyez le script de débogage manuel, une erreur est signalée ; solution : -- aucune démonstration de capture d'écran}Lorsque j'ai vu le script de débogage manuel , une erreur a été signalée ;Solutions : _−−Pas de démo de capture d'écran _
yum -y install epel-release #安装epel扩展源
yum -y install python-pip #安装python-pip
pip install --upgrade pip #升级pip
pip install requests #安装requests包
- Déboguez à nouveau manuellement le script :
Créer un support d'alerte :
-
Lier le support d'alarme au support d'alarme de l'utilisateur admin
-
Afficher la liste des médias d'alarme de l'utilisateur administrateur, ajoutée avec succès
-
ajouter une action
-
Onglet Conditions pour ajouter des conditions de déclenchement associées
-
Onglet Configurer les actions – envoyer DingTalk uniquement
-
Consulter la liste des actions
-
Valeur d'expression de déclenchement qui modifie le nombre de paquets entrants
-
Voir détection - événement
-
Vérifiez s'il y a une alarme sur DingTalk - Notification de panne/récupération
-
Avis d'échec :
-
Avis de récupération :
-
Supplément : − − Informations sur le titre et le contenu dans l'onglet d'action : \color{red}{Supplément : -- Informations sur le titre et le contenu dans l'onglet d'action :}Supplément :−−Informations sur le titre et le contenu dans l' onglet action : _
- Contenu de la notification d'erreur :
服务器:{
HOST.NAME}发生: {
TRIGGER.NAME}故障!
{
告警主机:{
HOST.NAME}
告警地址:{
HOST.IP}
监控项目:{
ITEM.NAME}
监控取值:{
ITEM.LASTVALUE}
告警等级:{
TRIGGER.SEVERITY}
当前状态:{
TRIGGER.STATUS}
告警信息:{
TRIGGER.NAME}
告警时间:{
EVENT.DATE} {
EVENT.TIME}
事件ID:{
EVENT.ID}
}
- Restaurer le contenu des notifications :
服务器:{
HOST.NAME}: {
TRIGGER.NAME}已恢复!
{
告警主机:{
HOST.NAME}
告警地址:{
HOST.IP}
监控项目:{
ITEM.NAME}
监控取值:{
ITEM.LASTVALUE}
告警等级:{
TRIGGER.SEVERITY}
当前状态:{
TRIGGER.STATUS}
告警信息:{
TRIGGER.NAME}
告警时间:{
EVENT.DATE} {
EVENT.TIME}
恢复时间:{
EVENT.RECOVERY.DATE} {
EVENT.RECOVERY.TIME}
持续时间:{
EVENT.AGE}
事件ID:{
EVENT.ID}
}