CentOS7源码编译搭建Zabbix

  • A+
所属分类:服务搭建

Zabbix是一款基于CS架构的开源网络监控平台,可用于监控应用服务、服务器、路由器、交换机等使用情况,在设备出现故障时及时以预设的通知方式告知管理人员,是企业中最常用的运维监控解决方案。

今天给大家分享一下如何编译安装最新版本的Zabbix,教程分为服务端篇、客户端篇、添加主机监控篇,整个部署过程比较漫长,使用虚拟机做实验的朋友,建议分配虚拟机更多硬件资源。

 实验环境

实验平台:VMware虚拟机

服务端操作系统:CentOS 7.4

客户端操作系统:Windows10 / CentOS7.4

服务端IP:192.168.168.200

客户端IP:192.168.168.201 / 192.168.168.202

MySQL:5.7.21

Apache:2.4.33

PHP:7.2.3

Zabbix:3.4.8

 服务端篇

第一步 准备工作

禁用SElinux

  1. [root@Wanghualang-A ~]# setenforce 0    
  2. [root@Wanghualang-A ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config  

禁用防火墙

  1. [root@Wanghualang-A ~]# systemctl stop firewalld.service    
  2. [root@Wanghualang-A ~]# systemctl disable firewalld.service  

安装常用软件

  1. [root@Wanghualang-A ~]# yum -y install wget vim  

第二步 安装Apache

新建Apache用户和用户组

  1. [root@Wanghualang-A ~]# groupadd apache    
  2. [root@Wanghualang-A ~]# useradd -M apache -s /sbin/nologin -g apache  

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@Wanghualang-A ~]# yum -y install make perl gcc gcc-c++ pcre-devel expat-devel  

编译安装软件

  1. [root@Wanghualang-A ~]# cd /usr/local/src/    
  2. [root@Wanghualang-A src]# wget --no-check-certificate http://mirrors.hust.edu.cn/apache//apr/apr-1.6.3.tar.gz    
  3. [root@Wanghualang-A src]# wget --no-check-certificate http://mirrors.hust.edu.cn/apache//apr/apr-util-1.6.1.tar.gz    
  4. [root@Wanghualang-A src]# wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar.gz    
  5. [root@Wanghualang-A src]# tar xzf apr-1.6.3.tar.gz    
  6. [root@Wanghualang-A src]# tar xzf apr-util-1.6.1.tar.gz     
  7. [root@Wanghualang-A src]# tar xzf httpd-2.4.33.tar.gz    
  8. [root@Wanghualang-A src]# mv apr-1.6.3 httpd-2.4.33/srclib/apr    
  9. [root@Wanghualang-A src]# mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util    
  10. [root@Wanghualang-A src]# cd httpd-2.4.33    
  11. [root@Wanghualang-A httpd-2.4.33]# ./configure  --prefix=/usr/local/apache  --enable-charset-lite  --enable-rewrite  --enable-cgi  --enable-so    
  12. [root@Wanghualang-A httpd-2.4.33]# make    
  13. [root@Wanghualang-A httpd-2.4.33]# make install  

配置启动用户和用户组

  1. [root@Wanghualang-A ~]# sed -i 's/User daemon/User apache/' /usr/local/apache/conf/httpd.conf      
  2. [root@Wanghualang-A ~]# sed -i 's/Group daemon/Group apache/' /usr/local/apache/conf/httpd.conf  

配置ServerName,这个不管也没问题。但如果不修改,启动的时候可能会有一个相关提示,建议完美主义者、强迫症晚期患者修改。

  1. [root@Wanghualang-A ~]# sed -i 's/#ServerName www.example.com:80/ServerName localhost.localdomain/' /usr/local/apache/conf/httpd.conf   

配置服务脚本

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/apache/bin/apachectl /etc/init.d/httpd    
  2. [root@Wanghualang-A ~]# chmod 755 /etc/init.d/httpd    
  3. [root@Wanghualang-A ~]# sed -i '1i\#chkconfig:345 85 15' /etc/init.d/httpd    
  4. [root@Wanghualang-A ~]# chkconfig --add httpd  

