搭建Zabbix 监听Nginx实时状态

0x00 背景

       Zabbix 监听 Nginx 的实时状态,本次测试只有一台机器,Server与Agentd全部部署在测试机上。

0x01 介绍     

        Zabbix是一个企业级的、开源的、分布式的监控套件

        Zabbix可以监控网络和服务的监控状况. Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警. 这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划.

        Zabbix支持polling和trapping两种方式. 所有的Zabbix报告都可以通过配置参数在WEB前端进行访问. Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix可以通过尽可能的配置来扮演监控你的IT基础框架的角色,而不管你是来自于小型组织还是大规模的公司.

0x02 软件准备

        1. Zabbix : http://www.zabbix.com/download   版本:3.4.4

        2. Nginx :  http://nginx.org/en/download.html  版本:1.12.2

        3. PHP      :  http://www.php.net/downloads.php  版本:7.1.11 

        4. libjpeg  :  http://www.ijg.org/files/jpegsrc.v8b.tar.gz

        5. freetype : https://download.savannah.gnu.org/releases/freetype/  版本:2.4.0

0x03 Nginx 源码编译安装 

        1. 创建新目录,将Nginx包存放到该目录下,并解压

mkdir /home/${user}/soft
mkdir /home/${user}/soft/nginx
cd /home/${user}/soft/nginx
tar -xzvf nginx-1.12.2.tar.gz

注:${user} 是指用户目录 , 将Nginx包传到目录 /home/${user}/soft/nginx

        2. 安装Gcc等依赖

yum install gcc gcc-c++ openssl_devel 
yum install openssl openssl-devel
yum install pcre-devel
yum install zlib-devel

        3. 编译Nginx的【状态模块】【TCP代理模块】

cd /home/${user}/soft/nginx/nginx-1.12.2
./configure --prefix=/opt/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-pcre --with-http_realip_module --with-http_image_filter_module --with-stream
make
make install 

        可能遇到错误:

错误:./configure: error: the HTTP image filter module requires the GD library.
原因: 没有安装GD库的依赖
解决方法: yum install gd-devel

 

0x04 安装依赖 libjpeg

        1. 创建目录,将libjpeg包放在目录下并解压

mkdir /home/${user}/soft
mkdir /home/${user}/soft/libjpeg
cd /home/${user}/soft/libjpeg
tar -xzvf jpegsrc.v8b.tar.gz

注:${user} 是指用户目录 ,将libjpeg包传到目录 /home/${user}/soft/libjpeg

        2. 源码编译libjpeg

cd /home/${user}/soft/libjpeg/jpeg-8b
./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static 
make 
make install

     

0x05 安装依赖 freetype 

        1.  创建目录,将freetype包放在目录下并解压

mkdir /home/${user}/soft
mkdir /home/${user}/soft/freetype
cd /home/${user}/soft/freetype
tar -xzvf freetype-2.4.0.tar.gz

注:${user} 是指用户目录 ,将libjpeg包传到目录 /home/${user}/soft/freetype

        2. 源码编译freetype 

cd /home/${user}/soft/freetype/freetype-2.4.0
./configure --prefix=/usr/local/freetype --enable-static --enable-shared 
make
make install

 

0x06 php 源码编译php-fpm模块以及相关Zabbix相关依赖模块

        1. 创建新目录,将Nginx包存放到该目录下并解压

mkdir /home/${user}/soft
mkdir /home/${user}/soft/php
cd /home/${user}/soft/php
tar -xzvf php-7.1.11.tar.gz

注:${user} 是指用户目录, 将PHP包传到目录  /home/${user}/soft/php

        2. 编译PHP相关模块

cd /home/${user}/soft/php/php-7.1.11
./configure --prefix=/opt/php/ --enable-fpm --with-mysqli --enable-bcmath --enable-mbstring --enable-sockets --with-jpeg-dir=/usr/local/libjpeg --with-freetype-dir=/usr/local --with-gd -with-gettext
make 
make install

        可能遇到的问题及解决方法: 

   错误: error: xml2-config not found. Please check your libxml2 installation.
   原因:缺少libxml2库
   解决方法: yum install libxml2-devel

         

0x07 配置php-fpm

        1. 复制一份有效的配置文件

cp /opt/php/etc/php-fpm.conf.default /opt/php/etc/php-fpm.conf
cp /opt/php/etc/php-fpm.d/www.conf.default /opt/php/etc/php-fpm.d/www.conf

        2. 创建php.ini 

touch /opt/php/etc/php.ini
vim /opt/php/etc/php.ini
#############################
增加以下配置,用于Zabbix
#############################
post_max_size=16M
max_execution_time=300
date.timezone=Asia/Shanghai

#############################
保存退出

        3. 运行php-fpm 

