生活如麻 发表于 2019-1-25 09:57:34

记录一次基于LNMP环境下的Zabbix3.0部署

  前言:
  公司现需要部署一个Zabbix来监控线上环境,但是线上服务器资源有限,无法部署到其中任意一台。那怎么办呢?于是查阅一番资料,获取解决思路:

  1.线下环境使用一台服务器做为Zabbix Server,线上环境任意一台搭建***,将所有服务器连接到一起,组成一个安全的局域网环境。

  2.线下环境使用一台服务器作为Zabbix Server,使用路由做端口映射,将内网Zabbix Server的10050-10051端口映射出去。

  一番比较下,各方面表明:使用第二个思路是最符合实际的。下面是部署Zabbix的一个过程记录。
  

  

  一、环境检测
  1.Mysql
  Welcome to the MySQL monitor.Commands end with ; or \g.
  Your MySQL connection id is 20416
  Server version: 5.5.47 MySQL Community Server (GPL)
  

  2.PHP
  PHP Version 5.3.3
  

  3.Nginx
  nginx version: nginx/1.8.0
  

  二、编译升级软件版本
  经过检查发现,现有的环境当中,PHP版本不满足新版zabbix要求,需要做一个升级。但由于Zabbix Server是开发人员用于测试的服务器,需要多个PHP版本共存,遂:

  

  安装libiconv
mkdir -p /usr/local/setup
cd /usr/local/setup
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ..  

  安装libmcrypt
wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
cd ..  

  安装mhash
tar jxvf mhash-0.9.3.tar.bz2
cd mhash-0.9.3
./configure
make && make install
cd ..  

  安装mcrypt
wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install
cd ..  

  安装PHP 5.5.5
wget http://mirrors.sohu.com/php/php-5.5.5.tar.gz
tar zxvf php-5.5.5.tar.gz
cd php-5.5.5  正式编译,注意安装路径不能与旧版本路径相同
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install  

  修改fpm配置php-fpm.conf.default文件名称
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf  

  复制php.ini配置文件
cp php.ini-production /usr/local/php/etc/php.ini  

  复制php-fpm启动脚本到init.d,因为不想与原来的php启动服务冲突,特改为php-fpm2
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm2  

  赋予执行权限
chmod +x /etc/init.d/php-fpm2  

  添加为启动项
chkconfig --add php-fpm2  

  启动php-fpm
service php-fpm2 start  

  在PHP5.5配置文件
vim /usr/local/php/etc/php-fpm.conf  

  修改:

listen = 127.0.0.1:端口号  端口号不能与5.3重复
  在Nginx上的配置文件中 修改:
fastcgi_pass
127.0.0.1:端口号  

  OK,到这里PHP多个版本就不会起冲突,直接在nginx上指定不同端口号就能随意切换PHP版本了。
  

  二、Zabbix Server安装
  


[*]  建立一个用于zabbix的用户

useradd zabbix
passwd zabbix  

  2.到官网找到Zabbix Server源码安装包

  
tar -zxvf /usr/local/src/zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
make && make install  

  3.MySQL导入SQL语句
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '';
mysql> flush privileges;
mysql> quit;
按照SQL语句顺序导入SQL:
shell> mysql -uzabbix -p zabbix < database/mysql/schema.sql
shell> mysql -uzabbix -p zabbix < database/mysql/images.sql
shell> mysql -uzabbix -p zabbix < database/mysql/data.sql  

  

  4.修改zabbix.conf

DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=jiayuan.com #数据库密码
ListenIP=localhost #数据库ip地址
AlertScriptsPath=****/zabbix/alertscripts #zabbix运行脚本存放目录  

  5.修改PHP.ini
  

PHP option post_max_size 16M
PHP option max_execution_time 300
PHP option max_input_time 300
PHP time zone Asia/Shanghai  

  6.将前端文件拷贝到nginx站点目录下
cd /usr/local/src/zabbix-3.0.3/frontends/
cp -rf php /usr/local/nginx/zabbix  

  三、前端配置

  这一步比较容易,直接next.不行直接修改配置文件,具体自行百度。
  

  四、客户端agent安装
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz
tar zxf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
./configure --prefix=/usr/local/zabbix_agent --enable-agent ; make install  

cp /usr/local/src/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/      
sed -i 's#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix_agent#' /etc/init.d/zabbix_agentd # 修改 Agent 安装路径
grep -vP '^#|^$' /usr/local/zabbix_agent/etc/zabbix_agentd.conf# 调整配置文件
LogFile=/tmp/zabbix_agentd.log
Server=xx.xx.xx.xx      # Zabbix Server IP ( 被动模式,客户端被动 )
ServerActive=127.0.0.1       # 主动模式,如果使用也填 Zabbix Server IP ,不使用可以注释掉
Hostname=xx.xx.xx.xx    # 本身 IP ,Zabbix Server 添加主机时需要使用,不一定是 IP
Include=/usr/local/zabbix_agent/etc/zabbix_agentd.conf.d/*.conf   # 加载自定义的监控配置文件
UnsafeUserParameters=1 # 允许自定义 Keyservice zabbix_agentd start
chkconfig --add zabbix_agentd
chkconfig --level 35 zabbix_agentd on
iptables -A INPUT -s 'Zabbix Server IP' -p tcp --dport 10050 -j ACCEPT # 由于是客户端被动模式,所以要开放端口供 Zabbix Server 连接  

  五、路由映射端口
  

  将端口映射出去,不同型号路由配置略有不同,思路是一样的,自行摸索就行。若是采用映射的方法,上面客户端中指定server地址后面需要加端口号。

http://s1.运维网.com/wyfs02/M00/82/DF/wKiom1djacaT2o4lAAAz0pVHKh4769.png-wh_500x0-wm_3-wmp_4-s_3367733873.png
  如连接不上,检查防火墙是否放通,ZabbixServer端口是10051 agent端口是10050。

  

  zabbix到此部署完成。



页: [1]
查看完整版本: 记录一次基于LNMP环境下的Zabbix3.0部署