配置开机启动

  1. [root@Wanghualang-A ~]# chmod +x /etc/rc.d/rc.local  
  2. [root@Wanghualang-A ~]# echo "/etc/init.d/httpd start" >> /etc/rc.local  

第三步 安装MySQL

新建MySQL用户和用户组

  1. [root@Wanghualang-A ~]# groupadd mysql    
  2. [root@Wanghualang-A ~]# useradd -M mysql -s /sbin/nologin -g mysql  

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@Wanghualang-A ~]# yum -y install cmake bison ncurses ncurses-devel  

编译安装软件

  1. [root@Wanghualang-A ~]# cd /usr/local/src/    
  2. [root@Wanghualang-A src]# wget --no-check-certificate https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.21.tar.gz    
  3. [root@Wanghualang-A src]# tar xzf mysql-boost-5.7.21.tar.gz    
  4. [root@Wanghualang-A src]# cd mysql-5.7.21/    
  5. [root@Wanghualang-A mysql-5.7.21]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  -DSYSCONFDIR=/etc  -DSYSTEMD_PID_DIR=/usr/local/mysql  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_PERFSCHEMA_STORAGE_ENGINE=1  -DMYSQL_DATADIR=/usr/local/mysql/data  -DWITH_BOOST=boost  -DWITH_SYSTEMD=1    
  6. [root@Wanghualang-A mysql-5.7.21]# make    
  7. [root@Wanghualang-A mysql-5.7.21]# make install  

建议先删除系统默认创建的MySQL配置文件,再手动创建配置文件。

  1. [root@Wanghualang-A ~]# rm -rf /etc/my.cnf    
  2. [root@Wanghualang-A ~]# vim /etc/my.cnf   

红字部分为配置文件内容:

  1. [client]    
  2. port = 3306    
  3. default-character-set=utf8    
  4. socket = /usr/local/mysql/mysql.sock  
  5.     
  6. [mysql]    
  7. port = 3306    
  8. default-character-set=utf8    
  9. socket = /usr/local/mysql/mysql.sock    
  10.     
  11. [mysqld]    
  12. user = mysql    
  13. basedir = /usr/local/mysql    
  14. datadir = /usr/local/mysql/data    
  15. port = 3306    
  16. character_set_server=utf8    
  17. pid-file = /usr/local/mysql/mysqld.pid    
  18. socket = /usr/local/mysql/mysql.sock    
  19. server-id = 1    
  20.     
  21. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES  

配置命令环境变量

  1. [root@Wanghualang-A ~]# echo "export PATH="/usr/local/mysql/bin:$PATH">> /etc/profile        
  2. [root@Wanghualang-A ~]# source /etc/profile   

更改数据库目录属主、属组

  1. [root@Wanghualang-A ~]# chown -R mysql:mysql /usr/local/mysql  

初始化数据库

  1. [root@Wanghualang-A ~]# /usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql  --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data  

配置开机启动脚本

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/    
  2. [root@Wanghualang-A ~]# systemctl daemon-reload    
  3. [root@Wanghualang-A ~]# systemctl enable mysqld    
  4. [root@Wanghualang-A ~]# systemctl start mysqld  

修改数据库root密码,默认密码为空,教程中修改为123456。

  1. [root@Wanghualang-A ~]# mysqladmin -uroot password '123456'  

再次编辑/etc/my.cnf,在[client] 模块下添加以下内容:

  1. host=localhost  
  2. user=root  
  3. password=123456  

最终修改如下:

  1. [client]    
  2. port = 3306    
  3. default-character-set=utf8    
  4. socket = /usr/local/mysql/mysql.sock  
  5. host=localhost  
  6. user=root  
  7. password=123456  

重启数据库

  1. [root@Wanghualang-A ~]# systemctl restart mysqld  

再次编辑/etc/my.cnf这一步不是必须的,如果不修改,那么每次在命令行中输入数据库相关密码的时候变会弹出一个安全提醒:

