Zabbix

运行Zabbix需要LAMP环境,

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

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

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

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

常见监控软件:NagiosCactiMrtgGangliaZabbix

 

分析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监控流程图

c96c7c1a681e74bfe4d8810ae52cb59608b.jpg

  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),

 

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网站或者登陆服务器去检查,可以借助开源监控软件例如Zabbix、Cacti、Nagios、Ganglia等来实现对网站的7x24小时的监控,并且做到有故障及时报警通知SA解决。

 

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

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

 

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

  1. Zabbix工作原理:

2198d5fb9f34140c2d41678e48e5fe5303e.jpg

分布式特点:分散管理、分担压力、分开存储,缓解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、db2、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模块,解压源代码包,进入源码目录,如图所示:

1decee80857d3f00ca63720c96917e4bfef.jpg

./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所示:

789570eab1b6df0928a131d88b97d625847.jpg

 

                 备份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所示:

6633c950a19801883cb0821e88dd08a107e.jpg

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

dff14135fa51357f27efb88f8eafacbf37e.jpg

                如上异常错误解决方法代码如下,安装缺失的软包,并修改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

a427f66618e67a54079d2fc8a9c9aaece32.jpg

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

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

4a8e8841eaa2e8c346a735499f770c035b9.jpg

图13-7 Zabbix WEB数据库配置

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

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

97b41a7b5adc0e13c48039cb0616b8ccadc.jpg

9c9355e36bab078179058bfe07be94fb1d7.jpg

        单击下一步,如图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;

4e9547458a2613087ed10c8fd1bf552b001.jpg 图13-9 Zabbix WEB配置文件测试

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

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

59abd86b546d59f3847f01c0a7e3bb4a935.jpg

图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保持一致,否则会报错。

0504ec64514fe984a71311e03e5ae207bff.jpg

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

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

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

a3a0a058ba3b247d73a85f66b0486b4279d.jpg

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

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

29b8f595467d7d01e9358aae3d847d5cf10.jpg

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

a3a0a058ba3b247d73a85f66b0486b4279d.jpg

图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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

常见问题:

1、编译Zabbix,报错如下:

ce165f9ed57a25b187abb28fea6265cd724.jpg

dbe6a19e6469d22f68d401060c291b1a295.jpg

2、编译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

e2ba0e563c3b7fcabd15f576be54ac923d1.jpg

3、

预编译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

 

4、

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关系型数据库。

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3803405/blog/1837367

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值