准备工作
安装PHP
Zabbix 5.4 版本要求 PHP 版本在 7.2 以上。
卸载旧版本的PHPyum remove php-*
安装7.2版本PHP
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
或者yum -y install https://mirror.webtatic.com/yum/el7/epel-release.rpm && yum -y install https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php72w php72w-opcache php72w-xml php72w-gd php72w-devel php72w-mysqlnd php72w-intl php72w-mbstring php72w-pear php72w-pdo php72w-fpm php72w-bcmath
安装golang
Zabbix 前端服务依赖 Golang。
rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
yum install golang
go env -w GOPROXY=Goproxy.cn
安装依赖
yum install -y gcc mysql-devel net-snmp-devel pcre*\
curl-devel libxml2 libxml2-devel \
automake libssh2-devel libevent-devel httpd libcurl-devel.x86_64 \
kernel-devel openssl-devel popt-devel
部署MySQL
确保您已启动并运行数据库服务器。这里我使用的是Mysql5.7版本
[root@zabbix-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm [root@zabbix-server ~]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
打开/etc/yum.repos.d/mysql-community.repo
打开5.7源地址,关闭8.0源地址,确保下载的数据库是mysql5.7;这里换mariadb也可以
[root@zabbix-server ~]# yum -y install mysql-community-server
如果下载过程报下面错误:
然后重新下载即可
因为mysql5.7启动,root用户会生成随机密码,可以进行修改
[root@zabbix-server ~]# systemctl start mysqld [root@zabbix-server ~]# grep 'password' /var/log/mysqld.log
[root@zabbix-server ~]# mysqladmin -uroot -p'U84zCRrlt0=c' password '1234.Asd!'
在您的数据库主机上运行以下命令。
[root@zabbix-server ~]# mysql -uroot -p'1234.Asd!' mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to zabbix@localhost identified by 'Zabbix@2023'; mysql> flush privileges; mysql> quit;
源码编译部署zabbix
下载并解压源码包
wget https://cdn.zabbix.com/zabbix/sources/oldstable/5.4/zabbix-5.4.5.tar.gz
tar -xzvf zabbix-5.4.4.tar.gz
cd zabbix-5.4.4
编译安装
./configure --prefix=/usr/local/zabbix \ --enable-server \ --enable-agent \ --with-mysql \ --with-libcurl \ --with-net-snmp \ --with-libxml2 \ --with-ssh2 \ --enable-webservice
编译make
安装make install
部署 Zabbix Server
创建用户和相关目录
useradd zabbix
mkdir /usr/local/zabbix/logs
mkdir /usr/local/zabbix/trap
chown -R zabbix.zabbix /usr/local/zabbix/
Zabbix Server 配置文件
编辑 /usr/local/zabbix/etc/zabbix_server.conf 文件:
#Zabbix Server 地址 SourceIP=11.8.38.70 #日志文件目录 LogFile=/usr/local/zabbix/logs/zabbix_server.log #Pid 文件目录 PidFile=/usr/local/zabbix/zabbix_server.pid #Socket 文件目录 SocketDir=/usr/local/zabbix #数据库连接信息 DBHost=127.0.0.1 #本机ip,若是其他地址的数据库直接填写数据库IP即可 DBPort=3306 DBName=zabbix DBUser=zabbix DBPassword=Zabbix@2023 Timeout=4 LogSlowQueries=3000 #允许所有地址访问 StatsAllowedIP=0.0.0.0 #配置缓存 CacheSize=8M #snmp trap 目录 SNMPTrapperFile=/usr/local/zabbix/trap/zabbix_traps #开启 snmp trap StartSNMPTrapper=1 #拉取 snmp 信息的线程数 StartProxyPollers=1 ————————————————
初始化数据库
SQL 文件在源码解压后的目录 zabbix-5.4.4/database/ 中,执行以下命令初始化数据库。初始化数据库只需要做一次,Zabbix Server 备机和主机共用一个 MySQL 数据库。
mysql -h指定IP -P指定端口 -uzabbix -pZabbix@2023 zabbix < schema.sql mysql -h指定IP -P指定端口 -uzabbix -pZabbix@2023 zabbix < images.sql mysql -h指定IP -P指定端口 -uzabbix -pZabbix@2023 zabbix < data.sql
进去到数据库,确认zabbix库中有数据生成;
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | zabbix | +--------------------+ mysql> use zabbix
配置 Zabbix Server 系统服务
编辑 /usr/lib/systemd/system/zabbix-server.service 新文件:
[Unit] Description=Zabbix Server After=network.target [Service] User=zabbix Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf" Type=forking Restart=on-failure PIDFile=/usr/local/zabbix/zabbix_server.pid KillMode=control-group ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 [Install] WantedBy=multi-user.target
启动 Zabbix Server,并设置开机自动启动。
systemctl enable zabbix-server.service
systemctl start zabbix-server.service
查看zabbix状态:systemctl status zabbix-server
部署 Zabbix Web
拷贝前端文件
Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上,使用 Apache HTTP 作为 Web 服务器。
建议使用子目录替代 HTML 根目录。可以使用下列命令,以创建一个子目录并复制 Zabbix 的前端文件到这个目录下。
mkdir -p /var/www/html/zabbix
cp -a zabbix-5.4.5/ui/* /var/www/html/zabbix/
配置 PHP 文件
编辑 /var/www/html/zabbix/conf/zabbix.conf.php 新文件:
<?php //MySQL 连接信息 $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '127.0.0.1或数据库地址'; $DB['PORT'] = '数据库端口'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'Zabbix@2023'; // Schema name. Used for PostgreSQL. $DB['SCHEMA'] = ''; // Used for TLS connection. $DB['ENCRYPTION'] = false; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; // Vault configuration. Used if database credentials are stored in Vault secrets manager. $DB['VAULT_URL'] = ''; $DB['VAULT_DB_PATH'] = ''; $DB['VAULT_TOKEN'] = ''; // Use IEEE754 compatible value range for 64-bit Numeric (float) history values. // This option is enabled by default for new Zabbix installations. // For upgraded installations, please read database upgrade notes before enabling this option. $DB['DOUBLE_IEEE754'] = true; #Zabbix Server 信息 $ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = 'ACP-ZABBIX-SERVER-1'; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
启动 Apache HTTP 服务,设置开机自动启动
systemctl start httpd
systemctl enable httpd
查看 HTTP 服务状态,running 表示正常运行:systemctl status httpd
至此zabbix5.4.5部署完毕
浏览器输入 http://zabbix的IP地址/zabbix
访问 Zabbix Web 界面。
默认用户名 Admin
密码 zabbix
zabbix源码包地址Zabbix Cloud Images and Appliances
配置被监控zabbix-agent
当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。
安装 zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
建议使用yum -y install https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
yum install zabbix-agent zabbix-sender -y
修改配置文件
对配置文件做一个备份,然后去修改配置文件:
进入cd /etc/zabbix/
备份agent配置文件cp zabbix_agentd.conf zabbix_agentd.bak
查看确认是否备份成功ls
zabbix_agentd.bak zabbix_agentd.conf zabbix_agentd.d
修改配置文件vim zabbix_agentd.conf
----修改如下
Server=192.168.153.147 zabbix监控端的地址 ServerActive=192.168.153.147 主动模式 zabbix-server-ip Hostname=zabbix-agent-none1 UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符 EnableRemoteCommands=1 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
修改完成之后,我们保存退出。然后就可以启动服务了:systemctl start zabbix-agent
systemctl enable zabbix-agent
查看zabbix-agent状态systemctl status zabbix-agent