Warning: Using a password on the command line interface can be insecure。

第四步 安装PHP

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@Wanghualang-A ~]# yum -y install libjpeg-devel libpng-devel freetype-devel libxml2-devel zlib-devel curl-devel libicu-devel openssl-devel openldap-devel  

LDAP在64位操作系统似乎存在一个库文件关联的问题,建议先复制相关文件,不然接下来的configure阶段会报错。

  1. [root@Wanghualang-A ~]# cp -rfp /usr/lib64/libldap* /usr/lib/  

编译安装软件

  1. [root@Wanghualang-A ~]# cd /usr/local/src/       
  2. [root@Wanghualang-A src]# wget --no-check-certificate http://cn2.php.net/distributions/php-7.2.3.tar.gz      
  3. [root@Wanghualang-A src]# tar xzf php-7.2.3.tar.gz         
  4. [root@Wanghualang-A src]# cd php-7.2.3  
  5. [root@Wanghualang-A php-7.2.3]# ./configure  --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql-sock=/usr/local/mysql/mysql.sock  --with-pdo-mysql  --with-mysqli  --with-zlib  --with-curl  --with-ldap  --with-gettext  --with-openssl  --with-gd  --with-jpeg-dir  --with-png-dir  --with-freetype-dir  --enable-mbstring  --enable-bcmath  --enable-xml  --enable-session  --enable-ftp  --enable-pdo  --enable-tokenizer  --enable-zip  --enable-intl  --enable-sockets  

configure结束后,在这里先停一会吧,继续make的话肯定会报错的,具体报错内容:

/usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

从表面上看,明显就是configure配置环境时出现错误导致的,但在configure结束后,echo $?的结果却是0,按理说是完美的。至于为什么报错暂且先不管吧,先使用邪道方法去完成编译工作吧,在此感谢PHP论坛的某位国外大神分享的解决方案。

编辑PHP源码目录下的Makefile文件

  1. [root@Wanghualang-A ~]# vim /usr/local/src/php-7.2.3/Makefile  

大约在第104行,找到“EXTRA_LIBS”打头的一大串配置信息,在该行的尾部添加:-llber,最终修改如图:

CentOS7源码编译搭建Zabbix

修改完毕后,再进行make就不会报错了,安装完成后确保没有任何报错,如下图:

CentOS7源码编译搭建Zabbix

  1. [root@Wanghualang-A php-7.2.3]# make        
  2. [root@Wanghualang-A php-7.2.3]# make install  

创建PHP配置文件

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/src/php-7.2.3/php.ini-development /usr/local/php/lib/php.ini  

配置数据库接口

  1. [root@Wanghualang-A ~]# sed -i 's/mysqli.default_socket =/mysqli.default_socket = \/usr\/local\/mysql\/mysql.sock/' /usr/local/php/lib/php.ini  

第五步 配置Apache解析PHP

  1. [root@Wanghualang-A ~]# vim /usr/local/apache/conf/httpd.conf  

大约在第256行,找到:

  1. <IfModule dir_module>    
  2. DirectoryIndex index.html    
  3. </IfModule>   

在index.html后面新增index.php,注意之间有一个空格键,最终修改如下:

  1. <IfModule dir_module>      
  2. DirectoryIndex index.html index.php  
  3. </IfModule>   

大约在第393行,找到:

  1. AddType application/x-compress .Z    
  2. AddType application/x-gzip .gz .tgz  

在下面添加AddType application/x-httpd-php .php和AddType application/x-httpd-php-source .phps,最终修改如下:

  1. AddType application/x-compress .Z    
  2. AddType application/x-gzip .gz .tgz    
  3. AddType application/x-httpd-php .php    
  4. AddType application/x-httpd-php-source .phps  

第六步 安装Zabbix后端的重要准备工作

单独写这一步的目的是为了安装PHP7的Event扩展,如果跳过这一步,在接下来编译安装Zabbix后端的configure阶段肯定会报错,具体报错内容为:Unable to use libevent。当然大家也可以选择直接编译安装Zabbix,真切地感受一下这个报错,这样印象更加深刻。