/opt/php/sbin/php-fpm -R -c /opt/php/etc/php.ini

注: -R 参数是指以管理员身份运行
    -c 指定运行时配置文件路径 
    默认是以9000端口运行    netstat -ant | grep 9000

0x08 配置Nginx支持php-fpm

        1. 在nginx.conf配置文件中,添加如下配置, 配置文件路径 /opt/nginx/conf/nginx.conf

   server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm index.php;
        }

        location = /nginx-status {
            stub_status on;
            access_log  off;
            allow 127.0.0.1;
            ####zabbix服务器端的IP地址一般为内网IP
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

        2. 开启nginx 

/opt/nginx/sbin/nginx

        3. 测试php-fpm是否生效

在Nginx的Web目录下创建文件 index.php
vim /opt/nginx/html/index.php

文件内容如下:
<?php phpinfo(); ?>

        4. 打开浏览器,输入页面地址 http://${IP}:${PORT}/index.php, 若出现以下页面,则生效

130027_2v2W_2478160.png  

0x09 Zabbix 编译安装

        1. 创建目录,将源码包上传到指定目录并解压

mkdir /home/${user}/soft
mkdir /home/${user}/soft/zabbix
cd /home/${user}/soft/zabbix           // 源码包上传到该路径 
tar -xzvf zabbix-3.4.4.tar.gz

        2. 源码编译

cd /home/${user}/soft/zabbix/zabbix-3.4.4
./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
make
make install

        可能遭遇问题: 

1. 问题:configure: error: MySQL library not found
   原因:缺失Mysql驱动包
   解决:yum install mysql-devel
2. 问题:configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
   原因:缺失net-snmp驱动包
   解决:yum install net-snmp-devel 
3. 问题:configure: error: Unable to use libevent (libevent check failed)
   原因:缺失libevent驱动包
   解决: yum install libevent-devel
4. 问题:configure: error: Curl library not found
   原因:缺失CURL驱动包
   解决:yum install curl-devel

 

0x10 Zabbix表数据导入

        1. 安装Mysql数据库

yum install mysql 

        2. 创建zabbix表

mysql -u root -p 
输入密码
create database zabbix default charset utf8;

        3. 数据导入

mysql -uroot -p zabbix < /home/htdf/soft/zabbix/zabbix-3.4.4/database/mysql/schema.sql
输入密码
mysql -uroot -p zabbix < /home/htdf/soft/zabbix/zabbix-3.4.4/database/mysql/images.sql
输入密码
mysql -uroot -p zabbix < /home/htdf/soft/zabbix/zabbix-3.4.4/database/mysql/data.sql
输入密码

 

0x11 配置Zabbix

        1. zabbix_server.conf  (/opt/zabbix/etc/zabbix_server.conf)

DBName=zabbix
DBUser=root
DBPassword=${root}    //root的密码,跟你的数据库设置有关
DBPort=3306

        2. zabbix_agentd.conf (/opt/zabbix/etc/zabbix_agentd.conf)

Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server

 

0x12 配置Zabbix Web端

        1. 创建目录 ,并将Zabbix的Web资源放入

mkdir /opt/zabbix/web
cp -R /home/htdf/soft/zabbix/zabbix-3.4.4/frontends/php/* /opt/zabbix/web/

        2. 配置Nginx 解析该目录下的Web资源,修改/opt/nginx/conf/nginx.conf

   server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /opt/zabbix/web/;
            index  index.html index.htm index.php;
        }

        location = /nginx-status {
            stub_status on;
            access_log  off;
            allow 127.0.0.1;
            ####zabbix服务器端的IP地址一般为内网IP
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           /opt/zabbix/web/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

        3. 重启Nginx

killall nginx
/opt/nginx/sbin/nginx

 

0x13 启动Zabbix 

        1. 启动Server 

/opt/zabbix/sbin/zabbix_server

        2. 启动Agentd

/opt/zabbix/sbin/zabbix_agentd

      

0x14 安装Zabbix Web

        1.  浏览器打开地址 http://${IP}:${PORT}/setup.php,  点击Next Step

152646_qdBJ_2478160.png

        2.  点击“Next Step”

152721_GR6I_2478160.png

        3. 根据自己情况填好数据库连接信息,并点击"Next Step"

152830_k6j7_2478160.png

        4. Host:默认, PORT:默认,Name:自定义   点击“Next Step”

152936_4XzR_2478160.png

 

        5. 点击 “Next Step” 

153016_bozZ_2478160.png

       6. 点击“Finish”

       7. 进入登录界面  账号:Admin 密码:zabbix

153231_TOow_2478160.png

 

 

 

 

转载于:https://my.oschina.net/jutao/blog/1579217

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值