image.png

Zabbix  


一、简介

1、 zabbix 简介 

    Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决

方案,由一个国外的团队续维护更新,件可以自由下使用,团队靠提供收的技支持   

  zabbix是一个基于Web界面的,提供分布式系统监控以及网络监视功能的企业级的开源解决方案。

           zabbix能监视种网络参数,保器系的安全运营提供活的通知机制以管理快速定位/解存在的各种问题

           zabbix主要由2部分成zabbix server和zabbix agent,可选组建zabbix proxy 

zabbix server可以通SNMP,zabbix agent,fping端口监视等方法对远程服器或网络状态完成监视据收集等功能

          支持Linux以及Unix平台,Windows平台只能安装客



2、Zabbix 功能

①具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库)

性能监控、FTP 等通用协议监控、多种告警方式、详细的报表图表绘制)

②支持自动发现网络设备和服务器(可以通过配置自动发现服务器规则来实现)

③支持自动发现(low discoverykey 实现动态监控项的批量监控(需写脚本)

④支持分布式,能集中展示、管理分布式的监控点

⑤扩展性强,server 提供通用接口(api 功能),可以自己开发完善各类监控(根据相关接口编写程序实现)编写插件容易,可以自定义监控项,报警级别的设置。

⑥数据收集

*  可用和性能检测

*  支持snmp(包括trapping and polling)IPMIJMXSSHTELNET

*  自定义的检测

*  自定义收集数据的频率

*  服务器/代理和客户端模式

*  灵活的触发器

*  可以定义非常灵活的问题阈值,称为触发器,从后端数据库的参考值

*  高可定制的报警

*  发送通知,可定制的报警升级,收件人,媒体类型

*  通知可以使用宏变量有用的变量

*  自动操作包括远程命令

*  实时的绘图功能

*  监控项实时的将数据绘制在图形上面

*  WEB 监控能力

*  ZABBIX 可以模拟鼠标点击了一个网站,并检查返回值和响应时间

Api 功能

*  应用api 功能,可以方便的和其他系统结合,包括手机客户端的使用。

更多功能请查看


3、Zabbix 工作方式

Zabbix 通过C/S 模式采集数据,通过B/S 模式在web 端展示和配置。

被监控端:主机通过安装agent 方式采集数据,网络设备通过SNMP 方式采集数据

Server 端:通过收集SNMP agent 发送的数据,写入数据库(MySQLORACLE 等),

再通过php+apache web 前端展示。


4、Zabbix 的运行条件

Server:Zabbix Server 需运行在LAMP(Linux+Apache+Mysql+PHP)环境下(或者

LNMP),对硬件要求低

Agent:目前已有的agent 基本支持市面常见的OS,包含Linux、HPUX、Solaris、Sun、

windows

SNMP:支持各类常见的网络设备

SNMP(Simple Network Management Protocol,简单网络管理协议


5、监控逻辑图

Zabbix 安装_第1张图片


二、安装部署

1、环境准备

一台centos 6.5操作系统服务器,关闭防火墙,selinux,部署lamp平台

在这里采用的lamp环境是apache2.4+mysql5.6+php5.6

[root@www zabbix]# cat /etc/redhat-release

CentOS release 6.5 (Final)

[root@www zabbix]# uname -r

2.6.32-431.el6.x86_64      


2、安装zabbix依赖包

yum install fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel  java-devel curl-devel libxml2-devel iksemel-devel libevent-devel -y


个人习惯每安装的服务都会另创建目录,博主在这里创建的是/service/zabbix,安装包的位置安装的位置在/usr/local/zabbix下载zabbix软件包,并添加服务用户


useradd zabbix -s /sbin/nologin/ -M

mkdir  /service/zabbix   -p 

下载tar包

cd  /service/zabbix   &&  wget  http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.2.6.tar.gz

tar xf zabbix-3.2.6.tar.gz         解压

cd zabbix-3.2.6


3、安装包说明

[root@www zabbix-3.2.6]# ll

总用量 1392

-rw-r--r--  1 1000 1000  49137 7月  22 2016 aclocal.m4

-rw-r--r--  1 1000 1000     98 7月  22 2016 AUTHORS

drwxr-xr-x  4 1000 1000   4096 7月  22 2016 bin        zabbix的windows版本程序

drwxr-xr-x  4 1000 1000   4096 7月  22 2016 build

-rw-r--r--  1 1000 1000 687803 7月  22 2016 ChangeLog

-rwxr-xr-x  1 1000 1000   7333 1月   3 2014 compile

drwxr-xr-x  3 1000 1000   4096 7月  22 2016 conf       zabbix的配置文件

-rwxr-xr-x  1 1000 1000  45297 8月  11 2013 config.guess

-rwxr-xr-x  1 1000 1000  35564 8月  11 2013 config.sub

-rwxr-xr-x  1 1000 1000 376528 7月  22 2016 configure

-rw-r--r--  1 1000 1000  46788 7月  22 2016 configure.ac

-rw-r--r--  1 1000 1000  17990 7月  22 2016 COPYING

drwxr-xr-x  7 1000 1000   4096 7月  22 2016 database   数据库文件

-rwxr-xr-x  1 1000 1000  23566 1月   3 2014 depcomp

drwxr-xr-x  3 1000 1000   4096 7月  22 2016 frontends php文件,zabbix的web

drwxr-xr-x  2 1000 1000   4096 7月  22 2016 include

-rw-r--r--  1 1000 1000     82 7月  22 2016 INSTALL

-rwxr-xr-x  1 1000 1000  13997 1月   3 2014 install-sh

drwxr-xr-x  2 1000 1000   4096 7月  22 2016 m4

-rw-r--r--  1 1000 1000   3155 7月  22 2016 Makefile.am

-rw-r--r--  1 1000 1000  30553 7月  22 2016 Makefile.in

drwxr-xr-x  2 1000 1000   4096 7月  22 2016 man

drwxr-xr-x  5 1000 1000   4096 7月  22 2016 misc

-rwxr-xr-x  1 1000 1000   6872 1月   3 2014 missing

-rw-r--r--  1 1000 1000     52 7月  22 2016 NEWS

-rw-r--r--  1 1000 1000    188 7月  22 2016 README

drwxr-xr-x 10 1000 1000   4096 7月  22 2016 src     zabbix的核心程序文件

drwxr-xr-x  3 1000 1000   4096 7月  22 2016 upgrades


4、编译安装

./configure --prefix=/usr/local/zabbix \   #指定安装目录

--enable-server \                                             #安装服务端

--enable-agent \                                              #安装客户端

--enable-java \                                        #安装java模块

--enable-ipv6 \

--with-mysql=/usr/local/mysql/bin/mysql_config  \

--with-net-snmp \

--with-libcurl \

--with-libxml2 \

--with-openipmi \

--with-unixodbc \

--with-openssl 

make&&make install


查看编译位置

[root@www ~]# cd /usr/local/zabbix/

[root@www zabbix]# ll

总用量 20

drwxr-xr-x 2 root root 4096 8月  24 19:40 bin

drwxr-xr-x 4 root root 4096 8月  24 19:40 etc

drwxr-xr-x 2 root root 4096 8月  24 19:40 lib

drwxr-xr-x 2 root root 4096 8月  24 19:40 sbin

drwxr-xr-x 4 root root 4096 8月  24 19:40 share


5、导入zabbix文件到数据库进入mysql配置


mysql -u root p   #进入数据库

create database zabbix character set utf8;

注意,此处要特别注意数据库字符集的问题,如果数据库是非utf8 字符,则web 页面改

为中文,是会出现乱码的

grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; 创建管理MySQL用户

flush privileges;

mysql -u zabbix -pzabbix   #测试登录数据库


cd /service/zabbix/zabbix-3.2.6/database/mysql

mysql -u root -p    zabbix < schema.sql 

mysql -u root -p    zabbix < images.sql

mysql -u root -p    zabbix < data.sql


mysql -u zabbix -pzabbix  

use zabbix ;

show tables ;

登录数据库查看

Zabbix 安装_第2张图片


6、拷贝配置文件及授权用户我的apache数据保存目录在/htdocs/

拷贝配置文件及授权用户我的apache数据保存目录在/htdocs/

mkdir /htdocs/zabbix

cp -r /service/zabbix/zabbix-3.2.6/frontends/php/* /htdocs/zabbix/

chown -R apache.apache /htdocs/zabbix/



7、修改php.ini文件

vim  /usr/local/php/php.ini

date.timezone = Asia/ Hong_Kong      

max_execution_time = 300 

post_max_size = 32M

max_input_time=300

memory_limit = 128M

mbstring.func_overload = 2


重启:/etc/init.d/php-fpm restart 


8、修改虚拟主机配置

vim /usr/local/apache/conf/extra/httpd-vhosts.conf

        #端口

    ServerAdmin www.zabbix.com      #管理员登录网址

    DocumentRoot "/htdocs/zabbix"    #指定网页数据位置

    ServerName www.zabbix.com      #域名

      

       AllowOverride All             #访控

       Require all granted

      

    ErrorLog "logs/dummy-host2.example.com-error_log"   #错误日志

    CustomLog "logs/dummy-host2.example.com-access_log" common   #日志

 ProxyRequests off    #代理请求off指运行代理

 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/htdocs/zabbix/$1   #把凡是以结尾是.php的访问转发到本机的9000端口上


service httpd restart 重启


9、zabbix 配置

路径:/usr/local/zabbix/etc/zabbix_server.conf

修改主要参数即可工作

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix 数据库

DBHost=127.0.0.1


修改客户端配置:/usr/local/zabbix/etc/zabbix_agent.conf

Server=192.168.2.100 //配置zabbix服器的IP地址 
Hostname=zabbix_server //配置主机名 
PidFile=/var/tmp/zabbix_agentd.pid //指定pid路
 
LogFile=/var/log/zabbix/zabbix_agentd.log //
指定日志文件 


9.1、配置启动脚本

cp /service/zabbix/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_{server,agentd}  /etc/init.d/

[root@www zabbix]# ll -h /etc/init.d/zabbix_*

-rwxr-xr-x 1 root root 2.2K 8月  24 15:15 /etc/init.d/zabbix_agentd

-rwxr-xr-x 1 root root 2.2K 8月  24 15:15 /etc/init.d/zabbix_server


9.2、修改启动脚本(不修改启动会报错)

vim /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix      #这里是安装服务的路径

vim /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix


启动

[root@www zabbix]# /etc/init.d/zabbix_server start       

Starting zabbix_server:                                    [确定]

[root@www zabbix]# /etc/init.d/zabbix_agentd start      

Starting zabbix_agentd:                                    [确定]


访问:因为我在本机改了hosts文件在这里我是直接域名加端口访问的

Zabbix 安装_第3张图片


修改安装时报错问题

1、PHP string function overloading must be disabled.  错误:

修改片php.ini文件 mbstring.func_overload = 1  修改完毕之后重启


2、PHP option "always_populate_raw_post_data" must be set to "-1"     

修改  /htdocs/zabbix/include/classes/setup/ CFrontendSetup.php

       添加 $current = -1;

        public function checkPhpAlwaysPopulateRawPostData() {

                $current = ini_get('always_populate_raw_post_data');

                $current = -1;

                return [

                        'name' => _s('PHP option "%1$s"', 'always_populate_raw_post_data'),

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

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

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

                        'error' => _s('PHP option "%1$s" must be set to "%2$s"', 'always_populate_raw_post_data', -1)

                ];

        }


填写数据库连接

Zabbix 安装_第4张图片



配置zabbix server端的主机名,端口号

Zabbix 安装_第5张图片


安装

Zabbix 安装_第6张图片


默认的账号和是admin  密码是zabbix

Zabbix 安装_第7张图片


登录成功(设置中文字体)

Zabbix 安装_第8张图片


监控本机

默认我们已经启动了zabbix客户段服务 所以在主机列表中可以查看到

如果没有启动可以执行/etc/init.d/zabbix_ agentd restart  启动zabbix客户端

还需要在网页配置,使zabbix起来

默认我们监控主机是没有启用的à双击停用的他就起来了

Zabbix 安装_第9张图片

显示绿色的ZBX则为成功

Zabbix 安装_第10张图片


监控一台新的主机

拷贝脚本到主机执行

vim  zabbix_client_install.sh

#!/bin/bash

#关于配置文件修改,如果是外网的客户端,需要把ServerActive和Server的值改为101.96.129.162,(已经做过外网映射)

Modify_configuration(){

    #IP=`ifconfig |grep -o '192\.168\.1\.[0-9]\{1,3\}' |grep -v 255 |head -1`

    IP=`ifconfig eth0 |grep inet |sed 's/^.*addr://g' |sed s/Bcast.*//g`

    sed -i "

       /# HostMetadataItem/a\

       HostMetadataItem=system.uname

       s/^ServerActive=127.*/ServerActive=10.27.72.243/

       s/^Server=.*/Server=10.27.72.243/

       s/Hostname=Zabbix server/Hostname=${IP}/

       " /etc/zabbix/zabbix_agentd.conf

}

CentOS_agent_install(){

    wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.6-1.el6.x86_64.rpm

    rpm -ivh zabbix-agent-3.2.6-1.el6.x86_64.rpm

    Modify_configuration

    rm -rf zabbix-agent-3.2.6-1.el6.x86_64.rpm

    chkconfig zabbix-agent on

    service zabbix-agent restart

}

Ubuntu_agent_install(){

    wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/ubuntu/pool/main/z/zabbix/zabbix-agent_3.2.6-1%2bxenial_amd64.deb

    sudo dpkg -i zabbix-agent_3.2.6-1+xenial_amd64.deb

    Modify_configuration

    rm zabbix-agent_3.2.6-1+xenial_amd64.deb

    service zabbix-agent restart

}


cat /etc/*release |grep "CentOS" &>/dev/null

[ $? == 0 ] && CentOS_agent_install

cat /etc/*release |grep "Ubuntu" &>/dev/null

[ $? == 0 ] && Ubuntu_agent_install


效果图Zabbix 安装_第11张图片


在server端监控这台客户机

image.png


Zabbix 安装_第12张图片

给监控的客户端添加一个监控模板

Zabbix 安装_第13张图片


Zabbix 安装_第14张图片


保存查看图形

Zabbix 安装_第15张图片

到这里就搭建完成,真心希望本篇博客可以帮助到您。