在公网IP为x.x.x.x,安装Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器上进行源码安装zabbix-5.0.26。
在公网IP为y.y.y.y,安装Alibaba Cloud Linux 3.2104 LTS 64位系统的服务器上进行源码安装zabbix-5.0.26。
php-7.4.28+mariadb-10.5安装在公网IP为x.x.x.x的服务器上。
下载安装的软件版本:php-7.4.28+mariadb-10.5+zabbix-5.0.26。
PHP源码安装
第一步,关闭selinux和防火墙。
命令:sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable --now firewalld
第二步,安装httpd服务,设置开机自启动。
命令:yum install httpd-devel -y
systemctl restart httpd
systemctl enable httpd
第三步,安装编译工具及库文件。
# 安装前,检测系统是否自带安装epel
命令:rpm -qa | grep epel
rpm -e --nodeps epel-aliyuncs-release-8-15.1.al8.noarch
# 配置yum源
命令:rpm -Uvh https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/e/epel-release-8-19.el8.noarch.rpm
# 安装编译工具及库文件
命令:yum install curl curl-devel freetype freetype-devel gcc libxml2 libxml2-devel libjpeg libjpeg-devel libpng libtool libpng-devel libzip-devel openssl openssl-devel openldap openldap-devel sqlite-devel oniguruma-devel zlib zlib-devel
第四步,下载php-7.4.28压缩包。
下载命令:cd /usr/local/src
wget https://www.php.net/distributions/php-7.4.28.tar.gz
第五步,解压及编译安装php-7.4.28。
# 解压php-7.4.28.tar.gz
命令:cd /usr/local/src
tar -zxvf php-7.4.28.tar.gz
useradd -s /sbin/nologin -M php
# 进入解压后的文件夹配置php-7.4.28.tar.gz
命令:cd /usr/local/src/php-7.4.28
./configure \
--prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-mhash \
--with-openssl \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib \
--enable-bcmath \
--enable-gd \
--with-jpeg \
--with-freetype \
--enable-mbstring \
--enable-ftp \
--enable-sockets \
--with-gettext \
--enable-session \
--with-curl \
--enable-fpm \
--with-fpm-user=php \
--with-fpm-group=php \
--enable-pdo \
--enable-tokenizer \
--with-zip \
--with-apxs2=/usr/bin/apxs
若结果显示“Thank you for using PHP.”,则说明PHP配置成功。
# 编译安装php-7.4.28.tar.gz,make需要花费较长时间
命令:make && make install
若结果显示“Build complete. Don't forget to run 'make test'.”,则说明PHP编译安装成功。
命令:make test
第六步,查看环境变量和php版本。
命令:ln -s /usr/local/php7/sbin/* /usr/local/sbin
ln -s /usr/local/php7/bin/* /usr/local/bin
php -v
或 /usr/local/php7/sbin/php-fpm -v
第七步,配置php-fpm。
命令:cd /usr/local/src/php-7.4.28/
cp php.ini-production /usr/local/php7/etc/php.ini
cd /usr/local/php7/etc/
cp php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
第八步,安装ldap扩展模块。
# 查找phpize
命令:find / -name phpize
# 运行phpize
命令:cd /usr/local/src/php-7.4.28/ext/ldap
/usr/local/php7/bin/phpize
# 复制库文件
命令:cp -frp /usr/lib64/libldap* /usr/lib/
# 安装至/usr/local/php7/bin/php-config
命令:cd /usr/local/src/php-7.4.28/ext/ldap
./configure --with-php-config=/usr/local/php7/bin/php-config
# 编译安装
命令:make && make install
若结果显示“Build complete. Don't forget to run 'make test'.”,则说明PHP编译安装成功。
命令:make test
第九步,编辑php-fpm.conf和php.ini文件。
编辑/usr/local/php7/etc/php-fpm.conf文件时,需要修改成
“pid = /usr/local/php7/var/run/php-fpm.pid”,取消前面的分号。
编辑/usr/local/php7/etc/php.ini文件时,需要修改成
“max_execution_time = 300
post_max_size = 16M
max_input_time = 300
date.timezone = Asia/Shanghai”,取消前面的分号。
第十步,设置php-fpm开机启动。
命令:cd /usr/local/src/php-7.4.28/sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm
# 为php-fpm添加执行权限
chmod +x /etc/init.d/php-fpm
# 设置开机启动
chkconfig php-fpm on
第十一步,启动php-fpm。
# 启动php-fpm
service php-fpm start
或 /usr/local/php/sbin/php-fpm
或 /etc/init.d/php-fpm start
或 /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
若结果显示“Starting php-fpm ERROR: [pool www] cannot get uid for user 'nginx' ERROR: FPM initialization failed”,则只需要使用命令“useradd nginx”添加用户nginx即可。最后重新启动php-fpm。
# 关闭php-fpm
service php-fpm stop
或 /etc/init.d/php-fpm stop
# 重启php-fpm
service php-fpm restart
或 /etc/init.d/php-fpm restart
第十二步,查看php-fpm是否启动成功。
命令:yum install lsof
lsof -i:9000
MariaDB源码配置
linux系统版本:CentOS8 64位
安装源文件版本:mariadb-10.5
第一步,安装前,检测系统是否自带安装 MySQL。
命令:rpm -qa | grep mysql
若结果显示类似“mysql-libs-5.1.52-1.el6_0.1.x86_64”,则可以选择进行卸载。
# 普通删除模式
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64
# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
第二步,检查否存在 mariadb 数据库。
命令:rpm -qa | grep mariadb
若结果显示类似“mariadb-libs-5.5.56-2.el7.x86_64”,则可以选择进行卸载。
命令:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
MariaDB源码安装和初始化
第一步,安装MariaDB-10.5数据库。
命令:yum -y install mariadb mariadb-devel mariadb-server
# 设置开机自启
systemctl enable --now mariadb
第二步,启动MariaDB服务。
命令:systemctl start mariadb
systemctl stop mariadb
systemctl restart mariadb
第三步,初始化mariadb,重置数据库root账号密码,执行该命令前必须开启mysql服务。
命令:mysql_secure_installation
若结果显示“Enter current password for root (enter for none):”,
则输入当前root账号密码,刚安装默认为空,直接回车即可。
“Set root password? [Y/n]”,输入y回车。
“New password:”,输入密码。
“Re-enter new password:”,重复输入密码。
“Remove anonymous users? [Y/n]”,输入y回车。
“Disallow root login remotely? [Y/n]”,输入y回车。
“Remove test database and access to it? [Y/n]”,输入y回车。
“Reload privilege tables now? [Y/n]”,输入y回车。
第四步,登陆测试,执行登录命令并输入密码。
命令:mysql -uroot -p
输入登录密码“123456”,进入MariaDB shell状态。
Zabbix服务器端源码安装
第一步,登录网址:Download and install Zabbix,点击“Zabbix Source”,下载Zabbix 5.0 LTS。并按照官方的安装步骤进行软件安装。
第二步,若存在旧版残留需提前卸载。
命令:rpm -qa | grep zabbix
若结果显示类似“zabbix-release-4.4-1.el8.noarch”,则可以选择进行卸载。
# 普通删除模式
rpm -e zabbix-release-4.4-1.el8.noarch
# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除
rpm -e --nodeps zabbix-release-4.4-1.el8.noarch
第三步,安装依赖包。
命令:yum install -y gcc gcc-c++ openssl openssl-devel libxml2 libxml2-devel net-snmp-devel libevent-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-devel
第四步,解压zabbix安装包。
命令:cd /usr/local/src
tar -zxvf zabbix-5.0.26.tar.gz
第五步,创建用户帐户,并授予权限。
对于所有Zabbix守护进程,都需要一个非特权用户。如果Zabbix守护程序是从非特权用户帐户启动的,它将以该用户身份运行。
如果守护程序是从root帐户启动的,它将切换到zabbix用户帐户,该帐户必须存在。若系统中没有,则需要创建zabbix用户帐户。
命令:groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
注意:Zabbix进程不需要主目录,一般不建议创建它。但是,如果需要将MySQL凭据存储在$HOME / .my.cnf中,则可以自由创建它。
命令:mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
Zabbix前端安装不需要单独的用户帐户。
如果Zabbix服务器和代理在同一台计算机上运行,则建议使用不同的用户来运行服务器,而不是运行代理。否则,如果两者都以同一用户身份运行,则代理可以访问服务器配置文件,并且Zabbix中的任何管理员级别用户都可以非常轻松地检索,例如数据库密码。
注意:以root或任何具有特殊权限的帐户运行Zabbix有安全风险。
第六步,安装PCRE。
# 下载 PCRE 安装包
命令:cd /usr/local/src/
wget Download PCRE from SourceForge.net
# 解压安装包
命令:tar zxvf pcre-8.35.tar.gz
# 编译安装
命令:cd pcre-8.35
./configure
make && make install
# 查看PCRE版本
命令:pcre-config --version
第七步,编译安装Zabbix。
命令:cd /usr/local/src/zabbix-5.0.26
./configure \
--enable-server \
--enable-agent \
--with-mysql \
--enable-ipv6 \
--with-net-snmp \
--with-libcurl \
--with-libxml2
若结果显示“Thank you for using Zabbix!”,则说明配置成功。
make install
zabbix安装完成后,zabbix配置文件路劲为/usr/local/etc/。
第八步,创建并初始化Zabbix数据库。
命令:mysql -uroot -p123456
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'zabbix123';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
第九步,导入初始架构和数据。
命令:cd /usr/local/src/zabbix-5.0.26/database/mysql
mysql -uzabbix -pzabbix123 zabbix < schema.sql
mysql -uzabbix -pzabbix123 zabbix < images.sql
mysql -uzabbix -pzabbix123 zabbix < data.sql
第十步,Zabbix服务端配置。
编辑/usr/local/etc/zabbix_server.conf文件,把
“DBHost=localhost”前面的注释符号去掉,
“# DBPassword= ”修改为“DBPassword=zabbix123”,
“# DBSocket= ”修改为“DBSocket=/var/lib/mysql/mysql.sock”。
第十一步,启动server与agentd服务,并设置为开启自启动。
命令:zabbix_server
zabbix_agentd
# Zabbix前端必须运行在支持PHP的Web服务器上。把整个ui目录都拷贝过去并命名为zabbix。
cd /usr/local/src/zabbix-5.0.26
cp -rp ui /var/www/html/zabbix
# 添加server与agentd服务端口并修改启动脚本
echo 'zabbix-server 10051/tcp #Zabbix Server' >> /etc/services
echo 'zabbix-server 10051/udp #Zabbix Server' >> /etc/services
cd /usr/local/src/zabbix-5.0.26/misc/init.d/fedora/core5/
cp zabbix_server /etc/init.d/
chmod 775 /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/sbin/g' /etc/init.d/zabbix_server
echo 'zabbix-agent 10050/tcp #Zabbix Agent' >> /etc/services
echo 'zabbix-agent 10050/udp #Zabbix Agent' >> /etc/services
cd /usr/local/src/zabbix-5.0.26/misc/init.d/fedora/core5/
cp zabbix_agentd /etc/init.d/
chmod 775 /etc/init.d/zabbix_agentd
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/sbin/g' /etc/init.d/zabbix_agentd
# 自启动server与agentd服务
chkconfig --add zabbix_server
chkconfig zabbix_server on
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
# 使用chkconfig --list检查一下
chkconfig --list | grep zabbix
# 启动server与agentd服务并进程测试
service zabbix_server start
service zabbix_server stop
service zabbix_server restart
service zabbix_agentd start
service zabbix_agentd stop
service zabbix_agentd restart
netstat -antp | grep zabbix
Zabbix服务器端配置
第一步,编辑测试页。
在文件夹/var/www/html中新建index.php文件,向该文件写入下面的代码:
<?php
phpinfo();
?>
# 授予index.php权限
命令:chmod 755 /var/www/html/index.php
第二步,修改配置文件httpd.conf。
编辑/etc/httpd/conf/httpd.conf文件,在<Directory "/var/www">和<Directory "/var/www/html">字节中,都在“Require all granted”下面另起一行,然后增加
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
在<IfModule dir_module>字节中,把“DirectoryIndex index.html”改为
“DirectoryIndex index.html index.php”。
# 重启httpd服务
命令:systemctl restart httpd
第三步,访问http://x.x.x.x/index.php/。
若页面出现“PHP Version 7.4.28”等信息,则说明PHP配置成功。
第四步,授权zabbix。
命令:yum install php-bcmath -y
chmod -R 755 /var/www/html/zabbix/
netstat -antp | grep zabbix
第五步,访问http://x.x.x.x/zabbix/setup.php。
在浏览器访问http://x.x.x.x/zabbix/setup.php即进入zabbix网页安装模式。
然后点击“Next step”,输入设置好的数据库密码“zabbix123”。
若没连接上,则把数据库主机ip改为“127.0.0.1”即可。
“Zabbix server name”填写“webserver”。
若提示“无法创建配置文件”,则只需要点击“Download theconfiguration file”就可以得到配置文件zabbix.conf.php, 然后把配置文件放在/var/www/html/zabbix/conf文件夹中,最后一直点击“finish”,等出现登录界面就可以了。
进入登陆界面,初始登录账号是“Admin”(注意A大写),初始登录密码是“zabbix”。
通过命令:mysql -uroot -pzabbix123 -e "select * from zabbix.users\G"查看具体情况。
登录Zabbix网址:http://x.x.x.x/zabbix/
设置中文:点击左下角的“user settings”,选择“zh_CN”即可。
Zabbix客户端安装和配置(安装方式与服务端相同)
第一步,登录网址:Download and install Zabbix,点击“Zabbix Source”,下载Zabbix 5.0 LTS。并按照官方的安装步骤进行软件安装。
第二步,若存在旧版残留需提前卸载。
命令:rpm -qa | grep zabbix
若结果显示类似“zabbix-release-4.4-1.el8.noarch”,则可以选择进行卸载。
# 普通删除模式
rpm -e zabbix-release-4.4-1.el8.noarch
# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除
rpm -e --nodeps zabbix-release-4.4-1.el8.noarch
第三步,安装依赖包。
命令:yum install -y gcc gcc-c++ openssl openssl-devel libxml2 libxml2-devel net-snmp-devel libevent-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-devel
第四步,解压zabbix安装包。
命令:cd /usr/local/src
tar -zxvf zabbix-5.0.26.tar.gz
第五步,创建用户帐户,并授予权限。
命令:groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
第六步,安装PCRE。
# 下载 PCRE 安装包
命令:cd /usr/local/src/
wget Download PCRE from SourceForge.net
# 解压安装包
命令:tar zxvf pcre-8.35.tar.gz
# 编译安装
命令:cd pcre-8.35
./configure
make && make install
# 查看PCRE版本
命令:pcre-config --version
第七步,编译安装。
命令:cd /usr/local/src/zabbix-5.0.26
./configure --prefix=/usr/local/zabbix --enable-agent
若结果显示“Thank you for using Zabbix!”,则说明配置成功。
make install
zabbix安装完成后,zabbix配置文件路劲为/usr/local/etc/。
第八步,Zabbix服务端配置。
1)编辑/usr/local/etc/zabbix_server.conf文件,得到下面代码:
# 日志文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log
# 运行时文件路径
PidFile=/var/run/zabbix/zabbix_agentd.pid
# Zabbix服务器端IP地址
Server=x.x.x.x
# Zabbix主动检查本机数据接收服务器IP地址
ServerActive=127.0.0.1
# 客户端主机名称(也可以写IP地址)
Hostname=Zabbix server
# 代理端口号,默认值是10050
ListenPort=10050
2)新建zabbix_agentd.log,并更改拥有者。
命令:mkdir /var/log/zabbix
touch /var/log/zabbix/zabbix_agentd.log
chown -R zabbix.zabbix /var/log/zabbix
第九步,关闭selinux和防火墙。
命令:sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld.service
systemctl disable --now firewalld
第十步,启动agentd服务,并设置为开启自启动。
命令:zabbix_agentd
# Zabbix前端必须运行在支持PHP的Web服务器上。把整个ui目录都拷贝过去并命名为zabbix。
cd /usr/local/src/zabbix-5.0.26
cp -rp ui /var/www/html/zabbix
# 添加agentd服务端口并修改启动脚本
echo 'zabbix-agent 10050/tcp #Zabbix Agent' >> /etc/services
echo 'zabbix-agent 10050/udp #Zabbix Agent' >> /etc/services
cd /usr/local/src/zabbix-5.0.26/misc/init.d/fedora/core5/
cp zabbix_agentd /etc/init.d/
chmod 775 /etc/init.d/zabbix_agentd
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/sbin/g' /etc/init.d/zabbix_agentd
# 自启动agentd服务
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
# 使用chkconfig --list检查一下
chkconfig --list | grep zabbix
# 启动agentd服务并进程测试
service zabbix_agentd start
service zabbix_agentd stop
service zabbix_agentd restart
netstat -antp | grep zabbix
# 在zabbix的服务端测试与客户端是否联通
/usr/local/zabbix/bin/zabbix_get -s 120.55.72.8 -p10050 -k”net.if.in[eth0,bytes]”
若可以得到网卡信息,则说明客户端与服务端可以正常通信。
第十一步,设置防火墙端口,允许"10050"端口(Zabbix Agent默认端口)访问服务器。
命令:systemctl start firewalld
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
systemctl stop firewalld
注意:所有客户端都需按照以上步骤配置。
第十二步,重启服务器。
命令:init 6
第十三步,在Zabbix监控系统中配置客户端主机。
登录Zabbix网址:http://x.x.x.x/zabbix/
初始登录账号是“Admin”(注意A大写),初始登录密码是“zabbix”。账号和口令都区分大小写。
1)在“配置 --> 主机 --> 创建主机”页面中创建新的主机,填写客户端主机基本信息,注意:这一步不点击“添加”。
2)在“配置 --> 主机 --> 创建主机 --> 模板”页面中,选择监控点模块并添加。
3)在“配置 --> 主机”页面中可以看到刚刚添加好的主机信息。
注意:添加完成后,需要等待大约3分钟才能建立服务器和客户端的数据通信,之后刷新一下页面,如果发现该主机的可用性标记为下图状态,则表示客户端已受控。
第十四步,常见问题。
# 更改Zabbix用户
命令:mysql -uroot -p123456
MariaDB [(none)]> use zabbix;
MariaDB [(none)]> update users set passwd=md5('password') where alias= 'Admin';