本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

Zabbix 3.4编译安装全解读

前提准备

  • 准备系统环境
# yum -y install wget vim lrzsz epel-release bash-completion ntpdate ntp
# setenforce 0
# vim /etc/sysconfig/selinux
    SELINUX=disabled
# systemctl disable firewalld && systemctl stop firewalld
# ntpdate TIME_SERVER 

安装Zabbix

本文转自芝麻实验室 。

通过包管理器安装

源码编译安装

  • 如果你希望构建稳定且持久的生产环境监控系统,你应该选择编译安装(但这不可避免的难以升级),且应尽可能选择LTS(长期支持)版本
  1. 下载源码包

    [root@node2 ~]# wget -O /usr/src/zabbix-3.4.7.tar.gz 
    https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.7/zabbix-3.4.7.tar.gz/download
    [root@node2 ~]# cd /usr/src
    [root@node1 src]# tar zxvf zabbix-3.4.7.tar.gz 
  2. 创建用户账户

    From: 芝麻实验室

    [root@node1 src]# groupadd zabbix 
    [root@node1 src]# useradd -g zabbix -s /sbin/nologin zabbix 

如果Zabbix server 和 agent 运行在同一台计算机上,建议使用不同的账户运行Server和Agent。否则,如果两个进程使用了同一个用户,Agent就可以访问Server的配置文件,并可轻易地读取Zabbix中任何管理员级别的用户,比如数据库密码。同时,应避免使用诸如root,bin或其他特殊权限的用户运行Zabbix,因为会存在潜在的安全风险。 ——来自Zabbix官方建议

本文未经芝麻实验室 授权>!

  1. 准备Zabbix数据库

    [root@node1 src]# yum -y install mariadb-server
    [root@node1 src]# systemctl enable mariadb.service 
    [root@node1 src]# systemctl start mariadb.service
    [root@node1 src]# mysql_secure_installation #安全配置
    [root@node1 src]# mysql -uroot -h<YOUR_IP> -p #连接服务器,请将IP更换为实际的数据库服务器地址
    # 配置Mariadb Server
    MariaDB [(none)]> create database zabbix character set utf8; #创建zabbix数据库。注意,你应该在这里设置字符集,以免带来不必要的后期维护成本
    Query OK, 1 row affected (0.01 sec)
    
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'guomai';
    Query OK, 0 rows affected (0.01 sec) #授予zabbix用户在zabbix数据库下的特权,否则无法正常运行
    
    MariaDB [(none)]> exit
    Bye
    
    [root@node1 src]# cd zabbix-3.4.7/database/mysql/
    [root@node1 mysql]# mysql -h<YOUR_IP> -uzabbix -p zabbix < schema.sql #导入zabbix数据库初始结构
    [root@node1 mysql]# mysql -h<YOUR_IP> -uzabbix -p zabbix < images.sql 
    [root@node1 mysql]# mysql -h<YOUR_IP> -uzabbix -p zabbix < data.sql 
  2. 安装Zabbix
  • 准备和检查编译环境

    [root@node1 mysql]# cd ../../
    [root@node1 zabbix-3.4.7]# yum -y install openssl-devel pcre-devel make gcc net-snmp-devel mysql-devel curl-devel libxml2-devel libevent-devel #安装编译及依赖组件
    [root@node1 zabbix-3.4.7]# ./configure --help | less #获取编译帮助
    [root@node1 zabbix-3.4.7]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openssl # 添加SSL/TLS支持;如未指定prefix,将默认安装到/usr/local
  • 看到如下图示,即可开始编译
  • 编译

    [root@node1 zabbix-3.4.7]# make install
  1. 查看Zabbix目录结构

    [root@node1 zabbix-3.4.7]# cd /usr/local/zabbix/
    [root@node1 zabbix]# yum -y install tree 
    [root@node1 zabbix]# tree
    .
    ├── bin
    │   ├── zabbix_get
    │   └── zabbix_sender
    ├── etc
    │   ├── zabbix_agentd.conf
    │   ├── zabbix_agentd.conf.d
    │   ├── zabbix_server.conf
    │   └── zabbix_server.conf.d
    ├── lib
    ├── sbin
    │   ├── zabbix_agentd
    │   └── zabbix_server
    └── share
      ├── man
      │   ├── man1
      │   │   ├── zabbix_get.1
      │   │   └── zabbix_sender.1
      │   └── man8
      │       ├── zabbix_agentd.8
      │       └── zabbix_server.8
      └── zabbix
          ├── alertscripts
          └── externalscripts
  2. directories, 10 files

  3. 编辑Zabbix server主配置文件
  • 配置Zabbix数据库信息

    [root@node1 zabbix]# vim etc/zabbix_server.conf
    # DBHost=localhost db服务器ip,本示例为本机,故localhost即可(注:需事先在Mariadb/MySQL中授权)
    DBName=zabbix #库名,默认zabbix
    DBUser=zabbix #账户名,默认zabbix
    DBPassword=guomai #数据库密码,需自行配置 
    DBPort=3306 #服务端口,默认3306
  • 添加PATH环境变量

    [root@node1 zabbix]# echo "export PATH=/usr/local/zabbix/sbin:$PATH" >> /etc/profile.d/zabbix.sh
    [root@node1 zabbix]# source /etc/profile.d/zabbix.sh 
    [root@node1 zabbix]# echo $PATH
    /usr/local/zabbix/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 设置开机自启

    [root@node1 zabbix]# echo "/usr/local/zabbix/sbin/zabbix_server" >> /etc/rc.d/rc.local #zabbix server端
    [root@node1 zabbix]# echo "/usr/local/zabbix/sbin/zabbix_agentd" >> /etc/rc.d/rc.local #zabbix agent端
    [root@node1 zabbix]# chmod +x /etc/rc.d/rc.local
  • 准备Web服务器并启动Zabbix Web。注:如果你是在CentOS 6上使用Zabbix 3.X,那么你可能需要编译安装PHP(≥5.4),当然你也可以直接在CentOS 6上使用较低版本的Zabbix版本,例如:Zabbix 2.X

    [root@node1 zabbix]# yum -y install php #安装php会自动安装Httpd,反之不成立;如果web服务器打算使用Nginx,则建议使用php-fpm
    # cp -r /usr/src/zabbix-3.4.8/frontends/php/ /usr/local/nginx/html/zabbix #如果是Nginx
    [root@node1 zabbix]# cp -r /usr/src/zabbix-3.4.7/frontends/php/ /var/www/html/zabbix #安装Zabbix Web
    # 配置web server中的php
    [root@node1 zabbix]# systemctl enable httpd.service 
    [root@node1 zabbix]# systemctl start httpd.service
    [root@node1 zabbix]# zabbix_server #如果你想使用特定的配置文件启动Zabbix-server守护进程,可以使用zabbix_server -c CONFIG_FILE_PATH
  1. 访问Web install页面

要解决上面的问题,你需要进行如下配置:

[root@node1 zabbix-3.4.7]# yum -y install php-xmlwriter php-xmlreader php-gd php-bcmath php-mbstring php-mysql #当然,你也可以事先安装这些用到的PHP组件
[root@node1 ~]# vim /etc/php.ini 
  #post_max_size = 8M
  post_max_size = 16M
  #max_input_time = 60
  max_input_time = 300
  #max_execution_time = 30
  max_execution_time = 300
  ;date.timezone =
  date.timezone = Asia/Shanghai
[root@node1 ~]# systemctl restart httpd
  • 继续安装。配置数据库连接,并确认Zabbix Server信息



  • 下载PHP配置文件到Zabbix Web的根目录下。如果你用的是SecureCRT或Xshell,使用rz将配置文件上传到Web home目录,然后刷新当前页面即可

  • 安装完成。

使用Zabbix

附:你可能会遇到的一些包依赖关系错误及解决方法

① ERROR 1452 (23000) at line 8095: Cannot add or update a child row: a foreign key constraint fails (`zabbix`.`sysmaps_elements`, CONSTRAINT `c_sysmaps_elements_2` FOREIGN KEY (`iconid_off`) REFERENCES `images` (`imageid`)) 
#必须先导入images.sql,再导入data.sql,否则data.sql将因为找不到images资源而导入失败

② configure: error: MySQL library not found
# yum -y install mysql-devel

③ configure: error: LIBXML2 library not found
# yum -y install libxml2-devel

④ configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
# yum -y install net-snmp-devel ##可通过yum provides PROGRAM_NAME反向查找

⑤ configure: error: Unable to use libevent (libevent check failed)
# yum -y install libevent-devel

⑥ configure: error: Curl library not found
# yum -y install curl-devel

⑦ zabbix_server: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory
# vi /etc/ld.so.conf
  include ld.so.conf.d/*.conf
  /usr/local/mysql/lib #mysql编译安装的lib目录
# ldconfig
# zabbix_server

 继续浏览关于 Zabbix 的文章

 本文最后更新于 2020/01/07 03:31:15,可能因经年累月而与现状有所差异

 引用转载请注明:芝麻实验室 > 监控 > Zabbix 3.4编译安装全解读

发现共鸣

如是说:我好累啊,我终于变成了自己当初最讨厌的样子。