zabbix官网链接下载zabbix源代码安装包
选择zabbix版本(此文章使用zabbix6.4版本)
安装之前由于是最小化安装centos7安装一些开发环境和工具包
文章使用国内阿里源
cd /etc/yum.repos.d/ && mkdir myrepo && mv * myrepo&&ls
curl -O https://mirrors.aliyun.com/repo/epel-7.repo;curl -O https://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache all
启用阿里源yum云。
由于是最小化安装的系统没有开发工具、编译器、构建工具、base(基础工具),安装系统环境。
yum -y groupinstall "development tools" "base"
yum -y install lrzsz
使用的远程连接工具使用Xshell工具最小化安装的系统没有默认没有命令行传输工具。
lrzsz工具:使用命令行传输文件,在linux和其他类unix系统中常用的工具,用于通过串行连接发送和接收文件。(通常被用来在本地计算机与远程系统之间传输文件。)
lrzsz
实际上是由两个独立的命令组成的:
rz
用于接收文件(Receive files)。sz
用于发送(下载)文件(Send files)。
2 要求(zabbix)官网链接要求
zabbix版本安装要求 === 硬性 == nginx1.20版本或更高、php8.0.0-8.3.X版本、mysql/Percona8.0.30-8.4.X版本
1、源代码安装nginx === wget下载nginx1.27.0.tar.gz源代码安装包
cd /usr/local/src/;mkdir nginx;cd nginx;wget https://nginx.org/download/nginx-1.27.0.tar.gz
选择上传nginx源代码安装包。
部署安装之前安装nginx所需要的依赖环境
yum -y install gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel
创建nginx运行用户和组
useradd nginx -l -M -s /sbin/nologin
tar xf nginx-1.27.0.tar.gz;cd nginx-1.27.0
建议隐藏nginx版本信息
sed -i "13s/1.27.0/jingyu飞鸟/" /usr/local/src/nginx/nginx-1.27.0/src/core/nginx.h
sed -i "14s/nginx\//CSDN-/" /usr/local/src/nginx/nginx-1.27.0/src/core/nginx.h
sed -i "49s/nginx/CSDN-jingyu飞鸟/" /usr/local/src/nginx/nginx-1.27.0/src/http/ngx_http_header_filter_module.c
sed -i "36s/nginx/CSDN-jingyu飞鸟/" /usr/local/src/nginx/nginx-1.27.0/src/http/ngx_http_special_response.c
配置编译nginx
./configure --prefix=/usr/local/nginx \
--with-http_dav_module \
--with-http_stub_status_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_flv_module \
--with-http_mp4_module \
--user=nginx --group=nginx \
&& make && make install
添加环境变量
sed -i '$aexport PATH=$PATH:/usr/local/nginx/sbin/' /etc/profile
source /etc/profile
创建php测试页面,为php测试准备
echo -e "<?php\nphpinfo();\n?>" > /usr/local/nginx/html/php.php
安装配置php
点击旧档案
官网下载点击download下载php版本符合zabbix7.0版本的php8.0.0-8.3.X版本此文章使用php8.3.6版本
安装php依赖环境
build-essential:用于编译和构建软件的工具包。、zlib:用于压缩和解压缩数据。、libxml2:用于解析XML文件。、libjpeg、libpng、libwebp、libxpm:用于处理图像文件。、libcurl:用于发送和接收数据的客户端库。、libzip:用于创建和解压ZIP文件。、libssl:用于加密和解密数据、libonig:用于正则表达式匹配。、libargon2:用于密码哈希算法。、libedit:用于命令行编辑器。、libgd:用于处理图像文件。、libmcrypt:用于数据加密和解密。
yum -y install libxml2 libxml2-devel libsq3-devel libsq3 bzip2 bzip2-devel libcurl libcurl-devel libpng libpng-devel libjpeg* freetype freetype-devel oniguruma oniguruma-devel expat expat-devel libxslt libxslt-devel
创建php运行用户和组
useradd php -l -M -s /sbin/nologin
下载php8.3.6源代码安装,进行解压缩配置
cd /usr/local/src/ && mkdir php && cd php && wget https://www.php.net/distributions/php-8.3.6.tar.gz
tar xf php-8.3.6.tar.gz ;cd php-8.3.6
./configure --prefix=/usr/local/php -with-config-file-path=/etc --with-fpm-user=php --with-fpm-group=php --with-curl --with-freetype --enable-gd --with-gettext --with-kerberos --with-libdir=lib64 --with-mysqli --with-openssl --with-pdo-mysql --with-pdo-sqlite --with-pear --with-jpeg --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-fpm --with-pcre-jit --with-expat
make
注意!!!make编译需要很久的时间!!!
make完成之后会提示make test测试这里不需要直接安装就好。
make install
之后提示 一些信息。
cp /usr/local/src/php/php-8.3.6/php.ini-production /etc/php.ini
创建php配置文件。
修改配置文件内容。
sed -i "989cdate.timezone = PRC" /etc/php.ini
sed -i "410s/On/Off/" /etc/php.ini
sed -i "208s/Off/On/" /etc/php.ini
sed -i "713s/8/16/" /etc/php.ini
sed -i "419s/30/300/" /etc/php.ini
sed -i "429s/60/300/" /etc/php.ini
sed -i "1198cmysqli.default_socket = /var/lib/mysql/mysql.sock" /etc/php.ini
sed -i "707aalways_populate_raw_post_data = -1" /etc/php.ini
sed -i "708ambstring.func_overload = 0" /etc/php.ini
与原文件对比修改上面几处。
cp /usr/local/src/php/php-8.3.6/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
设置php-fpm配置文件并编辑
sed -i "127s/5/600/" /usr/local/php/etc/php-fpm.d/www.conf.default
sed -i "132s/2/60/" /usr/local/php/etc/php-fpm.d/www.conf.default
sed -i "137s/1/16/" /usr/local/php/etc/php-fpm.d/www.conf.default
sed -i "142s/3/60/" /usr/local/php/etc/php-fpm.d/www.conf.default
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.conf
修改之后复制到php的/etc目录下并重命名为php-fpm.conf文件。
之后便可以使用service系统命令启动。
或者使用/etc/init.d/php-fpm status
添加永久环境变量
sed -i '$aexport PATH=$PATH:/usr/local/php/bin' /etc/profile
sed -i '$aexport PATH=$PATH:/usr/local/php/sbin' /etc/profile
source /etc/profile
由于之前安装完nginx之后便echo了php版本页面测试文件,之后修改完nginx配置文件便直接启动php服务便可以看到。
sed -i '45c\ index index.php index.html index.htm;' /usr/local/nginx/conf/nginx.conf
访问优先调用php (如果客户端请求的是一个目录(例如 http://example.com/
)而不是具体的文件路径,Nginx 会依次尝试使用 index.php
)
如果找到其中任何一个文件,那么这个文件将被用来响应客户端的请求。
如果没有找到任何文件,Nginx 通常会返回一个错误页面(通常是 404 Not Found),除非配置了其他行为,比如返回目录列表。
sed -i "46a\ location ~ \\.php$ {\n root html;\n fastcgi_pass 127.0.0.1:9000;\n index index.php;\n fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;\n include fastcgi_params;\n include fastcgi.conf; \n}" /usr/local/nginx/conf/nginx.conf
systemctl stop firewalld;setenforce 0
/etc/init.d/php-fpm start
nginx
启动nginx
测试php版本页面信息
注意 url 是http的并非加密的!!!
http://192.168.6.120/php.php
安装mysql数据库
由于源代码安装部署时间长,本文章使用yum安装方式
Centos系统yum安装mysql数据库_mysql84-community-release-el7-1.noarch.rpm-CSDN博客
rpm -e mariadb-libs --nodeps
首先删除系统自带的数据库
下载mysql-yum下载源
cd /etc/yum.repos.d/&& mkdir mysqlrepo&&cd mysqlrepo&& wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm&& rpm -ivh https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm
如果这个之前安装过可以使用忽略命令重新安装
rpm -ivh mysql84-community-release-el7-1.noarch.rpm --nodeps --force
下载mysql-server其中包括一些zabbix环境依赖包
yum -y install mysql-server libxml2 libxml2-devel net-snmp-devel libevent-devel javacc-maven-plugin mysql-devel curl-devel root-sql-mysql
系统使用的刚刚下载的mysql-community.repo源中的mysql8.4版本。
yum安装的直接就是系统服务。在mysqld服务登录时建议使用临时密码,需要注意的是,只有mysqld服务启动之后在/var/log/mysqld.log文件才会有零时密码。
启动mysqld服务。
systemctl start mysqld
过滤临时密码
grep password /var/log/mysqld.log
mysql -uroot -p
使用临时密码,登录mysql
设置密码
alter user root@localhost identified by 'CSDN-jingyu1610';
密码要求要符合安全复杂性。
否则会提示
创建zabbix数据库、用户
create user zabbix@localhost identified by 'CSDN-jingyu1610';
grant all privileges on zabbix.* to zabbix@localhost;
create database zabbix charset utf8 collate utf8_bin;
之后退出数据库exit或者ctrl + D退出。
exit
之后安装部署zabbix6.4
cd /usr/local/src/&& mkdir zabbix&& cd zabbix&& wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.17.tar.gz&& tar xf zabbix-6.4.17.tar.gz&& cd zabbix-6.4.17
导入zabbix的mysql数据库资源
mysql -uzabbix -pCSDN-jingyu1610 zabbix < /usr/local/src/zabbix/zabbix-6.4.17/database/mysql/schema.sql
复制命令在文档下面。
log_bin_trust_function_creators变量
这里mysql告诉说:[警告]在命令行界面上使用密码可能不安全。
第2484行错误1419(HY000):您没有SUPER权限,并且启用了二进制日志记录(您可能希望使用不太安全的log_bin_trust_function_creates变量)
没有SUPER权限但是给出了解决办法设置变量
sed -i '$alog_bin_trust_function_creators=1' /etc/my.cnf
systemctl restart mysqld
由于之前已经导入了一次程序检测第一行有了便认为内容都有了,所以需要将数据库删除重新创建数据库以及导入数据。
错误提示:
删除mysql数据库,重新创建数据库。
mysql -uroot -pCSDN-jingyu1610 -e "drop database zabbix;"
mysql -uroot -pCSDN-jingyu1610 -e "create database zabbix charset utf8 collate utf8_bin;"
之后重新导入没有问题。
需要注意mysql脚步导入顺序 1、schema.sql 2、images.sql 3、data.sql
mysql -uzabbix -pCSDN-jingyu1610 zabbix < /usr/local/src/zabbix/zabbix-6.4.17/database/mysql/schema.sql
mysql -uzabbix -pCSDN-jingyu1610 zabbix < /usr/local/src/zabbix/zabbix-6.4.17/database/mysql/images.sql
mysql -uzabbix -pCSDN-jingyu1610 zabbix < /usr/local/src/zabbix/zabbix-6.4.17/database/mysql/data.sql
创建zabbix用户
useradd zabbix -l -M -s /sbin/nologin
配置zabbix6.4.17
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-net-snmp --with-libcurl
make && make install
之后修改zabbix配置文件。
sed -i "12s/#//" /usr/local/zabbix/etc/zabbix_server.conf
sed -i "68s/#//" /usr/local/zabbix/etc/zabbix_server.conf
sed -i "87s/#//" /usr/local/zabbix/etc/zabbix_server.conf
sed -i "130cDBSocket=/var/lib/mysql/mysql.sock" /usr/local/zabbix/etc/zabbix_server.conf
sed -i "123cDBPassword=CSDN-jingyu1610" /usr/local/zabbix/etc/zabbix_server.conf
注意将zabbix用户登陆数据库的密码设置成自己的,(zabbix用户可以登陆的密码。)
复制zabbix启动脚步。
cp /usr/local/src/zabbix/zabbix-6.4.17/misc/init.d/fedora/core5/zabbix_* /etc/init.d/
chkconfig --add /etc/init.d/zabbix_server
chkconfig --add /etc/init.d/zabbix_agentd
添加为系统服务。
复制zabbix页面交给php程序解析
cp -r /usr/local/src/zabbix/zabbix-6.4.17/ui/ /usr/local/nginx/html/zabbix
之后打开浏览器访问
http://192.168.6.120/zabbix/
关闭防火墙与selinux
systemctl stop firewalld && setenforce 0
浏览器安装zabbix -server6.4版本
可以将默认语言修改为中文。
密码是mysql数据库zabbix用户登录的密码修改与自己的一致。
(文章中密码为:CSDN-jingyu1610)
设置zabbix主机名称
时间改成亚洲/上海。
选择默认主题
没有问题-下一步。
这里需要手动下载配置文件(配置文件名称:zabbix.conf.php)
点击1、下载配置文件即可下载
按照第2步上传到 "/usr/local/nginx/html/zabbix/conf/zabbix.conf.php"(是之前zabbix源代码安装包的ui目录复制到的nginx网页目录中的conf目录)
cd /usr/local/nginx/html/zabbix/conf/
rz
rz命令是文章上面让安装的lrzsz工具。
之后点击完成即可。
点击登录 ,之后使用zabbix默认的用户
用户名称:Admin
密码:zabbix