Zabbix的学习过程--zabbix服务端以及web端搭建

安装MySQL、PHP、Nginx及搭建Zabbix服务器
本文详细介绍了如何在Linux环境下安装MySQL数据库、PHP环境、Nginx Web服务器,并搭建Zabbix监控系统。包括依赖包安装、PHP源码编译、配置与启动PHP-FPM服务、安装配置Nginx、Zabbix客户端与服务器安装等步骤。
  1. 安装mysql
    yum install mysql mysql-server mysql-dervel -y
  2. 安装PHP

    • 安装依赖包

      yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel curl-devel -y
    • 安装PHP
      下载PHP源码包,此处所用版本为:php-5.5.23.tar.bz2

      tar -xjf php-5.5.23.tar.bz2 
      cd php-5.5.23
      ./configure --prefix=/usr/local/php-5.5.23 \
      --with-config-file-path=/usr/local/php-5.5.23/etc --with-bz2 --with-curl \
      --enable-ftp --enable-sockets --disable-ipv6 --with-gd \
      --with-jpeg-dir=/usr/local --with-png-dir=/usr/local \
      --with-freetype-dir=/usr/local --enable-gd-native-ttf \
      --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar \
      --with-gettext --with-libxml-dir=/usr/local --with-zlib \
      --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd \
      --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath
      make
      make install
    • 配置PHP

      cp php.ini-production /usr/local/php-5.5.23/etc/php.ini
      cp php.ini-production /usr/local/lib/php.ini
      cp /usr/local/php-5.5.23/etc/php-fpm.conf.default /usr/local/php-5.5.23/etc/php-fpm.conf
    • 修改php.ini

       pdo_mysql.default_socket=/var/lib/mysql/mysql.sock
       max_execution_time = 300
       memory_limit = 128M
       post_max_size = 16M
       upload_max_filesize = 2M
       max_input_time = 300
       date.timezone PRC
    • 修改php-fpm配置

      user = nginx
      group = nginx
    • 启动PHP
      /usr/local/php-5.5.23/sbin/php-fpm start
      如果要做成service php-fpm start这种,需要在/etc/init.d/写一个脚本php-fpm

      
      #!/bin/sh  
      
      
      # DateTime: 2015-04-14
      
      
      # Author: zhang
      
      
      # chkconfig:   - 84 16   
      
      
      # Source function library.  
      
      . /etc/rc.d/init.d/functions  
      
      
      # Source networking configuration.  
      
      . /etc/sysconfig/network  
      
      
      # Check that networking is up.  
      
      [ "$NETWORKING" = "no" ] && exit 0  
      
      phpfpm="/usr/local/php-5.5.23/sbin/php-fpm"  
      prog=$(basename ${phpfpm})  
      
      lockfile=/var/lock/subsys/phpfpm
      
      start() {  
          [ -x ${phpfpm} ] || exit 5  
          echo -n $"Starting $prog: "  
          daemon ${phpfpm}
          retval=$?  
          echo  
          [ $retval -eq 0 ] && touch $lockfile  
          return $retval  
      }  
      
      stop() {  
          echo -n $"Stopping $prog: "  
          killproc $prog -QUIT  
          retval=$?  
          echo  
          [ $retval -eq 0 ] && rm -f $lockfile  
          return $retval  
      }  
      
      restart() {  
          configtest || return $?  
          stop  
          start  
      }  
      
      reload() {  
          configtest || return $?  
          echo -n $"Reloading $prog: "  
          killproc ${phpfpm} -HUP  
          RETVAL=$?  
          echo  
      }  
      
      force_reload() {  
          restart  
      }  
      
      configtest() {  
        ${phpfpm} -t
      }  
      
      rh_status() {  
          status $prog  
      }  
      
      rh_status_q() {  
          rh_status >/dev/null 2>&1  
      }  
      
      case "$1" in  
          start)  
              rh_status_q && exit 0  
              $1  
              ;;  
          stop)  
              rh_status_q || exit 0  
              $1  
              ;;  
          restart|configtest)  
              $1  
              ;;  
          reload)  
              rh_status_q || exit 7  
              $1  
              ;;  
          status)  
              rh_status  
              ;;  
          *)  
              echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"  
              exit 2  
      esac
    • 查看php-fpm是否启动
      ps aux|grep php-fpm
      netstat -lnt|grep 9000
      
      # 启动
      
      service php-fpm start
      
      # 关闭
      
      service php-fpm stop
      
      # 重启
      
      service php-fpm restart
      
      # 重载
      
      service php-fpm reload
      
      #检查配置文件
      
      service php-fpm configtest
  3. 安装nginx

    • 安装第三方源

      rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/5/x86_64/zabbix-release-2.2-1.el5.noarch.rpm
    • 安装nginx

      yum install -y nginx
  4. 搭建zabbix服务器

    • 安装客户端
      rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/5/x86_64/zabbix-release-2.2-1.el5.noarch.rpm
      yum install zabbix-server-mysql zabbix-web-mysql zabbix-web -y

    如果报错,可以用以下命令执行

    yum install zabbix-server-mysql zabbix-web-mysql zabbix-web -y --skip-broken
    • 创建数据库并导入数据(proxy只需要导入schema.sql就够了)
        SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your_passwd');
    create database zabbix default charset utf8;
    grant all on zabbix.* to zabbix@"127.0.0.1" IDENTIFIED BY "your_passwd";
    quit;
    mysql -uroot -pyour_passwd < schema.sql
    mysql -uroot -pyour_passwd < data.sql
    mysql -uroot -pyour_passwd < images.sql
    • 配置zabbix

      vi /etc/zabbix/zabbix_server.conf
      DBHost=localhost
      DBName=zabbix
      DBUser=zabbix
      DBPassword=your_passwd
    • 配置zabbix web端
      修改nginx配置文件

       mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak  
       vi /etc/nginx/conf.d/zabbix.conf
       server {
          listen       80;
          server_name zabbix.123.com;
          access_log  /var/log/nginx/zabbix/zabbix.access.log  main;
      
          index index.html index.php index.html;
          root /usr/share/zabbix;
      
          location /
          {
                  try_files $uri $uri/ /index.php?$args;
          }
      
          location ~ ^(.+.php)(.*)$ {
                  fastcgi_split_path_info ^(.+.php)(.*)$;
                  include /etc/nginx/fastcgi_params;
                  fastcgi_pass  localhost:9000;
                  fastcgi_index index.php;
                  fastcgi_param  PATH_INFO          $fastcgi_path_info;
          }
      }

    FAQ

  5. Loaded Configuration File none
    PHP没有载入php.ini ,输入php -i 看看载入的是哪个文件夹的ini文件,复制过去,给权限就可以了。
  6. mysql报错No such file or directory
    php.ini中没有定义mysql.sock,具体参照上文php.ini配置
  7. mysql报错
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in path/to/the/file/where/connection/script/is/written/

