zabbix源码搭建

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

参考文档:https://www.zabbix.com/documentation/2.0/manual/installation/install#installing_zabbix_web_interface


前提:先搭好一个LNMP,PHP需要支持gd库,要不然后面web界面会有比较坎坷。。。

配置PHP对GD库的支持    http://10630401.blog.51cto.com/10620401/1976886



一、创建用户

groupadd zabbix

useradd -g zabbix zabbix


二、下载安装zabbix

yum install net-snmp-devel libevent-devel

#先安装一些依赖库(编译过程中可能会有依赖的报错,缺什么库装什么就好)


cd /tmp

wget "http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.3/zabbix-3.4.3.tar.gz"

tar zxf zabbix-3.4.3.tar.gz

cd /tmp/zabbix-3.4.3

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

#在zabbix server一般充当两个角色:server、angent,所以上面的配置参数也同时加上了--enable-agent。


make install


三、初始化数据库

mysql -uroot -p123456

mysql> create database zabbix default charset utf8;

#创建数据库请别忘记加default charset utf8,有可能会导致你出现中文乱码问题

cd /tmp/zabbix-3.4.3/database

mysql -uroot -p123456 zabbix < ./mysql/schema.sql

mysql -uroot -p123456 zabbix < ./mysql/images.sql

mysql -uroot -p123456 zabbix < ./mysql/data.sql

#zabbix server与proxy需要数据库,angent不需要。尤其要注意的是proxy只需要导入一个schema.sql文件,而server一共要导入3个sql文件。


四、配置zabbix服务端

cd /usr/local/etc/

vim zabbix_server.conf

    DBName=zabbix

    DBUser=root

    DBPassword=123456

    DBPort=3306


五、启动zabbix_server服务

/usr/local/sbin/zabbix_server

netstat -ntlp(默认端口10051)


六、配置zabbix客户端

cd /usr/local/etc/

vim zabbix_server.conf

    Server=127.0.0.1

    ServerActive=127.0.0.1

    Hostname=Zabbix server

#其中Server和ServerActive都指定zabbixserver的IP地址,不同的是,前者是被动后者是主动。也就是说Server这个配置是用来允许127.0.0.1这个ip来我这取数据。而serverActive的127.0.0.1的意思是,客户端主动提交数据给他


七、启动zabbix_agent服务

/usr/local/sbin/zabbix_agentd

netstat -ntlp(默认端口10050)

至此,zabbix这块就装好了,下面是把zabbix-web接入nginx


八、nginx配置虚拟站点

vim nginx.conf

    server {

        listen       80;

        server_name  zabbix.test.com;

        root   /data/server/zabbix;          #这个就是zabbix-web的根目录

        index  index.html index.htm index.php;


        location ~* .*\.(php|html)?$

        {

             fastcgi_pass  127.0.0.1:9000;

             fastcgi_index index.php;

             include fastcgi.conf;

        }

    }

#别忘了重新加载nginx配置文件哦!


九、导入zabbix-web的PHP文件

cp -rp /tmp/zabbix-3.4.3/frontends/php/* /data/server/zabbix



十、在线配置zabbix

没有DNS解析的话,就直接本地绑host(IP    zabbix.test.com

浏览器打开http://zabbix.test.com/zabbix 到安装界面


1)PHP需求检查(zabbix的前端是PHP语言写的,php编译的有问题的话这个问题就会很多,表示尝试了n多次,终于成功了)

72d5afc460916cba9b1f6312c93010c3.png

2)mysql配置(database host记得要写127.0.0.1 除非你对数据库做授权)

713020d90e48f5bce5548f491918c78b.png

3)zabbix服务端的详细信息

d218376167a573517d7b28547a5c7038.png

4)zabbix安装前的详细信息

a976d27bf306a262e102c4df40f4be26.png

5)安装完成,终于看到胜利的曙光

5823e7cb34da5e43cdf74ea35f914db1.png

6)登陆zabbix,默认用户名:Admin,密码:zabbix

8cdb389b14f935fc181395d868ca2682.png

7)zabbix的监控页面

6a41c75c993ccd30648425223c7f6405.png




PS:安装过程中可能出现的问题汇总


问题1:error while loading shared libraries:xxx.so.x

解决办法:现在机器上找下这个库find / -name 'libmysqlclient.so.18'

1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令

ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.


2)如果这个共享库文件安装到了/usr/local/lib或其它目录下,需要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

# echo "/usr/local/lib" >> /etc/ld.so.conf

# ldconfig



问题2:zabbix_web安装中PHP需求检测fail

1)PHP 一些参数的大小问题

解决:在php.ini文件里面按照指定的大小修改相关参数,完了之后需要重启php,刷新zabbix页面即可


2)always-populate-raw-post-data = -1的问题

解决方案:vim /data/server/zabbix/include/classes/setup/CFrontendSetup.php

找到下面代码、关于always-populate-raw-post-data;

添加 $current = -1;

public function checkPhpAlwaysPopulateRawPostData() {

                $current = ini_get('always_populate_raw_post_data');

                $current = -1;

                return array(

                        'name' => _('PHP always_populate_raw_post_data'),

                        'current' => ($current != -1) ? _('on') : _('off'),

                        'required' => _('off'),

                        'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,

                        'error' => _('PHP always_populate_raw_post_data must be set to -1.')

                );

        }

3)有些模块没有编译进去的,那你只能重新编译PHP了,下面是我编译php的一些参数,提供参考!

./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd  --enable-sockets --enable-bcmath  --enable-mbstring --with-gd --with-zlib --with-gettext --with-png-dir=/usr/local/include/libpng16/  --with-jpeg-dir=/usr/local/include  --with-freetype-dir=/usr/local/include/freetype2/freetype


具体请看PHP的源码编译篇!




     本文转自西鼠 51CTO博客,原文链接:http://blog.51cto.com/10630401/1976861,如需转载请自行联系原作者




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
7月前
|
监控 关系型数据库 MySQL
centos7 zabbix-service 源码编译 安装部署服务端 和 常见安装错误
centos7 zabbix-service 源码编译 安装部署服务端 和 常见安装错误
109 0
|
Web App开发 监控 关系型数据库
|
28天前
|
监控 Java Shell
监控堆外第三方监控工具Zabbix
监控堆外第三方监控工具Zabbix
37 5
|
25天前
|
监控 安全 前端开发
使用 Zabbix 监控堆外应用
使用 Zabbix 监控堆外应用
43 9
|
24天前
|
监控 数据可视化 Java
zabbix全面的监控能力
zabbix全面的监控能力
51 7
|
4月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?