Zabbix

运行Zabbix须要LAMP环境,php

在centsos 6中安装lamp:  yum install -y httpd httpd-devel php php-devel php-nysql php-commonhtml

 在centsos 7  中安装lamp:  yum install -y httpd httpd-devel php php-devel php-nysql php-common  mariadb mariadb-server mariadb-devel前端

注意:centsos 7  中的数据库是mariadbmysql

  1. 企业Centos6.x通常用于部署承载各个应用,例如Nginx、MYSQL、Redis、MQ等;
  2. 企业Centos7.x通常用于部署承载各个应用,例如Docker、openstack、ELK等;

常见监控软件:NagiosCactiMrtgGangliaZabbixlinux

 

分析Zabbix监控平台概念和应用场景;

  1. Zabbix一款开源、免费的基于WEB界面的实时分布式监控系统;
  2. Zabbix开源监控的内容很是普遍,分为四大类:硬件、网络、系统、软件;
  3. Zabbix监控服务器硬件设备的状态,例如监控CPU温度、风扇的转速、监控服务器电源使用状况、机箱被入侵;
  4. Zabbix监控平台还开源监控网络状况、交换机的流量、服务器网卡流量;
  5. Zabbix监控平台能够监控操做系统CPU、内存、硬盘容量、登陆用户数、文件是否被修改、权限,还能够监控各类软件运行状况、Nginx、MYSQL、Docker虚拟机、Apache、ZK服务等;
  6. Zabbix监控最核心的价值:能够7x24x365实时监控整个公司各类设备、系统、网络、软件运行的状况,有故障能够第一时间通知(短信、邮件、微信、QQ)SA,SA收到报警信息,马上去处理;
  7. Zabbix监控属于C/S模式,客户端和服务器端,服务器端负责数据汇总、处理,客户端负责数据的采集和监控。
  8. 一个完整的ZABBIX平台包括:Zabbix-WEBDatabaseZabbix-Server、Agent客户端;
  9. Zabbix监控客户端的方式有三种,基于Agent插件方式、SNMP协议、IPMI智能接口;
  10. Agentd安装在被监控的主机上,Agent负责按期收集客户端本地各项数据,并发送到Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB能够看到数据在前端展示图像。

 

Zabbix监控流程图ios

  1. Zabbix_server负责汇总客户端发送的监控数据,进行处理,存储到MYSQL(关系型)数据库中;
  2. Zabbix_WEB,以PHP语言编写代码,读取、调用MYSQL中监控数据在WEB界面进行展现。
  3. Zabbix_server要监控200台服务器,忽然发现压力比较大,此时100台server用proxy去监控。
  4. Zabbix_server,服务器端主程序,daemon进程,负责收集和汇总客户端返回的监控数据,而且将数据存储database中;
  5. Zabbix_database,独立的数据库,主要负责存储zabbix具体监控项目的数据和基础应用数据及权限信息;
  6. Zabbix_WEB,基于PHP语言开发的一套WEB前端网页,主要用于用户SA去查看监控数据,web页面展现,更加的形象,各类配置和操做,经过WEB更加的方便。
  7. Zabbix_agent,被监控端,WEB页面、网络设备、服务器硬件、Linux或者windows OS;;;Agent安装在被监控端,负责收集本地的监控数据;
  8. Zabbix_Proxy,是属于Zabbix_server的克隆,为了分担Zabbix_server的压力,分布式节点,proxy能够直接去监控agent客户端,同时定时将数据发到Server,称为集中式WEB管理;
  9. 假设如今Zabbix监控平台须要监控1000台,server监控200台,2个proxy监控800台。
  10. Zabbix_server监控客户端,经过不少方式,SNMP、IPMI、Agent、HTTP协议;
  11. C/S模式:server端(Zabbix_server、DB、php WEB)、client端(安装Zabbix_Agent),c++

 

Zabbix监控平台组件概念

  1. 完整的Zabbix监控平台组件如图所示,整个监控平台包括:Zabbix-web、Zabbix-database、Zabbix-server、Zabbix-proxy、Zabbix-Client等;
  2. Zabbix-web基于PHP语言编写的WEB界面,当作Zabbix WEB管理平台,方便运维人员经过WEB方式操做整个监控,包括查看和配置监控项、数据图形;
  3. Zabbix-database关系型数据库系统,数据存储在二维表格中,行和列组成的,表明有MYSQL、MariaDB、Oracle、DB2等,用于存储用户权限、密码,客户端各项监控数据、配置数据;
  4. Zabbix-server是整个监控平台的核心,老大,负责监控和收集、汇总客户端的各项监控数据,而后进行统一的分配和存储至Database中;
  5. Zabbix-proxy给Server分担压力的,代替Server去监控客户端,而且能够收集客户端的数据,最终统一上报给老大,当作是分布式的节点,proxy收集的全部的数据,统一上报给Server;
  6. Zabbix-Client被监控端,是被Server或者Porxy所监控的对象,统称为客户端,Zabbix属于C/S模式(Client/Server模式);

 

 