mysqlnd是个好东西。不仅可以提高与mysql数据库通信的效率,而且也可以方便的设置一些超时。如,连接超时,查询超时。
但是,使用mysqlnd的时候,有个地方需要注意。就是服务端的密码格式不能使用旧的16位的存储格式,而要使用新的41位的存储格式。
如果,服务端的密码格式是16位,那么就会报错。
解决办法:

SET old_passwords = 0;
UPDATE mysql.user SET Password = PASSWORD('testpass') WHERE User = 'testuser' limit 1;
SELECT LENGTH(Password) FROM mysql.user WHERE User = 'testuser';
FLUSH PRIVILEGES;
<think> 我们正在处理用户的问题:用户想要在Win10系统上部署Zabbix Server服务端。但根据引用内容,引用[4]提到“windows搭建zabbix-server”,但该引用提供的链接实际上是Ubuntu系统的安装指南,且其他引用大多是关于在Windows上安装Zabbix Agent(客户)的。因此,我们需要明确:Zabbix官方并不推荐在Windows上部署Zabbix Server,通常建议在Linux系统上部署。 但是,如果用户坚持要在Win10上部署,我们可以尝试通过一些方法实现,例如使用Docker或虚拟机。然而,引用中并没有直接在Win10上部署Zabbix Server的详细步骤。因此,我们需要根据一般经验提供可能的方案。 考虑到用户的需求,我们给出两种方案: 1. 在Win10上使用虚拟机(如VirtualBox)安装Linux,然后在Linux中安装Zabbix Server(这是官方推荐的方式)。 2. 在Win10上使用Docker运行Zabbix Server(需要先安装Docker Desktop)。 由于引用中没有直接提供Win10上部署Zabbix Server的方法,我们将基于常规方法提供指导。 由于用户明确要求Win10系统,我们重点考虑第二种方案(Docker方式)。 步骤概览: 1. 安装Docker Desktop for Windows。 2. 拉取Zabbix官方Docker镜像。 3. 运行Zabbix Server容器,同时需要运行数据库容器(如MySQL)和Zabbix Web界面容器。 详细步骤: ### 1. 安装Docker Desktop - 访问Docker官网下载Docker Desktop for Windows:https://www.docker.com/products/docker-desktop - 安装并确保启用WSL2后(需要Windows 10 2004及以上版本,且开启WSL2功能)。 ### 2. 拉取Zabbix镜像 - 打开命令提示符(CMD)或PowerShell。 - 拉取Zabbix server(使用MySQL数据库)、Web界面和MySQL的镜像: ```bash docker pull zabbix/zabbix-server-mysql:latest docker pull zabbix/zabbix-web-nginx-mysql:latest docker pull mysql:latest ``` ### 3. 创建Docker网络 ```bash docker network create zabbix-net ``` ### 4. 启动MySQL容器 ```bash docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --network=zabbix-net \ -d mysql:latest \ --character-set-server=utf8 --collation-server=utf8_bin ``` ### 5. 启动Zabbix Server容器 ```bash docker run --name zabbix-server -t \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --network=zabbix-net \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:latest ``` ### 6. 启动Zabbix Web容器 ```bash docker run --name zabbix-web -t \ -e ZBX_SERVER_HOST="zabbix-server" \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --network=zabbix-net \ -p 8080:8080 \ -d zabbix/zabbix-web-nginx-mysql:latest ``` ### 7. 访问Zabbix Web界面 - 打开浏览器,访问:http://localhost:8080 - 初始登录用户名:Admin,密码:zabbix 注意事项: - 上述命令中设置的密码(如`zabbix_pwd`和`root_pwd`)请根据实际情况修改。 - 如果口8080被占用,可以修改映射口(例如`-p 8081:8080`)。 - 数据持久化:上述命令没有做数据卷映射,如果需要持久化数据,应该添加`-v`参数映射到宿主机目录。 由于在Windows上直接运行Zabbix Server较为复杂,且官方不推荐,可能会遇到性能或兼容性问题。因此,建议用户在生产环境中使用Linux服务器。 如果用户不想使用Docker,也可以在Win10上安装虚拟机(如VirtualBox),然后在虚拟机中安装Ubuntu等Linux系统,再按照官方文档安装Zabbix Server。 引用[4]中提供的链接实际上是Zabbix官方下载页面,用户可以选择在Ubuntu上安装的步骤,但这不是在Windows上直接安装。 因此,我们提供了Docker方案,这是一种在Windows上运行Zabbix Server的可行方法。 §§相关问题§§ 1. 在Windows上使用Docker部署Zabbix Server有哪些注意事项? 2. Zabbix Server在Docker中运行如何备份和恢复数据? 3. 如何配置Zabbix Server监控其他主机? </think>以下是在 Windows 10 系统上部署 Zabbix Server 服务端的完整教程。请注意,**Zabbix 官方不推荐在 Windows 上部署 Server **(仅支持 Linux),但可通过以下两种方案实现: --- ### 方案一:通过 WSL 部署(推荐) Windows Subsystem for Linux (WSL) 允许在 Win10 中运行 Linux 环境,这是官方支持的方案。 #### 步骤: 1. **启用 WSL** ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart ``` 重启系统后,[安装 WSL2 内核更新](https://aka.ms/wsl2kernel)[^4]。 2. **安装 Ubuntu** - Microsoft Store 搜索安装 "Ubuntu" - 启动 Ubuntu 并设置用户名/密码 3. **在 Ubuntu 中安装 Zabbix Server** ```bash # 安装依赖 sudo apt update && sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql # 添加 Zabbix 仓库 wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb sudo dpkg -i zabbix-release_*.deb sudo apt update # 安装 Zabbix 组件 sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts # 配置 MySQL sudo mysql -e "CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin" sudo mysql -e "CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_password'" sudo mysql -e "GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'" # 导入初始数据 sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix # 修改配置文件 sudo nano /etc/zabbix/zabbix_server.conf ``` 修改以下参数: ```ini DBPassword=your_password ``` 4. **启动服务** ```bash sudo systemctl restart zabbix-server apache2 sudo systemctl enable zabbix-server apache2 ``` 5. **访问 Web 界面** `http://localhost/zabbix` → 完成配置向导(数据库名:`zabbix`,用户:`zabbix`)[^4] --- ### 方案二:原生 Windows 部署(非官方) 需手动编译,稳定性无保障,仅限测试环境。 #### 步骤: 1. **安装依赖** - MySQL 8.0+ ([下载](https://dev.mysql.com/downloads/installer/)) - Apache 2.4 ([下载](https://httpd.apache.org/download.cgi)) - PHP 7.4+ ([下载](https://windows.php.net/download/)) - 安装 Visual Studio 编译工具链 2. **编译 Zabbix Server** ```powershell # 克隆源码 git clone --branch 6.0.18 https://github.com/zabbix/zabbix.git cd zabbix # 生成 Makefile cmake -DCMAKE_INSTALL_PREFIX="C:\zabbix" -DENABLE_SERVER=ON -DWITH_MYSQL=ON . # 编译安装 cmake --build . --config Release cmake --install . ``` 3. **配置数据库** ```sql CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; GRANT ALL ON zabbix.* TO 'zabbix'@'localhost'; ``` 4. **导入初始数据** ```powershell mysql -uzabbix -p zabbix < database\mysql\schema.sql mysql -uzabbix -p zabbix < database\mysql\images.sql mysql -uzabbix -p zabbix < database\mysql\data.sql ``` 5. **修改配置文件** 编辑 `C:\zabbix\conf\zabbix_server.conf`: ```ini DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=password ``` 6. **启动服务** ```powershell C:\zabbix\sbin\zabbix_server.exe -c C:\zabbix\conf\zabbix_server.conf ``` --- ### 关键注意事项 1. **口开放** - 需开放 `10051` (Server) 和 `80/443` (Web) ```powershell New-NetFirewallRule -DisplayName "Zabbix Server" -Direction Inbound -LocalPort 10051 -Protocol TCP -Action Allow ``` 2. **性能问题** - Windows 版 Server 无官方优化,监控超过 100 台设备可能出现性能瓶颈 3. **替代方案建议** - 生产环境强烈建议使用 Linux 虚拟机或云服务器部署[^4] - 监控 Windows 客户可使用原生 Agent(参考引用[2][5]) > 💡 **推荐方案**:使用 WSL2 部署(方案一),可获得接近原生 Linux 的性能和稳定性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值