Zabbix使用Nginx做前端部署安装

warning: 这篇文章距离上次修改已过590天,其中的内容可能已经有所变动。

zabbix官网默认是使用apache做前端安装部署的,个人觉得使用nginx效果也很好,于是尝试用nginx来部署一下zabbix4,
具体方法如下,我来使用源码安装配置。

1.安装依赖库

yum install -y gcc wget vim unixODBC-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel curl-devel gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2.安装nginx

下载安装源码包:

wget https://nginx.org/download/nginx-1.18.0.tar.gz

解压编译安装

#根目录使用ls命令可以看到下载的nginx压缩包,然后解压
tar -zxvf nginx-1.18.0.tar.gz

#解压后进入目录
cd nginx-1.18.0

#使用默认配置
./configure

#编译安装
make && make install

#查找安装路径,默认都是这个路径
whereis nginx
nginx: /usr/local/nginx #配置文件和web root目录都位于这这目录中

#启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx     #启动
./nginx -s stop  #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit  #退出停止,等待nginx进程处理完任务再进行停止
./nginx -s reload  #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效

#重启nginx,建议先停止,再启动
./nginx -s stop
./nginx

安装完成后,开启nginx服务,测试主页能否打开。

3.安装php及扩展

yum -y install  php php-bcmath php-mbstring php-mysql php-gd php-ldap php-xml php-fpm

4.安装mysql(mariadb)

yum -y install mariadb mariadb-server mariadb-devel

5.启动php-fpm和mysql,并设置开机启动

systemctl start php-fpm
systemctl enable php-fpm
systemctl start mariadb
systemctl enable mariadb

6.新建zabbix账户和组

groupadd zabbix
useradd -g zabbix zabbix

7.下载zabbix4.4源码包

wget https://cdn.zabbix.com/zabbix/sources/oldstable/4.4/zabbix-4.4.10.tar.gz

8.编译安装zabbix,先解压再编译安装

tar -zxvf zabbix-4.4.10.tar.gz 
cd zabbix-4.4.10
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install
info:如果编译和安装过程中没有报错,则说明成功。

9.初始化mysql数据库

初始化mysql数据库,并配置root用户密码:

mysql_secure_installation

info:注意:在Enter current passwdord for root处,直接回车键即可,因为centos7上初始安装的mysql的默认root用户密码为空。

然后输入yroot用户配置密码root123,并刷新相关权限。

Remove anonymous users? [Y/n] y                         #删除匿名用户,是
Disallow root login remotely? [Y/n] n             #是否禁用root用户远程登录,选择否,不禁用
Remove test database and access to it? [Y/n] y         #是否删除测试数据库,是
Reload privilege tables now? [Y/n] y             #重新加载权限列表,是
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!                                #配置完成

10.创建zabbix数据库

创建zabbix数据库,及其用户zabbix,密码zabbix123

mysql -uroot -proot123 -e "create database zabbix default character set utf8 collate utf8_bin;"
mysql -uroot -proot123 -e "grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix123';"

11.导入zabbix初始表结构

mysql -uzabbix -pzabbix123 -hlocalhost zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbix123 -hlocalhost zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix123 -hlocalhost zabbix < database/mysql/data.sql

12.为Zabbix server配置数据库

编辑zabbix_server配置文件

vim /usr/local/etc/zabbix_server.conf

修改数据库密码为如下字段,并取消注释:

DBPassword=zabbix123

13.修改php配置

修改php.ini配置文件,并修改为如下数值,以满足zabbix运行要求。

vim /etc/php.ini
post_max_size = 32M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai

14.复制zabbix前端文件到nginx web目录

cp -r  frontends/php/* /usr/local/nginx/html

15.配置nginx支持php

修改nginx的配置文件

vim /usr/local/nginx/conf/nginx.conf

找到location的添加位置,在后面添加下面这个location,如果已有被注释掉了,取消注释即可。

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   #fastcgi_param行改成这个。
    include        fastcgi_params;
}

并在配置web首页中加入index.php支持。

location / {
            root   html;
            index  index.php index.html index.htm;
        }

然后重新加载nginx,重启php

/usr/local/nginx/sbin/nginx -s reload
systemctl restart php-fpm

16.启动zabbix_server和zabbix_agent

zabbix_server
zabbix_agentd

17.配置Zabbix前端

打开http://服务器IP/
按照之前的方法配置,部署安装zabbix,来配置。

info:在最后一步中,需要下载zabbix.conf.php文件
上传到服务器/usr/local/nginx/html/conf/目录中。

最后配置最后配置

添加新评论