Zabbix分布式监控微信报警实战

  1. Zabbix分布式监控系统安装部署(功能应用场景)
  1. Zabbix应用场景:

企业服务器对用户提供服务,做为运维工程师最重要的事情就是保证该网站正常稳定的运行,须要实时监控网站、服务器的运行状态,而且有故障及时去处理。web

监控网站无需人工时刻去访问WEB网站或者登录服务器去检查,能够借助开源监控软件例如Zabbix、Cacti、Nagios、Ganglia等来实现对网站的7x24小时的监控,而且作到有故障及时报警通知SA解决。sql

 

Zabbix分布式监控系统(微信报警实战)数据库

  1. 主要用于监控WEB网站、数据库、服务器运行状态;
  2. 监控网络设备、交换机、路由器、防火墙设备;
  3. 监控物理机服务器、CPU温度、机箱是否被入侵;
  4. 监控各类应用,Nginx、MYSQL、PHP、CPU、内存、硬盘资源状况;

 

一个完整的ZABBIX平台包括:Zabbix-WEBDatabaseZabbix-Server、Agent客户端;

  1. Zabbix工做原理:

分布式特色:分散管理、分担压力、分开存储,缓解Zabbix_Server压力;

  1. Zabbix web UI,须要部署WEB平台,PHP代码,存储在zabbix源码目录中;
  2. 构建一个能够发布PHP的架构,常见LAMP、LNMP、LEMP等;

 

  1. Zabbix监控实战(CentOS7.3
  1. zabbix_server,独立的服务,须要单独安装,后台启动服务;

checking for mysql_config... no

configure: error: MySQL library not found

解决方法:yum install mysql-devel -y

  1. Zabbix_web,PHP代码,须要LAMP、LNMP环境;
  2. zabbix_database,关系型数据库系统,能够是mysql、orache、db二、postgresql等;

yum install mariadb mariadb-server mariadb-devel -y

  1. zabbix_agent,客户端软件,部署在客户端服务器,Linux或者Windows;
  2. 若是想zabbix监控网络设备,须要基于SNMP协议,在交换机网络设备开启snmp,基于团体名认证;

WEB网站链接数据库

  1. WEB网站须要链接数据库,必备条件是什么呢?
  2. 确认WEB网站代码类型,是PHP、ASP、JSP代码;
  3. WEB网站链接数据库,须要链接的驱动,例如JDBC链接驱动;
  4. 数据库中须要建立库,create database jfedu;
  5. WEB网站的数据通常存储到MYSQL库里面的表中,程序自动建立表,提早导入DBA写好表结构;
  6. 须要对WEB网站服务器进行受权,在数据库服务器受权WEB来访问、权限包括insert、create、update、drop、select、delete等;

 

 

从0开始Zabbix监控平台实战

  1. 至少准备1台服务器,配置没有要求,生产环境推荐配置:8C16G300G,若是是虚拟机,配置最低:1C1G40GB;
  2. 安装Zabbix服务端的操做系统,只能选择Linux服务器,推荐CentOS7.x,CentOS7.3!Windows操做系统能够安装客户端。
  3. 安装Zabbix监控平台必备的组件:Zabbix-WEB、Zabbix-Server、Zabbix-Database(生产环境独立部署)、Zabbix-Client;
  1. 配置Zabbix-Server,进行源码编译,安装Server模块,解压源代码包,进入源码目录,如图所示:

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp  --with-libcurl

 

yum install -y curl-devel net-snmp  gcc gcc-c++ -

  1. Zabbix分布式监控平台安装:

(1)、Zabbix监控平台部署,至少须要安装四个组件,分别是ZabbixServer,Zabbix Web,Databases,Zabbix Agent,以下为Zabbix监控平台安装配置详细步骤:

系统环境

Server端:192.168.168.163

Agent端:192.168.68.1

(2)、下载zabbix版本,各个版本之间安装方法相差不大,能够根据实际状况选择安装版本,本文版本为Zabbix-3.2.6.tar.gz

 

Zabbix server端安装配置,源代码包,官网下载稳定的版本3.2.6;

wget -c http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download

或者

连接:https://pan.baidu.com/s/1vwpBCUI3H3Y-5-w1dovNhQ 密码:hqey

tar xzf zabbix-3.2.6.tar.gz

安装插件

yum -y  install  curl  curl-devel net-snmp net-snmp-devel perl-DBI

cd zabbix-3.2.6

./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp  --with-libcurl

make

make install

 

groupadd zabbix

useradd -g zabbix zabbix

usermod -s /sbin/nologin zabbix

 

(3)、Zabbix Server端和Zabbix Agent执行以下代码:

yum  -y  install  curl  curl-devel  net-snmp  net-snmp-devel  perl-DBI

groupadd  zabbix

useradd  -g  zabbix  zabbix

usermod  -s  /sbin/nologin  zabbix

 

Zabbix Server端配置

(4)、建立zabbix数据库,执行受权命令:

mysql > create database zabbix charaset=utf8;

mysql > create zabbix;                                 #

 

mysql >grant all on zabbix.* to zabbix@localhost identified by '123456'

mysql >flush privileges;

 

     解压zabbix软件包并将zabbix基础SQL文件导入数据至zabbix数据库:

tar -zxvf zabbix-3.2.6.tar.gz

cd zabbix-3.2.6

mysql -uzabbix -p 123456 zabbix <database/mysql/schema.sql

mysql -uzabbix -p 123456 zabbix <database/mysql/images.sql

mysql -uzabbix -p 123456 zabbix <database/mysql/data.sql

 

      切换至Zabbix解压目录,执行以下代码,安装Zabbix_server:

./configure --prefix=/usr/local/zabbix/  --enable-agent --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

 注意:--enable-server          #开启服务端

make 

make install 

ln -s /usr/local/zabbix/sbin/zabbix* /usr/local/sbin/

          Zabbix server安装完毕,cd /usr/local/zabbix/etc/目录,如图13-3所示:

 

                 备份Zabbix server配置文件,代码:

cp zabbix_server.conf zabbix_server.conf.bak

                 将zabbix_server.conf配置文件中代码设置为以下:

LogFile=/tmp/zabbix_server.log

DBHost=localhost      

DBName=zabbix

DBUsr=zabbix

DBPassword=123456

               同时cp zabbix_server启动脚本至/etc/init.d/目录,启动zabbix_server,Zabbix_server默认监控的端口为10051.

cd zabbix-3.2.6

cp misc/init.d/tru64/zabbix_server  /etc/init.d/zabbix_server

chmod o+x /etc/init.d/zabbix_server

 

     配置Zabbix   interface Web页面,安装HTTP WEB 服务器,将Zabbix WEB代码发布至Apache默认发布目录,因为Zabbix3.2+PHP版本须要使用PHP5.4.0版本,请将本机PHP版本升级至5.4.0+,PHP版本须要使用PHP5.4.0版本,请将本机PHP版本升级至5.4.0+,PHP5.3升级至PHP5.6,代码以下:

rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

yum remove php*

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64  -y

yum   install  httpd  httpd-devel  httpd-tools  -y

cp -a   /root/zabbix-3.2.6/frontends/php/*    /var/www/html/

sed    -i   '/date.timezone/i date.timezone = PRC'   /etc/php.ini

              从新启动Zabbix Server、HTTP、MYSQL服务,代码以下:

/etc/init.d/zabbix_server  restart

/etc/init.d/httpd     restart

/etc/init.d/mysqld   restart

  1. Zabbix WEB GUI安装配置

                经过浏览器Zabbix_WEB验证,经过浏览器访问http://192.168.149.128/,如图13-4所示:

               单击下一步,出现如图13-5所示,若是有错误提示,须要把错误依赖解决完,方可进行下一步操做。

                如上异常错误解决方法代码以下,安装缺失的软包,并修改php.ini对应参数的值便可,如图13-6所示:

yum  install  php56w-mbstring  php56w-bcmath  php56w-gd  php56w-xml  -y

yum  install  gd  gd-devel  -y

sed   -i '/post_max_size/s/8/16/g;/max_execution_time/s/30/300/g;/max_input_time/s/60/300/g;s/\;date.timezone.*/date.timezone \= PRC/g;s/\;always_populate_raw_post_data/always_populate_raw_post_data/g'  /etc/php.ini

/etc/init.d/httpd  restart

图13-6 Zabbix WEB测试安装环境

        单击下一步,如图13-7所示,配置数据库链接,输入数据库名、用户、密码,单击Test connection,显示OK,单击下一步便可

图13-7 Zabbix WEB数据库配置

      继续单击下一步出现如图13-8所示,填写Zabbix Title显示,能够为空,能够输入自定义的名称。

登陆Zabbix WEB界面,默认用户名和密码为:admin/zabbix,如图13-10(a)、13-10(b)所示:

        单击下一步,如图13-9所示,需修建立zabbix.conf.php文件,执行以下命令,或者单击“Download the configuration file”下载zabbix.conf.php文件,并将该文件上传至/var/www/html/conf/,并设置可写权限,刷新WEB页面,zabbix.conf.php内容代码以下,最后单击Finish便可:

<?php

// Zabbix GUI configuration file.

global $DB;

$DB['TYPE']     = 'MYSQL';

$DB['SERVER']   = 'localhost';

$DB['PORT']     = '0';

$DB['DATABASE'] = 'zabbix';

$DB['USER']     = 'zabbix';

$DB['PASSWORD'] = '123456';

// Schema name. Used for IBM DB2 and PostgreSQL.

$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';

$ZBX_SERVER_PORT = '10051';

$ZBX_SERVER_NAME = '京峰教育-分布式监控系统';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

图13-9 Zabbix WEB配置文件测试

登陆Zabbix WEB界面,默认用户名和密码为:admin/zabbix,如图13-10(a)、13-10(b)所示:

图13-10(a) Zabbix WEB登陆界面

图13-10(b) Zabbix WEB后台界面

  1. Agent客户端安装配置

解压zabbix-3.2.6.tar.gz源码文件,切换至解压目录,编译安装Zabbix,命令以下:

./configure  --prefix=/usr/local/zabbix  --enable-agent

make

make install

ln  -s  /usr/local/zabbix/sbin/zabbix_*  /usr/local/sbin/

修改zabbix_agentd.conf客户端配置文件,执行以下命令,zabbix_agentd.conf内容,指定server IP,同时设置本地Hostname为本地IP地址或者DNS名称:

CPU、内存、负载、网卡、磁盘、IO、应用服务、端口、登陆用户、

LogFile=/tmp/zabbix_agentd.log

Server=192.168.149.128

ServerActive=192.168.149.128

Hostname = 192.168.149.129

同时cp zabbix_agentd启动脚本至/etc/init.d/目录,启动zabbix_agentd服务便可, Zabbix_agentd默认监听端口为10050。

cd zabbix-3.2.6

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd

chmod o+x /etc/init.d/zabbix_agentd

/etc/init.d/zabbix_agentd  start

  1. Zabbix监控客户端

Zabbix服务端和客户端安装完毕以后,需经过Zabbix Server添加客户端监控,Zabbix WEB界面添加客户端监控的操做步骤以下,如图13-11所示:

Zabbix-WEB ---configuration ---hosts ---Create host ---Host name和Agent interfaces,同时选择添加templates模板 ---选择Add -------勾选Template OS Linux-选择Add提交;

注*此处Host name名称与Agentd.conf配置文件中Hostname保持一致,不然会报错。

图13-11 Zabbix 添加客户端监控

将客户端主机连接至“Template OS Linux”,启用模板完成主机默认监控,单击Add

,继续单击Update便可,如图13-12所示:

图13-12 Zabbix 为客户端监控添加模板

单击Zabbix WEB---Monitoring---Graphs----Group----Host---Graph,监控图像如图13-13(a)、13-13(b)所示:

图13-13(a) Zabbix客户端监控图像

图13-13(b) Zabbix客户端监控图像

若是没法监控到客户端,能够在Zabbix Server端,执行命令获取Agent的items KEY值是否有返回,例如system.uname为返回客户端的uname信息,监测命令以下:

/usr/local/zabbix/bin/zabbix_get  -s  192.168.149.130   -k  system.uname

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常见问题:

一、编译Zabbix,报错以下:

二、编译Zabbix,报错信息以下:

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解决方法:yum  install  curl  curl-devel net-snmp mysql-devel mariadb-devel -y

onfigure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决方法:yum  install  curl  curl-devel net-snmp net-snmp-devel perl-DBI mysql-devel mariadb-devel -y

三、

预编译Zabbix报错信息一以下:

checking for mysql_config... no

configure: error: MySQL library not found

解决方法:

yum install mariadb-devel -y

预编译Zabbix报错信息二以下:

checking for curl-config... no

configure: error: Curl library not found

解决方法:

yum install curl-devel -y

 

四、

checking for the linux kernel version... unknown family (3.10.0-327.el7.x86_64)

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解决方案:yum install mariadb mariadb-server mariadb-devel –y

MYSQL(商业版、社区版)、Mariadb(开源免费,彻底兼容MYSQL指令)都是属于SQL数据库、RDBMS关系型数据库。

checking for the linux kernel version... unknown family (3.10.0-327.el7.x86_64)

checking size of void *... 8

checking for mysql_config... no

configure: error: MySQL library not found

解决方案:yum install mariadb mariadb-server mariadb-devel –y

MYSQL(商业版、社区版)、Mariadb(开源免费,彻底兼容MYSQL指令)都是属于SQL数据库、RDBMS关系型数据库。

相关文章
相关标签/搜索