安装php7的Event扩展,需要先安装libevent库,这里注意一下,是libevent库,不是libevent扩展。目前libevent扩展不支持PHP7,只能使用Event扩展。

  1. [root@Wanghualang-A ~]# cd /usr/local/src/    
  2. [root@Wanghualang-A src]# wget --no-check-certificate https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz    
  3. [root@Wanghualang-A src]# tar xzf libevent-2.1.8-stable.tar.gz     
  4. [root@Wanghualang-A src]# cd libevent-2.1.8-stable    
  5. [root@Wanghualang-A libevent-2.1.8-stable]# ./configure --prefix=/usr    
  6. [root@Wanghualang-A libevent-2.1.8-stable]# make    
  7. [root@Wanghualang-A libevent-2.1.8-stable]# make install  

安装autoconf,如果不安装这个软件包,会影响接下来的Event编译操作。

  1. [root@Wanghualang-A ~]# yum -y install autoconf  

安装Event扩展,如果未安装autoconf,执行/usr/local/php/bin/phpize后,也无法生成configure文件。

  1. [root@Wanghualang-A ~]# cd /usr/local/src/    
  2. [root@Wanghualang-A src]# wget --no-check-certificate https://pecl.php.net/get/event-2.3.0.tgz    
  3. [root@Wanghualang-A src]# tar xzf event-2.3.0.tgz  
  4. [root@Wanghualang-A src]# cd event-2.3.0    
  5. [root@Wanghualang-A event-2.3.0]# /usr/local/php/bin/phpize    
  6. [root@Wanghualang-A event-2.3.0]# ./configure --with-php-config=/usr/local/php/bin/php-config    
  7. [root@Wanghualang-A event-2.3.0]# make    
  8. [root@Wanghualang-A event-2.3.0]# make install   

修改PHP配置文件,加入event扩展。

  1. [root@Wanghualang-A ~]# vim /usr/local/php/lib/php.ini  

建议大家先文本定位到Dynamic Extensions,然后向下找一个喜欢的位置,插入一句:extension=event.so

教程中是在第908行的;extension=shmop下面插入extension=event.so

第七步 安装Zabbix网站前端的重要准备工作

单独写这一步的目的是为了配置PHP相关重要参数,如果跳过这一步,在接下来安装Zabbix网站前端的Check of pre-requisites阶段肯定会报错,具体报错内容为下图。当然大家也可以选择直接安装Zabbix网站前端,真切地感受一下这些报错,这样印象更加深刻。

CentOS7源码编译搭建Zabbix

编辑PHP配置文件

  1. [root@Wanghualang-A ~]# vim /usr/local/php/lib/php.ini  

大约在第378行,找到:

  1. max_execution_time = 30  

把30修改为300,最终修改如下:

  1. max_execution_time = 300  

大约在第388行,找到:

  1. max_input_time = 60  

把60修改为300,最终修改如下:

  1. max_input_time = 300  

大约在第665行,找到:

  1. post_max_size = 8M  

把8M修改为16M,最终修改如下:

  1. post_max_size = 16M  

大约在933行,找到:

  1. ;date.timezone =  

去掉前面的注释符号,在等号右边填写时区,比如Asia/Shanghai,最终修改如下:

  1. date.timezone = Asia/Shanghai  

第八步 安装Zabbix后端

新建Zabbix用户和用户组

  1. [root@Wanghualang-A ~]# groupadd zabbix    
  2. [root@Wanghualang-A ~]# useradd -M zabbix -s /sbin/nologin -g zabbix  

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@Wanghualang-A ~]# yum -y install net-snmp-devel unixODBC unixODBC-devel mysql-connector-odbc  

编译安装软件,说明一下,因为zabbix源码包的官方下载链接存在特殊符号,我已把官方源码包上传至我的服务器上,教程中就直接使用我服务器的文件外链。安全强迫症晚期患者可以前往Zabbix官方网站下载源码包:

