设为首页 收藏本站
查看: 2194|回复: 0

[经验分享] zabbix源码安装过程出现的错误

[复制链接]

尚未签到

发表于 2019-1-25 09:03:04 | 显示全部楼层 |阅读模式
  原文地址:http://www.iyunv.com/thread-92070-1-2.html
  之前实验过yum安装LAMP,yum安装zabbix,源码安装还是头一次,下面分享一下安装的具体过程和安装过程中遇到的各种错误及解决方法。
  zabbix官网下载地址:http://www.zabbix.com/download.php
  选择Zabbix Sources 下载2.2.9版本;
  安装环境:linux centos6.6 32位版本 php5.4.37、nginx1.6.2、mysql5.1.40
  1、编译安装zabbix2.2.9
1  2
  3
# tar -zxvf zabbix-2.2.9.tar.gz  # cd zabbix-2.2.9/
  # ./configure --prefix=/usr/local/zabbix-2.2.9 --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
  编译报错1:
  configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
  编译安装zabbix时,配置时报以上错,导致检测系统环境不成功。提示unableto find net-snmp-config,说明缺少相关的依赖性。
  这是因为,在linux中,大多数软件都是开源的,并且可以自由使用。因此在开发时可以用到其他的软件包时我们直接就拿来了,不用在花功夫去重新编写,这就造成了所谓的依赖性。
  解决办法一:
  找出net-snmp-config属于哪个软件包,然后安装即可。
  # yum provides */net-snmp-config,发现net-snmp-config属于软件包net-snmp-devel,yum安装该软件包,解决该问题。
  解决办法二:
  在配置时,我们加上了--with-net-snmp这个选项,因此需要检查系统环境是否有该软件包支持。因此,在配置时,不要加上--with-net-snmp这个选项就不会报错。
  编译错误2:configure: error: Curl library not found
  yum install -y curl curl-devel  安装curl包即可,安装完成后重新编译。
1# make && make install  2、创建用户
  为了安全考虑zabbix使用普通用户运行,需要创建一个用户运行它。不创建用户的话无法运行启动进程。
1  2
# groupadd zabbix  # useradd -g zabbix zabbix
  3、修改配置文件php.ini,路径为:/usr/local/php/etc/php.ini
1  2
  3
  4
  5
  6
max_execution_time = 300  memory_limit = 128M
  post_max_size = 16M
  upload_max_filesize = 2M
  max_input_time = 300
  date.timezone = Asia/Shanghai
  4、创建zabbix数据库,并导入数据库,指定字符集为utf8,否则web如显示中文会出现乱码;授权zabbix用户;
1  2
  3
  4
  5
  6
  7
# mysql -uroot -pxxxxxxx  mysql> create database zabbix character set utf8;
  mysql> quit
  # mysql -uroot -pxxxxxxx --default-character-set=utf8 zabbix < database/mysql/schema.sql
  # mysql -uroot -pxxxxxxx --default-character-set=utf8 zabbix < database/mysql/images.sql
  # mysql -uroot -pxxxxxxx --default-character-set=utf8 zabbix < database/mysql/data.sql
  zabbix server与proxy需要数据库,angent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件。proxy只需要导入一个表结构schema.sql即可。
  授权一个zabbix用户:
1mysql -uroot -p123456 -e "grant all on zabbix.* to 'zabbix'@localhost>  5、配置zabbix
1  2
  3
  4
  5
  6
  7
  8
  9
vi /usr/local/zabbix-2.2.9/etc/zabbix_server.conf  ListenPort=10051
  LogFile=/tmp/zabbix_server.log
  DBHost=localhost
  DBName=zabbix
  DBUser=zabbix
  DBPassword=123456
  DBSocket=/tmp/mysql.sock
  DBPort=3306
1  2
# mkdir /etc/zabbix  # cp /usr/local/zabbix-2.2.9/etc/zabbix_server.conf /etc/zabbix/
  6、启动zabbix
1  2
# /usr/local/zabbix-2.2.9/sbin/zabbix_server  # /usr/local/zabbix-2.2.9/sbin/zabbix_agentd
  加入开机启动
1# echo -e "/usr/local/zabbix-2.2.9/sbin/zabbix_server\n/usr/local/zabbix-2.2.9/sbin/zabbix_agentd" >> /etc/rc.local  7、拷贝前端文件
1  2
# mkdir /usr/local/nginx/html/zabbix  # cp -a frontends/php/* /usr/local/nginx/html/zabbix/
  虚拟主机配置zabbix的安装目录,配置完成后重启nginx服务;
1  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
# vi /usr/local/nginx/conf/vhosts/default.conf  server
  {
  listen 80;
  server_name 192.168.20.30;
  index index.html index.htm index.php;
  root /usr/local/nginx/html/zabbix;
  location ~ \.php$ {
  include fastcgi_params;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/zabbix$fastcgi_script_name;
  }
  }
  8、浏览器输入192.168.20.30 进入web页面安装zabbix
  出错如下图:
  PHP databases support
  off
