运行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
- 企业Centos6.x一般用于部署承载各个应用,例如Nginx、MYSQL、Redis、MQ等;
- 企业Centos7.x一般用于部署承载各个应用,例如Docker、openstack、ELK等;
常见监控软件:Nagios、Cacti、Mrtg、Ganglia、Zabbix、
分析Zabbix监控平台概念和应用场景;
- Zabbix一款开源、免费的基于WEB界面的实时分布式监控系统;
- Zabbix开源监控的内容非常广泛,分为四大类:硬件、网络、系统、软件;
- Zabbix监控服务器硬件设备的状态,例如监控CPU温度、风扇的转速、监控服务器电源使用情况、机箱被入侵;
- Zabbix监控平台还开源监控网络情况、交换机的流量、服务器网卡流量;
- Zabbix监控平台可以监控操作系统CPU、内存、硬盘容量、登录用户数、文件是否被修改、权限,还可以监控各种软件运行情况、Nginx、MYSQL、Docker虚拟机、Apache、ZK服务等;
- Zabbix监控最核心的价值:可以7x24x365实时监控整个公司各种设备、系统、网络、软件运行的情况,有故障可以第一时间通知(短信、邮件、微信、QQ)SA,SA收到报警信息,立刻去处理;
- Zabbix监控属于C/S模式,客户端和服务器端,服务器端负责数据汇总、处理,客户端负责数据的采集和监控。
- 一个完整的ZABBIX平台包括:Zabbix-WEB、Database、Zabbix-Server、Agent客户端;
- Zabbix监控客户端的方式有三种,基于Agent插件方式、SNMP协议、IPMI智能接口;
- Agentd安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix Server端,Zabbix Server收到数据,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。
Zabbix监控流程图
- Zabbix_server负责汇总客户端发送的监控数据,进行处理,存储到MYSQL(关系型)数据库中;
- Zabbix_WEB,以PHP语言编写代码,读取、调用MYSQL中监控数据在WEB界面进行展示。
- Zabbix_server要监控200台服务器,突然发现压力比较大,此时100台server用proxy去监控。
- Zabbix_server,服务器端主程序,daemon进程,负责收集和汇总客户端返回的监控数据,并且将数据存储database中;
- Zabbix_database,独立的数据库,主要负责存储zabbix具体监控项目的数据和基础应用数据及权限信息;
- Zabbix_WEB,基于PHP语言开发的一套WEB前端网页,主要用于用户SA去查看监控数据,web页面展示,更加的形象,各种配置和操作,通过WEB更加的方便。
- Zabbix_agent,被监控端,WEB页面、网络设备、服务器硬件、Linux或者windows OS;;;Agent安装在被监控端,负责收集本地的监控数据;
- Zabbix_Proxy,是属于Zabbix_server的克隆,为了分担Zabbix_server的压力,分布式节点,proxy可以直接去监控agent客户端,同时定时将数据发到Server,称为集中式WEB管理;
- 假设现在Zabbix监控平台需要监控1000台,server监控200台,2个proxy监控800台。
- Zabbix_server监控客户端,通过很多方式,SNMP、IPMI、Agent、HTTP协议;
-
C/S模式:server端(Zabbix_server、DB、php WEB)、client端(安装Zabbix_Agent),
Zabbix监控平台组件概念
- 完整的Zabbix监控平台组件如图所示,整个监控平台包括:Zabbix-web、Zabbix-database、Zabbix-server、Zabbix-proxy、Zabbix-Client等;
- Zabbix-web,基于PHP语言编写的WEB界面,看成Zabbix WEB管理平台,方便运维人员通过WEB方式操作整个监控,包括查看和配置监控项、数据图形;
- Zabbix-database,关系型数据库系统,数据存储在二维表格中,行和列组成的,代表有MYSQL、MariaDB、Oracle、DB2等,用于存储用户权限、密码,客户端各项监控数据、配置数据;
- Zabbix-server,是整个监控平台的核心,老大,负责监控和收集、汇总客户端的各项监控数据,然后进行统一的分配和存储至Database中;
- Zabbix-proxy,给Server分担压力的,代替Server去监控客户端,并且可以收集客户端的数据,最终统一上报给老大,看成是分布式的节点,proxy收集的所有的数据,统一上报给Server;
- Zabbix-Client,被监控端,是被Server或者Porxy所监控的对象,统称为客户端,Zabbix属于C/S模式(Client/Server模式);
Zabbix分布式监控微信报警实战
- Zabbix分布式监控系统安装部署(功能应用场景)
- Zabbix应用场景:
企业服务器对用户提供服务,作为运维工程师最重要的事情就是保证该网站正常稳定的运行,需要实时监控网站、服务器的运行状态,并且有故障及时去处理。
监控网站无需人工时刻去访问WEB网站或者登陆服务器去检查,可以借助开源监控软件例如Zabbix、Cacti、Nagios、Ganglia等来实现对网站的7x24小时的监控,并且做到有故障及时报警通知SA解决。
Zabbix分布式监控系统(微信报警实战)
- 主要用于监控WEB网站、数据库、服务器运行状态;
- 监控网络设备、交换机、路由器、防火墙设备;
- 监控物理机服务器、CPU温度、机箱是否被入侵;
- 监控各种应用,Nginx、MYSQL、PHP、CPU、内存、硬盘资源情况;
一个完整的ZABBIX平台包括:Zabbix-WEB、Database、Zabbix-Server、Agent客户端;
- Zabbix工作原理:
分布式特点:分散管理、分担压力、分开存储,缓解Zabbix_Server压力;
- Zabbix web UI,需要部署WEB平台,PHP代码,存储在zabbix源码目录中;
- 构建一个可以发布PHP的架构,常见LAMP、LNMP、LEMP等;
- Zabbix监控实战(CentOS7.3)
- zabbix_server,独立的服务,需要单独安装,后台启动服务;
checking for mysql_config... no
configure: error: MySQL library not found
解决方法:yum install mysql-devel -y
- Zabbix_web,PHP代码,需要LAMP、LNMP环境;
- zabbix_database,关系型数据库系统,可以是mysql、orache、db2、postgresql等;
yum install mariadb mariadb-server mariadb-devel -y
- zabbix_agent,客户端软件,部署在客户端服务器,Linux或者Windows;
- 如果想zabbix监控网络设备,需要基于SNMP协议,在交换机网络设备开启snmp,基于团体名认证;
WEB网站连接数据库
- WEB网站需要连接数据库,必备条件是什么呢?
- 确认WEB网站代码类型,是PHP、ASP、JSP代码;
- WEB网站连接数据库,需要连接的驱动,例如JDBC连接驱动;
- 数据库中需要创建库,create database jfedu;
- WEB网站的数据一般存储到MYSQL库里面的表中,程序自动创建表,提前导入DBA写好表结构;
- 需要对WEB网站服务器进行授权,在数据库服务器授权WEB来访问、权限包括insert、create、update、drop、select、delete等;
从0开始Zabbix监控平台实战
- 至少准备1台服务器,配置没有要求,生产环境推荐配置:8C16G300G,如果是虚拟机,配置最低:1C1G40GB;
- 安装Zabbix服务端的操作系统,只能选择Linux服务器,推荐CentOS7.x,CentOS7.3!Windows操作系统可以安装客户端。
- 安装Zabbix监控平台必备的组件:Zabbix-WEB、Zabbix-Server、Zabbix-Database(生产环境独立部署)、Zabbix-Client;
- 配置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++ -
-
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
或者
链接: 密码: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 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 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 |
- Zabbix WEB GUI安装配置
通过浏览器Zabbix_WEB验证,通过浏览器访问,如图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文件,执行如下命令,或者单击“”下载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后台界面
- 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 |
- 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 |
常见问题:
1、编译Zabbix,报错如下:
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
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关系型数据库。