Dans l'environnement réseau interne, nous ne pouvons pas nous connecter au réseau externe. Si nous voulons utiliser zabbix pour le moment, nous devons l'installer hors ligne.
Il existe trois façons d'installer et de déployer Zabbix :
La première consiste à utiliser l'installation du code source , la deuxième à utiliser l'installation du paquet RPM et la troisième à utiliser le déploiement de conteneurs . Ce dont nous parlons ici, c'est l'installation du paquet RPM.
Vous pouvez télécharger le package en ligne vous-même ou utiliser le package d'installation RPM que j'ai préparé.
Table des matières
1. Désactivez le pare-feu et le mode sans échec SELINUX
2. Installez la source rpm de zabbix
3. Téléchargez le package d'installation requis pour zabbix
1. Téléchargez les packages de service et d'agent Zabbix
3. Téléchargez le progiciel Web frontal Zabbix.
4. Téléchargez la base de données mysql :
5. Créez un référentiel Yum local
2. Installez Zabbix hors ligne dans l'environnement intranet
1. Préparation du serveur Zabbix
2. Désactivez le pare-feu et le mode sans échec SELINUX
2. Sauvegarder la source YUM du système
3. Configuration de l'entrepôt Yum local
4. Commencez à installer Zabbix
1. Installez le serveur Zabbix, l'agent, les collections de logiciels et la base de données MySQL.
2. Installez le Web frontal Zabbix.
3. Configurer la base de données
4. Initialisez la base de données et définissez le mot de passe de connexion à la base de données
5. Entrez dans la base de données et créez la base de données zabbix
6. Importer le schéma et les données initiaux
7. Modifiez le fichier de configuration zabbix_server.conf
8. Modifier le fichier de configuration php de zabbix
10. Configurer l'installation de l'interface Web frontale Zabbix
5. Ajouter le client zabbix-agent
1. Désactivez le pare-feu et le mode sans échec SELINUX
2. Téléchargez le package d'installation de zabbix-agent dans /tmp
6. Interface Web frontale ajoutée
2. Opération de configuration de l'interface frontale Zabbix
2. Créez un nouvel ensemble d'applications
3. Créez de nouveaux éléments de surveillance
4. Créez un nouveau déclencheur
2. Ajoutez un support d'alarme SMS à l'interface de fonctionnement de Zabbix ;
3. Ajoutez une méthode d'alarme SMS pour les utilisateurs désignés ;
4. Définissez le moment où l'action enverra une alarme SMS ;
1. Préparez le package d'installation requis pour zabbix sur votre propre machine virtuelle d'ordinateur
1. Désactivez le pare-feu et le mode sans échec SELINUX
#关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld
#关闭SElinux安全模式
setenforce 0
#设置永久关闭selinux
vi /etc/selinux/config
#修改SELINUX:
SELINUX=disabled
#重启生效
reboot
2. Installez la source rpm de zabbix
#使用国内镜像源——阿里云源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#更改使用国内镜像源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#清除所有缓存
yum clean all
3. Téléchargez le package d'installation requis pour zabbix
Utilisez la commande yum --downloadonly pour télécharger uniquement le package rpm sans l'installer ni le mettre en cache.
1. Téléchargez les packages de service et d'agent Zabbix
yum install zabbix-server-mysql zabbix-agent --downloadonly --downloaddir=/tmp/offline_rpm
#如报没有downloadonly功能,下载即可
yum install yum-plugin-downloadonly
2. Téléchargez Red Hat Software Collections : pour faciliter l'installation de versions supérieures de php.
yum install centos-release-scl --downloadonly --downloaddir=/tmp/offline_rpm
#安装 Software Collections。
yum install centos-release-scl -y
#将[zabbix-frontend]下的 enabled 改为 1.
vi /etc/yum.repos.d/zabbix.repo
3. Téléchargez le progiciel Web frontal Zabbix.
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl --downloadonly --downloaddir=/tmp/offline_rpm
4. Téléchargez la base de données mysql :
yum install mariadb-server.x86_64 --downloadonly --downloaddir=/tmp/offline_rpm
5. Créez un référentiel Yum local
Utilisez createrepo pour créer l'entrepôt de référentiel. S'il n'y a pas de commande de ce type dans le système, vous devez d'abord installer createrepo.
yum install createrepo -y
# 使用createrepo来创建repository仓库
createrepo /tmp/offline_rpm
#到存储目录下
cd /tmp/offline_rpm/
#查看是否有repodata这个文件夹,有就是创建成功了
ls
2. Installez Zabbix hors ligne dans l'environnement intranet
Copiez tous les dossiers offline_rpm de /tmp/offline_rpm dans le répertoire /tmp sur le serveur zabbix préparé sur l'intranet .
1. Préparation du serveur Zabbix
1. Configurez le nom d'hôte
hostnamectl set-hostname zabbix-server
bash
![05a794a705fc45a5953fc4e3cb2fab3c.png](https://img-blog.csdnimg.cn/05a794a705fc45a5953fc4e3cb2fab3c.png)
2. Désactivez le pare-feu et le mode sans échec SELINUX
#关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld
#关闭SElinux安全模式
setenforce 0
#设置永久关闭selinux
vi /etc/selinux/config
#修改SELINUX:
SELINUX=disabled
#重启生效
reboot
2. Sauvegarder la source YUM du système
cd /etc/yum.repos.d
#创建备份文件夹
mkdir bak
#所有的repo文件移动到bak下
mv *.repo bak
3. Configuration de l'entrepôt Yum local
1. Créez un nouveau fichier référentiel sous /etc/yum.repos.d/.
vi /etc/yum.repos.d/new.repo
2. Écrivez le contenu suivant.
[New]
name=New
baseurl=file:///tmp/offline_rpm
gpgcheck=0
enabled=1
yum clean all
4. Commencez à installer Zabbix
1. Installez le serveur Zabbix, l'agent, les collections de logiciels et la base de données MySQL.
Comme il existe des packages dans l'entrepôt yum configuré, vous pouvez les installer directement avec la commande
yum install zabbix-server-mysql zabbix-agent -y
yum install centos-release-scl -y
yum -y install mariadb-server.x86_64
Après avoir installé le serveur Zabbix, l'agent et les collections de logiciels, deux nouveaux fichiers .repo seront générés sous /etc/yum.repos.d et déplacés vers bak.
ls
mv CentOS-SCLo-scl.repo CentOS-SCLo-scl-rh.repo bak
ls
Remarque : Si vous ne le déplacez pas, l'erreur suivante sera signalée
Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64
2. Installez le Web frontal Zabbix.
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
3. Configurer la base de données
#启动
systemctl start mariadb
#设置开机自启动
systemctl enable mariadb
#查看
systemctl status mariadb
4. Initialisez la base de données et définissez le mot de passe de connexion à la base de données
mysql_secure_installation
[root@zabbix-servre yum.repos.d]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): #此处直接回车
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
8、创建zabbix数据库。
Set root password? [Y/n] y #此处y
New password: #输入密码
Re-enter new password: #再次输入密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y #此处y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n #此处n
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y #此处y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y #此处y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
[root@zabbix-servre yum.repos.d]#
5. Entrez dans la base de données et créez la base de données zabbix
Remarque : définissez le format d'encodage sur utf-8.
#进入数据库
mysql -u root -p
#创建数据库
create database zabbix character set utf8 collate utf8_bin;
#创建用户(注意修改password,这是之前初始化输入的密码)
create user zabbix@localhost identified by 'password';
#授权
grant all privileges on zabbix.* to zabbix@localhost;
#修改生效
flush privileges;
#退出
quit;
6. Importer le schéma et les données initiaux
Vous serez invité à saisir votre mot de passe.
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
7. Modifiez le fichier de configuration zabbix_server.conf
#为zabbix server配置数据库
#修改内容
#DBPassword=password(你之前输的密码)
vi /etc/zabbix/zabbix_server.conf
8. Modifier le fichier de configuration php de zabbix
#修改内容
#将注释;去掉,并修改为
#php_value[date.timezone] = Asia/Shanghai
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
9. Démarrez les processus du serveur et de l'agent Zabbix et configurez-les pour qu'ils démarrent automatiquement au démarrage
#启动
systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
#设置开机自启动
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#查看
systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm
10. Configurer l'installation de l'interface Web frontale Zabbix
Connectez-vous au frontal Zabbix : http://IP/zabbix
Vérifiez toutes les conditions
Configurer les informations de la base de données
Informations de base sur le serveur
Confirmer les informations
L'installation est terminée
Connectez-vous à la page frontale : nom d'utilisateur et mot de passe par défaut du système Admin/zabbix (cas à noter)
Modifier en chinois
5. Ajouter le client zabbix-agent
1. Désactivez le pare-feu et le mode sans échec SELINUX
#关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld
#关闭SElinux安全模式
setenforce 0
#设置永久关闭selinux
vi /etc/selinux/config
#修改SELINUX:
SELINUX=disabled
#重启生效
reboot
2. Téléchargez le package d'installation de zabbix-agent dans /tmp
Il se trouvait auparavant dans le dossier offline_rpm
3. Installez l'agent zabbix
cd dans le répertoire où sont stockés les fichiers à installer
cd /tmp
#查看
ls
#安装
yum install zabbix-agent-5.0.32-1.el7.x86_64.rpm -y
4. Configurez l'agent zabbix
vi /etc/zabbix/zabbix_agentd.conf
修改内容如下
# zabbix 服务端地址
Server=192.168.222.23
# zabbix活动服务器地址
ServerActive=192.168.222.23
# 主机名,也就是要监控的那台主机名,在web页面添加主机时需设置相同
Hostname=zabbix-agent
5. Démarrez l'agent zabbix
#启动
systemctl start zabbix-agent
#设置开机自启动
systemctl enable zabbix-agent
#查看
systemctl status zabbix-agent
6. Interface Web frontale ajoutée
Vérifiez si l'hôte surveillé est connecté et si l'état est normal
Si l'erreur suivante est signalée, attendez simplement 10 minutes. Cela signifie que la durée normale d'exécution du service client est inférieure à 10 minutes.
3. Un suivi personnalisé
1. Écriture du scénario
1. Créez un nouveau script dans le répertoire où l'agent zabbix de l'adresse IP qui doit être surveillée stocke le script.
#进入/etc/zabbix/zabbix_agentd.conf查看自定义脚本存放路径
vi /etc/zabbix/zabbix_agentd.conf
#脚本要以.conf 结尾
#Include后面跟着的路径就是自定义脚本存放路径
cd /etc/zabbix/zabbix_agentd.d/
#创建一个新脚本,key很重要(就是命名),要记得,最好取容易看出是什么意思的
#脚本格式:UserParameter=<key>,<shell command>
#df -h|grep '/dev/mapper/centos-root'|awk '{print $5}'|awk -F "%" '{print $1}' 这个是查看内存还有百分之多少的
#样列:UserParameter=memory,df -h|grep '/dev/mapper/centos-root'|awk '{print $5}'|awk -F "%" '{print $1}'
#脚本得出的结果就是要监控的数据
vi memory.conf
#新脚本创建后,要重启zabbix-agent服务才生效
#前往服务端使用命令查看是否成功 命令自行修改
#呢此命令要安装zabbix_get才能使用
yum -y install zabbix-get-3.2.1-1.el7.x86_64.rpm
#如果安装失败,可在外网下载个zabbix-get安装包后上传到内网安装(或用我网盘包里zabbix-get,解压后搜索找到上传安装即可)
zabbix_get -s 客户端ip -p 10050 -k "key值"
Paramètres communs de la commande zabbix_get :
-s | Spécifiez le nom d'hôte ou l'adresse IP du client |
---|---|
-p | Port client, par défaut : 10050 |
-JE | Spécifier l'adresse IP source |
-k | La clé que vous souhaitez obtenir |
2. Opération de configuration de l'interface frontale Zabbix
1. Créez un nouveau modèle
Si vous disposez déjà du modèle requis, vous pouvez l’ignorer.
Si vous disposez déjà d'un modèle, mais que vous devez encore ajouter des éléments fonctionnels, vous pouvez choisir de lier le modèle. Je ne le démontrerai pas ici et ne ferai aucune sélection.
2. Créez un nouvel ensemble d'applications
Un ensemble d'applications représente un type d'élément de surveillance. S'il existe déjà, vous n'avez pas besoin d'en créer un nouveau.
3. Créez de nouveaux éléments de surveillance
Éléments nécessitant une surveillance personnalisée
4. Créez un nouveau déclencheur
S'il n'y a aucune exigence d'alarme, aucun déclencheur ne peut être défini
5. Appliquer des modèles
Une fois le modèle appliqué, les ensembles d'applications, les éléments de surveillance et les déclencheurs ajoutés par la suite seront ajoutés à l'hôte. S'il y en a que vous ne souhaitez pas utiliser, désactivez-les simplement sous l'hôte.
6. Vérifiez si cela réussit
4. Alarme d'information
1. Ajout de script
#查看zabbix_server配置文件zabbix_server.conf,确认信息报警脚本位置
vi /etc/zabbix/zabbix_server.conf
#AlertScriptsPath参数的路径为脚本路径,如果没有自行创建
J'utilise Python pour appeler cela, ou vous pouvez utiliser Shell pour l'appeler (s'il n'y a pas d'interface SMS, vous pouvez utiliser le robot DingTalk pour envoyer des informations d'alarme, le tutoriel est sur Baidu)
#到该路径下
cd /usr/lib/zabbix/alertscripts/
#创建脚本
vi sms.py
#----python告警脚本(post)
#!/usr/bin/python
# -*- coding:utf-8 -*-
import json
import sys
import requests
url = 'api地址信息'
post_headers = {'Content-Type': 'application/json'}
post_data = {
"moban":"gj",
"num":sys.argv[1],
#"first":sys.argv[2],
"keyword1":"信息",
"remark":sys.argv[3],
"people":"key值"
}
ret = requests.post(url, data = json.dumps(post_data), headers = post_headers)
print(ret.text)
#设置脚本和日志文件权限
touch /tmp/SMS.log
chown zabbix:zabbix /tmp/SMS.log
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/sms.py
chmod +x /usr/lib/zabbix/alertscripts/sms.py
2. Ajoutez un support d'alarme SMS à l'interface de fonctionnement de Zabbix ;
Appeler le script pour envoyer un message texte
Il existe des modèles de messages dans Zabbix. Faites attention au format. Si une grande chaîne de caractères est signalée, essayez de saisir le modèle de SMS à la main au lieu de le coller.
Cela fournit deux modèles
##告警
主机名称:{HOST.NAME}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项:{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.LASTVALUE}
故障已持续{EVENT.AGE}
##恢复
主机名称:{HOST.NAME}
IP地址:{HOST.IP}
告警时间:{EVENT.DATE}{EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE}{EVENT.RECOVERY.TIME}
故障时长:{EVENT.AGE}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项:{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.VALUE}
test
3. Ajoutez une méthode d'alarme SMS pour les utilisateurs désignés ;
Prenons l'exemple de l'utilisateur administrateur "admin"
4. Définissez le moment où l'action enverra une alarme SMS ;
5. Testez
Ajoutez un nouveau numéro de connexion IP de surveillance et de déclenchement. Pour chaque interface de télécommande supplémentaire, il y aura un numéro d'utilisateur supplémentaire.
Contenu du script
#查看有多少个连接数
UserParameter=user_sum,who |wc -l
Pour ajouter des éléments de surveillance personnalisés, suivez simplement le didacticiel précédent.
Faites-le mettre à jour toutes les 10 secondes pour faciliter les tests
S'il est supérieur ou égal à 6, l'alarme se déclenchera. S'il est inférieur à 6, l'alarme ne se déclenchera pas. L'alarme reviendra à la normale.
Après l'avoir fait, testez si cela a réussi par vous-même (vous devez ajouter cette alarme dans l'action)