https://www.zabbix.com/download_sources

  1. [root@Wanghualang-A ~]# cd /usr/local/src/  
  2. [root@Wanghualang-A src]# wget --no-check-certificate http://download.wanghualang.com/zabbix-3.4.8.tar.gz  
  3. [root@Wanghualang-A src]# tar xzf zabbix-3.4.8.tar.gz         
  4. [root@Wanghualang-A src]# cd zabbix-3.4.8    
  5. [root@Wanghualang-A zabbix-3.4.8]# ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql --with-libxml2 --with-unixodbc        
  6. [root@Wanghualang-A zabbix-3.4.8]# make        
  7. [root@Wanghualang-A zabbix-3.4.8]# make install  

创建zabbix数据库,说明一下,教程中在第三步的末尾部分,已经在[Client]模块中配置了数据库相关用户信息,所以直接mysql便可登陆到数据库。如果未配置[Client]模块,那么则需要使用mysql -u用户名 -p密码的方式登陆数据库。

  1. [root@Wanghualang-A ~]# mysql  
  2. mysql> create database zabbix;    
  3. mysql> flush privileges;    
  4. mysql> exit   

导入Zabbix数据库模版,这里也是一样,配置过[Client]模块就可以免密导入。

  1. [root@Wanghualang-A ~]# mysql zabbix < /usr/local/src/zabbix-3.4.8/database/mysql/schema.sql    
  2. [root@Wanghualang-A ~]# mysql zabbix < /usr/local/src/zabbix-3.4.8/database/mysql/images.sql    
  3. [root@Wanghualang-A ~]# mysql zabbix < /usr/local/src/zabbix-3.4.8/database/mysql/data.sql  

配置Zabbix

  1. [root@Wanghualang-A ~]# vim /etc/zabbix/zabbix_server.conf  

大约在第38行,找到:

  1. LogFile=/tmp/zabbix_server.log  

建议把日志文件统一放在/var/log/zabbix/,最终修改如下:

  1. LogFile=/var/log/zabbix/zabbix_server.log  

大约在第95行,找到:

  1. DBName=zabbix  

因为教程中使用的zabbix数据库名称恰好就是zabbix,所以这里不需要修改,如果大家使用的是其他数据库名称,则需要手动修改。

大约在第111行,找到:

  1. DBUser=zabbix  

教程中统一使用数据库root用户来管理,最终修改如下:

  1. DBUser=root  

大约在第199行,找到:

  1. DBPassword=   

将数据库密码修改为123456,最终修改如下:

  1. DBPassword=123456   

大约在第340行,找到:

  1. ListenIP=127.0.0.1    

修改监听IP地址为本机IP地址,即192.168.168.200,最终修改如下:

  1. ListenIP=192.168.168.200   

创建新建Zabbix日志目录,并赋权。

  1. [root@Wanghualang-A ~]# mkdir /var/log/zabbix      
  2. [root@Wanghualang-A ~]# chown zabbix:zabbix /var/log/zabbix/  

配置环境变量

  1. [root@Wanghualang-A ~]# echo "export PATH="/usr/local/zabbix/bin:$PATH">> /etc/profile        
  2. [root@Wanghualang-A ~]# source /etc/profile  

配置zabbix_server启动脚本

  1. [root@Wanghualang-A ~]# cp -rf /usr/local/src/zabbix-3.4.8/misc/init.d/fedora/core/zabbix_server /etc/init.d/    
  2. [root@Wanghualang-A ~]# chmod 755 /etc/init.d/zabbix_server    
  3. [root@Wanghualang-A ~]# chkconfig --add zabbix_server        
  4. [root@Wanghualang-A ~]# sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server  

配置zabbix_server开机启动

  1. [root@Wanghualang-A ~]# echo "/etc/init.d/zabbix_server start" >> /etc/rc.local  

