阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix源码安装流程及报错解决方法

177次阅读
没有评论

共计 8073 个字符,预计需要花费 21 分钟才能阅读完成。

一. Zabbix 的介绍

1) Zabbix 是什么

Zabbix 是一款基于 web 页面的、开源的、企业级的,支持分布式部署的监控软件。

2)2.Zabbix 的作用

  • 监控 Windows 和 Linux 主机上的软硬件状态。

  • 监控各网络设备,如路由器、交换机、防火墙、f5、打印机等。

  • 支持邮件短信微信等平台发送告警通知。

  • 通过 web 页面及图形展示监控数据。

3)Zabbix 的特性

  • 由 Zabbix server 和 agent 程序协同工作,还支持分布式监控,这时需要安装 zabbix proxy 程序

  • Zabbix 分为主动监控 (agent active) 和被动监控:

Zabbix 主动模式:Agent 主动请求 server 获取主动的监控项列表,并主动将监控项内需要检测的数据提交给 server/proxy,zabbix agent 首先向 ServerActive 配置的 IP 请求获取 active items,获取并提交 active tiems 数据值 server 或者 proxy;

Zabbix 被动模式:Server 向 agent 请求获取监控项的数据,agent 返回数据,Server 打开一个 TCP 连接,Server 发送请求 agent.ping,Agent 接收到请求并且响应,Server 处理接收到的数据。

  • 监控手段 (server 或 proxy 通过什么方式来收集监控到的数据) 常用的有:

SNMP(polling,trapping)

IPMI(监控硬件状况)

JMX(监控 Java 应用)

自定义监测(自定义各类监控脚本监测)

  • 灵活的阈值设定:支持自定义问题阈值,即触发器(trigger), 储存于数据库中。
  • 高级的报警设置:自定义报警升级、接受者以及报警的方式, 在配置中允许使用宏变量,可以通过远程命令来实现自动化动作。
  • 实时图像:课通过内置的绘图方式实现监控数据绘图,并可以自定义视图等。
  • 模板:支持模板中添加组监控,并允许继承使用。
  • 网络自动发现及自动注册:自动发现主机、网卡设备、SNMP 等
  • zabbix API:提供程序级别的访问接口,第三方程序可以很快接入

4)zabbix 系统的组成

  • zabbix_server:服务端守护进程,负责处理 zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy 提供的数据,并通过 web 界面呈现这些数据。

  • zabbix_agentd:客户端守护进程,负责收集客户端上的数据并发送给 server 或 proxy。

  • zabbix_get : 服务端工具, 在服务器上执行,用于手动收集客户端的监控数据,可以用于监控测试或者排错。

  • zabbix_sender: 客户端工具, 用于发送数据给 server 或者 proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据;

  • zabbix_proxy : 类似于 server,但它只是一个中转站,当跨地区,跨机房部署 zabbix 系统时,需要用到它,以将它收集到的数据发送给 server。

5)zabbix 的监控流程:

Zabbix 监控完整流程包括:Agentd 安装在被监控的主机上,Agent 负责定期收集客户端本地各项数据,并发送到 Zabbix Server 端,Zabbix Server 收到数据,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。

二. zabbix 安装前准备zabbix3.2

1)zabbix 安装不同硬件配置环境样例:

Zabbix 源码安装流程及报错解决方法

2)zabbix 安装需要的数据库版本:

Zabbix 源码安装流程及报错解决方法

3)zabix 安装需要的前端软件版本:

Zabbix 源码安装流程及报错解决方法

4)zabbix 安装需要的 php 扩展:

Zabbix 源码安装流程及报错解决方法

下面是我源码安装 php 的流程及编译参数:

# wget 
# tar -zxf mirror # cd php-5.6.31/ 
# ./configure --prefix=/usr/local/php5.6  --with-config-file-path=/usr/local/php5.6/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 \ 
    --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache2/bin/apxs
  1. 报错:checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution

解决:# yum -y install bzip-devel
  1. 报错: configure: error: Cannot find libmysqlclient_r under /usr/local/mysql/. Note that the MySQL client library is not bundled anymore!

其实这跟 PHP 没有关系,那是因为在编译 APACHE 的时候,使用 –with-mpm 模块 所以就必须在编译 MYSQL 的时候加上 –enable-thread-safe-client. 参数就行 下面是一些比较简便的办法:

