LNMP环境源码安装zabbix2.2.9版本

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

之前实验过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这个选项就不会报错。


编译错误2configure: 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用户:

1
mysql -uroot -p123456 -e  "grant all on zabbix.* to 'zabbix'@localhost identified by '123456'"


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

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.

创建一个软连接

[root@localhost ~]# mkdir /var/lib/mysql

[root@localhost ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

[root@localhost ~]# /usr/local/zabbix-2.2.9/sbin/zabbix_server restart

3、重启后,netstat -ant 有10051端口说明服务端启动,回到浏览器显示running yes;


profile——language里面没有chinese中文语言的解决方法:

spacer.gifwKiom1W4nHnRnzUnAADqbb7zUpE341.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页面历史记录出现乱码???的解决方法:

wKioL1W4nnOSo1yMAAD-hhBXHW0483.jpg

spacer.gif这与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/  |
+--------------------------+----------------------------------+

刷新页面,正常显示中文。spacer.gif

wKioL1W4oAKyIBc3AAA6xZ5nPPA158.jpg


图形中显示乱码的解决方法:

拷贝windows下的字体到linux主机,替换zabbix的默认字体

1
# mv simkai.ttf /usr/local/nginx/html/zabbix/fonts/DejaVuSans.ttf


zabbix客户端的编译安装:

1、关闭selinux和iptables防火墙

1
2
3
[root@localhost src] # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost src] # iptables -F 
[root@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
[root@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
 
[root@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


源码安装zabbix服务端与客户端安装完毕,剩下的工作需要在web页面进行配置要监控的项目。






本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1679728,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
199 0
|
4月前
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
|
7月前
|
应用服务中间件 PHP nginx
基于Anolis OS 3快速搭建LNMP环境制作KodBox
本教程介绍如何搭建LNMP环境,其中本实验的LNMP分别代表Anolis OS 3、Nginx、Mariadb和PHP。
134 0
|
7月前
|
关系型数据库 MySQL 应用服务中间件
快速搭建LNMP环境
Nginx是一款小巧而高效的Web服务器软件,可帮您在Linux系统下快速方便地搭建出LNMP Web服务环境。本教程介绍如何搭建LNMP环境,其中LNMP分别代表Linux、Nginx、MySQL和PHP。
284 2
|
3月前
|
API PHP 数据库
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
28 0
|
6月前
|
关系型数据库 MySQL Linux
Linux环境下LNMP架构实战案例
Linux环境下LNMP架构实战案例
|
7月前
|
弹性计算 关系型数据库 MySQL
基于ROS快速部署LNMP环境(CentOS 7)
本教程提供在阿里云云服务器ECS上基于CentOS 7.9操作系统搭建LNMP环境的指引。LNMP是应用广泛的网站服务系统,由四种免费的开源软件Linux、Nginx、MySQL和PHP组成。搭建好LNMP环境后,您可以在该ECS实例上搭建网站、访问网站
406 0
|
7月前
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Ubuntu 20)
本教程介绍如何在Ubuntu 20.04操作系统的ECS实例上搭建一套Nginx、MySQL和PHP应用的开发环境。
294 0
|
7月前
|
关系型数据库 MySQL 应用服务中间件
基于Ubuntu搭建LNMP环境
本教程介绍如何在Ubuntu 18.04操作系统的ECS实例上搭建一套Nginx、MySQL和PHP应用的开发环境。
103 0
|
7月前
|
Linux 应用服务中间件 网络安全
手动部署LNMP环境(CentOS 8)
本场景带您体验如何在CentOS 8操作系统的云服务器上搭建LNMP环境。
106 0