删除网站根目录默认文件,拷贝Zabbix网站文件到网站根目录。

  1. [root@Wanghualang-A ~]# rm -rf /usr/local/apache/htdocs/*  
  2. [root@Wanghualang-A ~]# cp -rf /usr/local/src/zabbix-3.4.8/frontends/php/* /usr/local/apache/htdocs/  

给网站根目录赋权

  1. [root@Wanghualang-A ~]# chown -R apache:apache /usr/local/apache/htdocs/  

创建MySQL客户端动态链接库

  1. [root@Wanghualang-A ~]# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf      
  2. [root@Wanghualang-A ~]# ldconfig    

启动Apache、Zabbix_server

  1. [root@Wanghualang-A ~]# service zabbix_server start        
  2. [root@Wanghualang-A ~]# service httpd start  

两个服务可以正常启动后,强烈建议大家重启一次操作系统。

  1. [root@Wanghualang-A ~]# reboot  

第九步 安装Zabbix前端

打开主流浏览器,访问:http://192.168.168.200,会跳转至Zabbix网站安装向导。

CentOS7源码编译搭建Zabbix

教程中的第六、第七步花了那么多时间,最终目的就是为了见证此刻,如下图所有先决条件完美通过。

CentOS7源码编译搭建Zabbix

连接数据库,配置数据库相关信息。

CentOS7源码编译搭建Zabbix

配置服务器细节,这里的Host建议大家填写具体的IP地址,不要使用localhost。

CentOS7源码编译搭建Zabbix

再次检查相关信息是否更改。

CentOS7源码编译搭建Zabbix

安装Zabbix网站前端成功。

CentOS7源码编译搭建Zabbix

打开主流浏览器,访问:http://192.168.168.200,默认用户名Admin,默认密码为zabbix。

CentOS7源码编译搭建Zabbix

进入主界面,可以先做一些基础的优化,点击右上角的用户头像标志,进入设置。

CentOS7源码编译搭建Zabbix

语言选择中文。

CentOS7源码编译搭建Zabbix

无论哪个版本,中文翻译都是不完美的,要么漏翻,要么翻译得难以理解,有兴趣深入折腾Zabbix的朋友建议使用英文,服务端篇就到此结束。

CentOS7源码编译搭建Zabbix

 客户端篇

客户端篇中主要介绍Windows、CentOS这两个常用的操作系统应该如何配置Zabbix Agent,先从大家熟悉的Windows开始。

Windows10

第一步 准备工作

禁用防火墙以及某些国产安全防护软件,比如360辣鸡卫士。

第二步 安装Zabbix Agent

下载地址:https://www.zabbix.com/download_agents

解压压缩包到非中文目录下,教程中是解压到C盘根目录,使用Notepad++编辑C:\conf\zabbix_agentd.win.conf

大约第23行,找到:

  1. LogFile=c:\zabbix_agentd.log  

为了省事,教程中便按照默认设置,日志直接存放在C盘根目录,不必修改。

大约第86行,找到:

  1. Server=127.0.0.1  

把127.0.0.1修改为Zabbix服务端IP地址,即192.168.168.200,最终修改如下:

  1. Server=192.168.168.200  

大约第127行,找到:

  1. ServerActive=127.0.0.1  

把127.0.0.1修改为Zabbix服务端IP地址+端口号,即192.168.168.200:10051,最终修改如下:

  1. ServerActive=192.168.168.200:10051  

大约第138行,找到:

  1. Hostname=Windows host  

把Windows host修改为同一网络中独一无二的名字,比如wanghualang.com.1,最终修改如下:

  1. Hostname=wanghualang.com.1  

第三步 启动Zabbix Agent

进入在C:\bin\win64,创建一个批处理安装脚本,比如install.bat,脚本内容如下:

  1. zabbix_agentd.exe -c C:\conf\zabbix_agentd.win.conf -i  

依然是在C:\bin\win64,再创建一个批处理启动脚本,比如start.bat,脚本内容如下:

  1. zabbix_agentd.exe -c C:\conf\zabbix_agentd.win.conf -s  