网上主流的办法:1. # cd /usr/local/mysql/lib/mysql/ 
                 # ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so	
                 #可是我并在 /lib 下并没有 mysql 这个库。所有此种方法没有成功 #最后用下面这种办法解决:2.# ln -s /usr/local/mysql/lib /usr/local/mysql/lib64

整合 PHP 和 Apache:

# cp php.ini-development /usr/local/php5.6/etc/php.ini
# 在 apachede 的主配置文件中添加下面两条指令:AddType application/x-httpd-php .php     // 设置 PHP 文件类型
LoadModule php5_module  modules/libphp5.so  // 加载 PHP 模块

#指明 index.php 文件:<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

测试 PHP 是否加载成功:(通过浏览器访问 IP)

#echo "<?php phpinfo(); ?>" /usr/local/apache2/htdocs/index.php

三. 安装 zabbix

1)安装环境:

CentOS7 httpd2.4.27 php5.6.31 mysql5.5.20

2)安装 zabbix_server:

下载安装 zabbix:

# wget  http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
# groupadd zabbix# useradd  -g zabbix zabbix
# tar zxf zabbix-3.2.6.tar.gz
# cd   zabbix-3.2.6
#./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl# make&&make install# ln -s /usr/local/zabbix/sbin/zabbix_*  /usr/local/sbin/

创建 zabbix 数据库并授权:

# /etc/init.d/mysqld restart
# mysql -uroot -p
mysql> CREATE DATABASE zabbix charset=utf8;
mysql> GRANT ALL ON zabbix.* to zabbix@localhost IDENTIFIED BY 'jiajie';mysql> FLUSH PRIVILEGES;
mysql> EXIT#cd zabbix-3.2.6

将 Zabbix 基础 SQL 文件导入 mysql 数据至 Zabbix 数据库,注意 server 端应该导入下面 三个数据库 文件

# cd zabbix-3.2.6
# mysql -uzabbix -pjiajie zabbix<database/mysql/schema.sql 
# mysql -uzabbix -pjiajie zabbix<database/mysql/images.sql 
# mysql -uzabbix -pjiajie zabbix<database/mysql/data.sql

备份 zabbix_server 配置文件,并打开配置文件修改为上面设置的数据库密码DBPassword=jiajie

# cd /usr/local/zabbix/etc/
# cp  zabbix_server.conf{,.bak}# vim zabbix_server.conf
 DBPassword=jiajie  // 数据库授权的密码

同时复制 zabbix_server 启动脚本至 /etc/init.d/ 下

# cd  ../zabbix-3.2.6
# cp  misc/init.d/tru64/zabbix_server  /etc/init.d/zabbix_server
# chmod  o+x  /etc/init.d/zabbix_server

接下来配置 web 端,并重启 zabbix 以及 mysql 服务 并查看相关端口是否起来。zabbix_server 的端口是 10051,agent 的端口是 10050

# cp  -a zabbix-3.2.6/frontends/php/* /usr/local/apache2/htdocs/
# /etc/init.d/mysqld restart
# /etc/init.d/zabbix_server restart

然后修改 PHP 的配置文件,使其支持 zabbix。这个上面就有说明。之后重启 httpd 服务即可。

# vim /usr/local/php5.6/etc/php.ini 
date.timezone = PRC
post_max_size =16M
max_execution_time=300
max_input_time=300
always_populate_raw_post_data = -1
# /etc/init.d/httpd restart

开始安装 zabbix_web 页面,浏览器访问 httpd 服务的 IP 地址即可。根据提示安装即可。

Zabbix 源码安装流程及报错解决方法

 

错误:修改了 php.ini 参数依然报错,显然是那些参数没有生效。这时候查看 php.ini 的路径是否正确。

如果 php.ini 的路径是正确。查看了 php.ini 的路径是正确的,但是还是没有生效。

这时候你可以在 apache 的配置文件中指明 php.ini 的路径。加上 PHPIniDir “/usr/local/php5.6/etc/” 这条指令即可。

重启 apache, 获取到路径。完美解决。

wKiom1mbwuOCZPriAAAsJI7aE6c072.png

Zabbix 源码安装流程及报错解决方法

 

配置数据库连接,输入数据库名、用户、密码,单击Test connection,显示OK,单击下一步即可。

 

 

Zabbix 源码安装流程及报错解决方法

