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

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

一. 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安装不同硬件配置环境样例:

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

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

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

下面是我源码安装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 [email protected] 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地址即可。根据提示安装即可。

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

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

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

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

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

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

单击下一步,出现需修创建zabbix.conf.php文件,执行如下命令,或者单击“Download the configuration file”下载zabbix.conf.php文件,将该文件上传到/usr/local/apache2/htdocs/conf,并设置可写权限,刷新WEB页面,最后单击Finish即可:

登录Zabbix WEB界面,默认用户名和密码为:admin/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
时间: 2024-08-02 02:45:17

zabbix源码安装流程及报错解决方法的相关文章

源码安装Apache,报错:Cannot use an external APR with the bundled APR-util和httpd: Could not reliably determine the server&#39;s fully qualified domain name

一.解决APR和APR-util错误: 1.1.安装APR: [[email protected] httpd-2.2.23]# cd srclib/apr [[email protected] apr]# ./configure --prefix=/usr/local/apr root@ganglia apr]# make && make install 1.2.安装APR-util: [[email protected] apr]# cd ../apr-util/ [[email pr

Mac使用pip命令安装selenium包报错解决方法

1.使用命令:  pip install selenium 2.换成命令: python -m pip install selenium 即可成功安装 原文地址:https://www.cnblogs.com/jasmine0112/p/11756182.html

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警

zabbix源码安装,自定义监控205的用户数,有触发器但没有邮件报警 监控端配置:(192.168.4.5) 1基础环境:(实验环境可以关闭防火墙,但生产环境不能关闭,否则不安全,要设置相应规则) [[email protected]桌面]# /etc/init.d/iptables stop [[email protected]桌面]# setenforce 0 2搭建lamp平台,(它运行在lamp平台上) [[email protected]桌面]# yum -y install htt

dl380G8安装windows 2008R2 报错解决办法。

dl380安装windows2008R2时报错,安装包是我一直在用的安装包.我用光盘.优盘还是ILO安装都是报同样的错误.详细错误如下: 1.在复制完系统后重启安装时报下面的错误.我点击确定后系统会重启. windows cannot read the <productkey>setting from the unattend answer file 2.重启后报下面的错误,然后是不停的重启. 原因:是因为HP Intelligent Provisioning版本1.6都存在这个问题. 解决办

Nodejs npm安装socket.io报错解决办法

安装socket.io时,报错,提示需要安装Microsoft visual studio 2005 或 Net framework 2.0 sdk,没有找到vcbuild.exe,解决办法是安装 .NET Framework 2.0 Software Development Kit (SDK) http://www.microsoft.com/en-us/download/details.aspx?id=15354 并将 C:\Program Files\Microsoft Visual St

Centos6.3 PHP编译安装JSON模块报错解决

我在搭建监控系统时候出现JSON模块安装失败,PHP5.3  系统Centos6.3,安装json报错 ZVAL_DELREF 符号未知错误... # Warning: PHP Startup: Unable to load dynamic library '/home/json/json-1.2.1/modules/json.so' - /home/json/json-1.2.1/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown

mysql5.7.17安装方式-与报错解决方式

mysql5.7.17安装方式-与报错解决方式 重点: 出错的地方:在于第三步,因为哪里要检查一下,需要安装微软的一些东西,如果直接跳过会导致后面配置的出错,死活配置不了. 卸载:进入注册表卸载,不然你直接到控制面板哪里会卸载不干净,导致你重新安装的时候出错. 勾选同意,然后点下一步. 然后根据个人需求选择一个安装,一般默认就可以了. 2.左边是你电脑上可以连接到mysql的软件,比如Visual Studio,Eclipse,PyCharm等,中间是需求的版本或者额外组件,右边是状态. 选择一

node-sass报错解决方法

node-sass报错解决方法 node-sass报错解决方法 在Vue.js中,每一个vue文件都是一个组件,在.vue文件中可以将模板,脚本,样式写在一起,便于组织整个组件.在使用template,script时,编写css样式时,都进行的特别顺利,唯独当我想用sass来预处理css时,在style下使用lang='sass'一直报错. 在.vue中是这样的. <template > <div class="haha"> <p> keith +

PS win7_无法打开提示MSVCP120.dll报错解决方法

PS win7_无打开提示MSVCP120.dll报错解决方法 1.PS软件安装后无法打开,并提示MSVCP120.dll"ps无法启动此程序此 因为计算机中丢失msvcp120.dll" 报错提示: 问题解决方法: 下载DirectX Repair工具-安装并运行即可,会自动检测是否丢失msvcp120.dll等一系列套件. 提示图片: 下载链接:http://www.pc6.com/softview/SoftView_57945.html 注:根据自己本身使用系统版本,下载Dire