Fail  PHP bcmath
  off
Fail  PHP sockets
  off
Fail  PHP gettext
  off
Warning  PHP database support:如果使用的是MySQL数据库,则需要安装mysql库支持
  编译安装PHP-FPM的时候要指定以下三个参数:--with-mysql=mysqlnd  --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
  解决方法:
  重新编译安装php-fpm,删除php安装目录,删除php启动脚本,删除php安装解压目录,重新解压编译安装。再次执行没问题。
  其他问题的解决方法如下:
  PHP bcmath:需要安装BC_math库
1  2
  3
  4
  5
  6
  7
  8
  9
  10
# cd /usr/local/src/php-5.4.37/ext/bcmath/  #/usr/local/php/bin/phpize
  #./configure --with-php-config=/usr/local/php/bin/php-config
  #make && make install
  安装之后会生成一个类似于这样的信息提示:
  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
  编辑php.ini
  #vi /usr/local/php/etc/php.ini
  在最末尾添加一行:
  extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/bcmath.so
  PHP Sockets:需要安装php socket库
1  2
  3
  4
  5
  6
  7
  8
  9
  10
# cd /usr/local/src/php-5.4.37/ext/sockets/  #/usr/local/php/bin/phpize
  #./configure --with-php-config=/usr/local/php/bin/php-config
  #make && make install
  安装之后会生成一个类似于这样的信息提示:
  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
  编辑php.ini
  #vi /usr/local/php/etc/php.ini
  在最末尾添加一行:
  extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/sockets.so
  编译安装gettext模块
1  2
  3
  4
  5
  6
  7
  8
  9
  10
# cd /usr/local/src/php-5.4.37/ext/gettext/  #/usr/local/php/bin/phpize
  #./configure --with-php-config=/usr/local/php/bin/php-config
  #make && make install
  安装之后会生成一个类似于这样的信息提示:
  Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
  编辑php.ini
  #vi /usr/local/php/etc/php.ini
  在最末尾添加一行:
  extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/gettext.so
  php安装扩展错误:Cannot find config.m4. Make sure that you run /usr/local/bin/phpize in the top level sourc
  只需到php的安装目录下如:cd /usr/local/php/php-7.0.4/ext/openssl 执行命令:  cp ./config0.m4 ./config.m4 即可解决
  9、web浏览器安装zabbix遇到的错误
  Configuration file
  "/usr/local/nginx/html/zabbix/conf/zabbix.conf.php"
  created: Fail
  解决方法:
  # vi /usr/local/nginx/html/zabbix/conf/zabbix.conf.php.example
  修改对应的数据库信息:
1  2
  3
  4
  5
  6
  7
  8
$DB["TYPE"]                     = 'MYSQL';  $DB["SERVER"]                   = 'localhost';
  $DB["PORT"]                             = '3306';
  $DB["DATABASE"]                 = 'zabbix';
  $DB["USER"]                             = 'zabbix';
  $DB["PASSWORD"]                 = '123456';
  $ZBX_SERVER                             = 'localhost';
  $ZBX_SERVER_PORT                = '10051';
1# mv /usr/local/nginx/html/zabbix/conf/zabbix.conf.php.example /usr/local/nginx/html/zabbix/conf/zabbix.conf.php  使用用户名admin 密码:zabbix登录进入web页面,报错:zabbix server running no;
  解决方法如下:
  1、netstat -an 查看没有监听10051 zabbix_server的端口
  2、查看zabbix_server.log 发现数据库down,连接mysql的sock文件找不到;
  1577:20150728:144229.191 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  1577:20150728:144229.191 Database is down. Reconnecting in 10 seconds.
  创建一个软连接
  [iyunv@localhost ~]# mkdir /var/lib/mysql
  [iyunv@localhost ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
  [iyunv@localhost ~]# /usr/local/zabbix-2.2.9/sbin/zabbix_server restart
  3、重启后,netstat -ant 有10051端口说明服务端启动,回到浏览器显示running yes;
  profile——language里面没有chinese中文语言的解决方法:
DSC0000.jpg DSC0001.jpg

  编辑文件,找到zh_CN这一行,false改为true,保存退出,重启服务,刷新网页就可以看到中文选择。
  # vi /usr/local/nginx/html/zabbix/include/locales.inc.php
  'zh_CN' => array('name' => _('Chinese (zh_CN)'),        'display' => true),
  # /usr/local/zabbix-2.2.9/sbin/zabbix_server restart
  web页面历史记录出现乱码???的解决方法:
DSC0002.jpg

这与zabbix数据库所使用的字符集有关;

  1、查看当前的默认字符集为latin1
1  2
  3
  4
  5
  6
mysql> show create database zabbix;  +----------+-------------------------------------------------------------------+
  | Database | Create Database                                                   |
  +----------+-------------------------------------------------------------------+
  | zabbix   | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET latin1 */ |
  +----------+-------------------------------------------------------------------+
  安装时在导入三个sql文件时,zabbix数据库中创建的表的字符集也是latin1
1  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
mysql> show variables like 'character%';  +--------------------------+----------------------------------+
  | Variable_name            | Value                            |
  +--------------------------+----------------------------------+
  | character_set_client     | latin1                           |
  | character_set_connection | latin1                           |
  | character_set_database   | latin1                           |
  | character_set_filesystem | binary                           |
  | character_set_results    | latin1                           |
  | character_set_server     | latin1                           |
  | character_set_system     | utf8                             |
  | character_sets_dir       | /usr/local/mysql/share/charsets/ |
  +--------------------------+----------------------------------+
  2、这是由于字符集不是utf8引起的,解决方法有两种:
  当前的zabbix数据库中已经存在一定数据的解决方法:
  1)备份zabbix数据库
1#mysqldump -uroot -p123456 zabbix > zb.sql  2)修改备份文件
1# sed -i 's/latin1/utf8/g' zb.sql  3)删除zabbix数据库
1# mysql> drop database zabbix;  4)关闭mysql数据库,设置默认字符集,加入到my.cnf里面
1  2
  3
vi /etc/my.cnf  [mysqld]
  default-character-set = utf8
  5)启动mysql,创建zabbix数据库,导入备份
1  2
mysql> create database zabbix;  # mysql -uroot -p123456 zabbix < zb.sql
  导入成功后,查看字符集变为utf8
1  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
mysql> show create database zabbix;  +----------+-----------------------------------------------------------------+
  | Database | Create Database                                                 |
  +----------+-----------------------------------------------------------------+
  | zabbix   | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 */ |
  +----------+-----------------------------------------------------------------+
  mysql> show variables like 'character%';
  +--------------------------+----------------------------------+
  | Variable_name            | Value                            |
  +--------------------------+----------------------------------+
  | character_set_client     | latin1                           |
  | character_set_connection | latin1                           |
  | character_set_database   | utf8                             |
  | character_set_filesystem | binary                           |
  | character_set_results    | latin1                           |
  | character_set_server     | utf8                             |
  | character_set_system     | utf8                             |
  | character_sets_dir       | /usr/local/mysql/share/charsets/ |
  +--------------------------+----------------------------------+
  刷新页面,正常显示中文。

  图形中显示乱码的解决方法:
  拷贝windows下的字体到linux主机,替换zabbix的默认字体
1# mv simkai.ttf /usr/local/nginx/html/zabbix/fonts/DejaVuSans.ttf  zabbix客户端的编译安装:
  1、关闭selinux和iptables防火墙
1  2
  3
[iyunv@localhost src]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  [iyunv@localhost src]# iptables -F
  [iyunv@localhost src]# /etc/init.d/iptables save
  2、源码安装zabbix客户端
1  2
  3
  4
# tar -zxvf zabbix-2.2.9.tar.gz  # cd zabbix-2.2.9/
  # ./configure --prefix=/usr/local/zabbix-2.2.9 --enable-agent
  # make && make install
  3、编辑客户端配置文件,server填写服务端的ip地址,Hostname为唯一标识。
1  2
  3
  4
# vi /usr/local/zabbix-2.2.9/etc/zabbix_agentd.conf  LogFile=/tmp/zabbix_agentd.log
  Server=192.168.20.30
  Hostname=yong-Zabbix
  4、创建运行zabbix的用户,启动客户端服务
1  2
# useradd -s /sbin/nologin -M zabbix  # /usr/local/zabbix-2.2.9/sbin/zabbix_agentd
  加入开机启动
1# echo "/usr/local/zabbix-2.2.9/sbin/zabbix_agentd" >> /etc/rc.local  查看进程是否启动,端口是否打开。
1  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
[iyunv@localhost zabbix-2.2.9]# ps -ef |grep zabbix  zabbix    8529     1  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd
  zabbix    8530  8529  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd: collector [idle 1 sec]
  zabbix    8531  8529  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd: listener #1 [waiting for connection]
  zabbix    8532  8529  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd: listener #2 [waiting for connection]
  zabbix    8533  8529  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd: listener #3 [waiting for connection]
  zabbix    8534  8529  0 00:40 ?        00:00:00 /usr/local/zabbix-2.2.9/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
  root      8541  1089  0 00:46 pts/0    00:00:00 grep zabbix
  [iyunv@localhost zabbix-2.2.9]# netstat -antp |grep zabbix
  tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      8529/zabbix_agentd


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-667250-1-1.html 上篇帖子: Zabbix上IO监控 下篇帖子: zabbix服务器安装及汉化(大部分都是网上找资料整理)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表