先启动install.bat,再启动start.bat,日后只要启动start.bat,可以删除install.bat,Windows10安装配置Zabbix Agent到此结束。

CentOS 7.4

第一步 准备工作

禁用SElinux

  1. [root@CentOS-7-4 ~]# setenforce 0    
  2. [root@CentOS-7-4 ~]# sed -ri 's#^(SELINUX=).*#\1disabled#g' /etc/selinux/config  

禁用防火墙

  1. [root@CentOS-7-4 ~]# systemctl stop firewalld.service    
  2. [root@CentOS-7-4 ~]# systemctl disable firewalld.service   

安装常用软件

  1. [root@CentOS-7-4 ~]# yum -y install wget vim  

第二步 安装Zabbix Agent

精简版的操作系统,在接下来的configure阶段肯定会出现缺失相关开发包的报错,根据提示安装相关开发包即可。教程中为了做到一气呵成,先提前安装好需要的开发包。

  1. [root@CentOS-7-4 ~]# yum -y install gcc gcc-c++ pcre-devel  

新建Zabbix用户、用户组

  1. [root@CentOS-7-4 ~]# groupadd zabbix  
  2. [root@CentOS-7-4 ~]# useradd -M zabbix -s /sbin/nologin -g zabbix  

编译安装软件

  1. [root@CentOS-7-4 ~]# cd /usr/local/src/  
  2. [root@CentOS-7-4 src]# wget --no-check-certificate http://download.wanghualang.com/zabbix-3.4.8.tar.gz  
  3. [root@CentOS-7-4 src]# tar xzf zabbix-3.4.8.tar.gz   
  4. [root@CentOS-7-4 src]# cd zabbix-3.4.8  
  5. [root@CentOS-7-4 zabbix-3.4.8]# ./configure --prefix=/usr --sysconfdir=/etc/zabbix  --enable-agent  
  6. [root@CentOS-7-4 zabbix-3.4.8]# make  
  7. [root@CentOS-7-4 zabbix-3.4.8]# make install  

创建新建Zabbix日志目录,并赋权。

  1. [root@CentOS-7-4 ~]# mkdir /var/log/zabbix  
  2. [root@CentOS-7-4 ~]# chown -R zabbix:zabbix /var/log/zabbix/  

添加zabbix到系统服务

  1. [root@CentOS-7-4 ~]# echo "zabbix-agent 10050/tcp #ZabbixAgent" >> /etc/services    
  2. [root@CentOS-7-4 ~]# echo "zabbix-agent 10050/udp #ZabbixAgent" >> /etc/services    
  3. [root@CentOS-7-4 ~]# echo "zabbix-trapper 10051/tcp #ZabbixTrapper" >> /etc/services    
  4. [root@CentOS-7-4 ~]# echo "zabbix-trapper 10051/udp #ZabbixTrapper" >> /etc/services  

配置Zabbix_Agent

  1. [root@CentOS-7-4 ~]# vim /etc/zabbix/zabbix_agentd.conf  

大约在第30行,找到:

  1. LogFile=/tmp/zabbix_agentd.log  

建议把日志文件统一放在/var/log/zabbix/,最终修改如下:

  1. LogFile=/var/log/zabbix/zabbix_agentd.log  

大约在第93行,找到:

  1. Server=127.0.0.1  

把127.0.0.1修改为Zabbix服务端IP地址,即192.168.168.200,最终修改如下:

  1. Server=192.168.168.200  

大约在第134行,找到:

  1. ServerActive=127.0.0.1  

把127.0.0.1修改为Zabbix服务端IP地址+端口号,即192.168.168.200:10051,最终修改如下:

  1. ServerActive=192.168.168.200:10051  

大约在第145行,找到:

  1. Hostname=Zabbix server  

把Zabbix server修改为同一网络中独一无二的名字,比如wanghualang.com.2,最终修改如下:

  1. Hostname=wanghualang.com.2  

大约在第280行,找到:

  1. UnsafeUserParameters=0  