填写 Zabbix Title 显示,可以为空,可以输入自定义的名称:

Zabbix 源码安装流程及报错解决方法

Zabbix 源码安装流程及报错解决方法单击下一步,出现需修创建 zabbix.conf.php 文件,执行如下命令,或者单击 Download the configuration file 下载 zabbix.conf.php 文件,将该文件上传到 /usr/local/apache2/htdocs/conf,并设置可写权限,刷新WEB 页面,最后单击 Finish 即可:

Zabbix 源码安装流程及报错解决方法

登录 Zabbix WEB 界面,默认用户名和密码为:admin/zabbix

 

 

Zabbix 源码安装流程及报错解决方法

 

zabbix 安装完成后, 但是显示服务没有起来一直显示 zabbix server is not running,这时候查看端口和进程, 没有任何 显示。

排错首先查看日志和端口:

# ss -tnl|grep 10051
# ps -ef|grep zabbix
# tail -f  /tmp/zabbix_server.log
 54587:20170821:151740.795 [Z3001] connection todatabase 'zabbix' failed: [2002]
 Can't connect to local MySQL server throughsocket'/var/lib/mysql/mysql.sock' (13)
54587:20170821:151740.795 database is down:reconnecting in 10 seconds
解决办法:一看就是找不到 mysql.sock 的路径,找到 mysql.sock 的路径并打开 zabbix_server 的配置文
件指明 DBSocket 的路径。重启服务即可
# find / -name mysql.sock
/tmp/mysql.sock
# vim/usr/local/zabbix/etc/zabbix_server.conf 
DBSocket=/tmp/mysql.sock

3)安装 zabbix_agent 端:安装客户端和服务端的差不多,这里就直接给出脚本吧:

 

#!/bin/bash#auto install zabbix agent
#by jiajie 20170822#############
ZABBIX_SOFT="zabbix-3.2.6"
INSTALL_DIR="/usr/local/zabbix"
URL=http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
IP=`ifconfig ens33|sed -n '2p'|awk '{print $2}'`
read -p "Please input zabbix_server IP:" SERVER_IP
###jump IP is rightful
if [[$SERVER_IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];then
   	     continue
   	else
            echo -e  "\033[31mIP format error!\033[0m"
	    exit 0
fi

AGENT_INSTALL(){if [ -d $INSTALL_DIR];then
	echo "zabbix_agent is already install..."
        exit 1
    else
        if [! -d /software];then
	    mkdir /software	
        fi
fi
cd /software   	
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI 
groupadd zabbix ;useradd -g zabbix zabbix
wget $URL tar -xf download 
cd  $ZABBIX_SOFT
./configure  --prefix=/usr/local/zabbix  --enable-agent
if [$? -eq 0];then
        make install
    else 
	echo "./configure is error,please check..."
	exit 2
fi
ln -s $INSTALL_DIR/sbin/zabbix_* /usr/local/sbin/
cp  misc/init.d/tru64/zabbix_agentd  /etc/init.d/zabbix_agentd &&
chmod o+x /etc/init.d/zabbix_agentd
#config zabbix agentdcat >$INSTALL_DIR/etc/zabbix_agentd.conf<<EOF
LogFile=/tmp/zabbix_agentd.log
Server=$SERVER_IP
ServerActive=$SERVER_IP
Hostname = $IP 
EOF
#start zabbix agentd
iptables -F
setenforce 0
/etc/init.d/zabbix_agentd restart
}
AGENT_INSTALL

更多 Zabbix 相关教程集合

在 Ubuntu 16.04 服务器上安装 Zabbix 3.2  http://www.linuxidc.com/Linux/2017-07/145519.htm

CentOS 7 LNMP 环境搭建 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140134.htm

Ubuntu 16.04 安装部署监控系统 Zabbix2.4  http://www.linuxidc.com/Linux/2017-03/141436.htm

Zabbix 监控安装部署及警报配置  http://www.linuxidc.com/Linux/2017-03/141611.htm

Zabbix 触发器表达式详解 http://www.linuxidc.com/Linux/2017-03/141921.htm

Ubuntu 16.04 下安装部署 Zabbix3.0  http://www.linuxidc.com/Linux/2017-02/140395.htm

CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm

64 位 CentOS 6.2 下安装 Zabbix 2.0.6   http://www.linuxidc.com/Linux/2014-11/109541.htm

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146467.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计8073字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中