去掉前面的注释符号,把0改为1,最终修改如下:

  1. UnsafeUserParameters=1  

配置Zabbix Agent启动脚本

  1. [root@CentOS-7-4 ~]# cp -rf /usr/local/src/zabbix-3.4.8/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/  
  2. [root@CentOS-7-4 ~]# chmod +x /etc/init.d/zabbix_agentd  
  3. [root@CentOS-7-4 ~]# chkconfig --add zabbix_agentd  
  4. [root@CentOS-7-4 ~]# sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/#g" /etc/init.d/zabbix_agentd  

启动服务并配置开机启动

  1. [root@CentOS-7-4 ~]# service zabbix_agentd start  
  2. [root@CentOS-7-4 ~]# chmod +x /etc/rc.d/rc.local  
  3. [root@CentOS-7-4 ~]# echo "/etc/init.d/zabbix_agentd start" >> /etc/rc.local  

建议大家经常关注日志信息,确保当前服务正常运行,CentOS7安装配置Zabbix Agent到此结束。

  1. [root@CentOS-7-4 ~]# tail /var/log/zabbix/zabbix_agentd.log  

 添加监控主机篇

第一步 检测监控主机

客户端篇完成后,不急着去Zabbix前端操作,先在服务端主机上做一个简单的检测监控主机操作,一切正常的话,是可以看到对应两个IP地址的主机名,如下图:

CentOS7源码编译搭建Zabbix

  1. [root@Wanghualang-A ~]# zabbix_get -s 192.168.168.201 -p 10050 -k "system.hostname"  
  2. [root@Wanghualang-A ~]# zabbix_get -s 192.168.168.202 -p 10050 -k "system.hostname"  

第二步 添加监控主机

打开主流浏览器,访问:http://192.168.168.200,默认用户名Admin,默认密码为zabbix,进入主界面后,依次点击配置-主机-创建主机。

CentOS7源码编译搭建Zabbix

首先添加一台Windows10操作系统的主机,当前页面默认停留在主机选项卡上,简单介绍几个主机选项卡中的常用选项。

主机名称:指的是客户端篇中所说的同一网络中独一无二的名字,即wanghualang.com.1

可见的名称:指的就是备注名,这个可以随意,自己看得懂就行,教程中使用SexInSex。

群组:可以选择Zabbix默认生成的常用群组,也可以使用新群组,教程中使用新群组:wanghualang.com

agent代理程序的接口:指的是被监控主机的接口信息,比如IP地址+端口号,也就是192.168.168.201:10050

CentOS7源码编译搭建Zabbix

更多主机选项卡上的内容就按需填写吧,接着切换到模块选项卡,点击选择,会弹出一个模版选择页面,这些均是Zabbix自带的监控模版。

CentOS7源码编译搭建Zabbix

这是一台Windows10操作系统的主机,教程中选择两个模版,分别是Template OS Windows、Template Module ICMP Ping。第一个模版主要监控常见的CPU使用率、内存使用率、硬盘使用率等等基础信息,第二个模版则是监控主机是否离线。选择完模版后,就会回到上一级页面,先点击字体较小的添加,再点击字体较大的蓝色添加按钮,第一台主机添加完成。

CentOS7源码编译搭建Zabbix

参考第一台主机的添加方法,再把第二台CentOS 7.4操作系统的主机也添加进去,模版注意选择Template OS Linux即可。两台主机添加完毕后,均会显示在主机页面,等待一分钟左右,可用性一栏便会出现绿色的ZBX图案,如下图,添加监控主机篇结束。

CentOS7源码编译搭建Zabbix

 监控实战篇

服务端篇、客户端篇、添加监控主机篇,都是前戏而已,真正好玩的是各种监控实战内容,这些日后再分享吧。

CentOS7源码编译搭建Zabbix

CentOS7源码编译搭建Zabbix

资源简介 文件名称:MySQL & Apache & PHP & Zabbix 文件版本:5.7.21 & 2.4.33 & 7.2.3 & 3.4.8 运行平台:Linux
下载地址
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: