当前位置:   article > 正文

Linux入门到精通-企业实战①第11章Zabbix分布式监控①

linux入门到精通-企业实战①第11章zabbix分布式监控①

在这里插入图片描述

第 11 章 Zabbix 分布式监控

企业实战企业服务器对用户提供服务,作为运维工程师最重要的事情就是保证该网站正常稳定的运行,需要实时监控网站、服务器的运行状态,并且有故障及时去处理。
监控网站无需人工时刻去访问 WEB 网站或者登陆服务器去检查,可以借助开源监控软件例如 Zabbix、Cacti、Nagios、Ganglia 等来实现对网站的 7x24 小时的监控,并且做到有故障及时报警通知 SA 解决。
本章向读者介绍企业级分布式监控 Zabbix 入门、Zabbix 监控原理、最新版本 Zabbix安装实战、Zabbix 批量监控客户端、监控 MYSQL、WEB 关键词及微信报警等。

11.1 Zabbix 监控系统入门简介

Zabbix 是一个基于 WEB 界面的提供分布式系统监控的企业级的开源解决方案,Zabbix 能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让 SA 快速定位并解决存在的各种问题。Zabbix 分布式监控系统的优点如下:
 支持自动发现服务器和网络设备;
 支持底层自动发现;
 分布式的监控体系和集中式的 WEB 管理;
 支持主动监控和被动监控模式;
 服务器端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, MAC 等;
 Agent 客户端支持多种操作系统:Linux, Solaris, HP-UX, AIX, FreeBSD,Windows 等;
 基于 SNMP、IPMI 接口方式、Agent 方式;
 安全的用户认证及权限配置;
 基于 WEB 的管理方法,支持自由的自定义事件和邮件、短信发送;
 高水平的业务视图监控资源,支持日志审计,资产管理等功能;
 支持高水平 API 二次开发、脚本监控、自 Key 定义、自动化运维整合调用。

11.2 Zabbix 监控平台部署

(1) Zabbix Server 端和 Zabbix Agent 执行如下代码:
Zabbix 监控平台部署,至少需要安装四个组件,分别是 Zabbix_Server、
Zabbix_Web、Databases、Zabbix_Agent,如下为 Zabbix 监控平台安装配置详细步骤:
(2) 系统环境
Server 端:192.168.149.128
Agent 端:192.168.149.129
(3) 下载 zabbix 版本,各个版本之间安装方法相差不大,可以根据实际情况选择安装版本,本文版本为 Zabbix-3.2.6.tar.gz。
wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
groupadd zabbix
useradd -g zabbix zabbix
usermod -s /sbin/nologin zabbix

(4) Zabbix Server 端配置
创建 zabbix 数据库,执行授权命令:
create database zabbix charset=utf8;
grant all on zabbix.* to zabbix@localhost identified by ‘123456’;
flush privileges;
解压 zabbix 软件包并将 Zabbix 基础 SQL 文件导入数据至 Zabbix 数据库:
tar zxvf zabbix-3.2.6.tar.gz
cd zabbix-3.2.6
mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql
mysql -uzabbix -p123456 zabbix <database/mysql/images.sql
mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
切换至 Zabbix 解压目录,执行如下代码,安装 Zabbix_server:
./configure --prefix=/usr/local/zabbix/ --enable-server --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
make
make install
ln -s /usr/local/zabbix/sbin/zabbix_* /usr/local/sbin/
Zabbix server 安装完毕,cd /usr/local/zabbix/etc/目录,如图 13-3 所示:
在这里插入图片描述

图 13-3 Zabbix 监控流程图备份 Zabbix server 配置文件,代码如下:

cp zabbix_server.conf zabbix_server.conf.bak
  • 1

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

LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
  • 1
  • 2
  • 3
  • 4
  • 5

同时 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+,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

(5) Zabbix WEB GUI 安装配置
通过浏览器 Zabbix_WEB 验证,通过浏览器访问 http://192.168.149.128/,如图13-4 所示:
在这里插入图片描述

图 13-4 Zabbix WEB 安装界面
单击下一步,出现如图 13-5 所示,如果有错误提示,需要把错误依赖解决完,方可进行下一步操作。
在这里插入图片描述

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

yum install php-mbstring php-bcmath php-gd php-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
service httpd restart
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

图 13-6 Zabbix WEB 测试安装环境
单击下一步,如图 13-7 所示,配置数据库连接,输入数据库名、用户、密码,单击Test connection,显示 OK,单击下一步即可。
在这里插入图片描述

图 13-7 Zabbix WEB 数据库配置
继续单击下一步出现如图 13-8 所示,填写 Zabbix Title 显示,可以为空,可以输入自定义的名称。
在这里插入图片描述

图 13-8 Zabbix WEB 详细信息
单击下一步,如图 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;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

图 13-9 Zabbix WEB 配置文件测试
登录 Zabbix WEB 界面,默认用户名和密码为:admin/zabbix,如图 13-10(a)、
13-10(b)所示:
在这里插入图片描述

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

在这里插入图片描述

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

(6) 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

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

11.3 Zabbix 自动发现及注册

熟练通过 Zabbix 监控平台监控单台客户端之后,企业中有成千上万台服务器,如果手工添加会非常耗时间,造成大量的人力成本的浪费,有没有什么好的自动化添加客户端的方法呢?
Zabbix 自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是 Zabbix Server 端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服务器添加至 Zabbix 监控平台,省去人工手动频繁的添加,节省大量的人
力成本。
Zabbix 相对于 Nagios、Cacti 监控来说,如果要想批量监控,Nagios、Cacti 需要手动单个添加设备、分组、项目、图像,也可以使用脚本,但是不能实现自发方式添加。
Zabbix 最大的特点之一就是可以批量自动主机并监控,利用发现(Discovery)模块,实现自动发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(Items)、自动创建监控图像,操作步骤如下:

(1) Configurationdiscovery  Create discovery rule,如图 13-14 所示:
在这里插入图片描述

图 13-14 创建客户端发现规则

Name: 规则名称;
Discovery by proxy : 通过代理探索;
IP range : zabbix_server 探索区域的 IP 范围;
Delay : 搜索一次的时间间隔;
Checks : 检测方式,如用 ping 方式去发现主机,zabbix_server 需安装 fping,此处使用 Agent 方式发现;
Device uniqueness criteria: 以 IP 地址作为被发现主机的标识。

(2) Zabbix 客户端安装 Agent
由于发现规则里选择 checks 方式为 Agent,所以需在所有被监控的服务器安装zabbix Agent,安装的方法可以手动安装,也可以使用 Shell 脚本,附 Zabbix 客户端安装脚本,脚本运行方法:sh auto_install_zabbix.sh。
#!/bin/bash
#auto install zabbix
#by jfedu.net 2019
#############
ZABBIX_SOFT=“zabbix-3.2.6.tar.gz”
INSTALL_DIR=“/usr/local/zabbix/” SERVER_IP=“192.168.149.128”
IP=ifconfig|grep Bcast|awk '{print $2}'|sed 's/addr://g' AGENT_INSTALL(){
yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI
groupadd zabbix ;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
tar -xzf $ZABBIX_SOFT;cd echo $ZABBIX_SOFT|sed 's/.tar.*//g'
./configure --prefix=/usr/local/zabbix --enable-agent&&make install
if [ KaTeX parse error: Expected 'EOF', got '#' at position 194: …/zabbix_agentd #̲config zabbix a…INSTALL_DIR/etc/zabbix_agentd.conf<<EOF
LogFile=/tmp/zabbix_agentd.log
Server= S E R V E R I P S e r v e r A c t i v e = SERVER_IP ServerActive= SERVERIPServerActive=SERVER_IP
Hostname = $IP
EOF
#start zabbix agentd
/etc/init.d/zabbix_agentd restart
/etc/init.d/iptables stop
setenforce 0
}
AGENT_INSTALL

(3) 创建发现 Action
Zabbix 发现规则创建完毕,客户端 Agent 安装完后,被发现的 IP 主机不会自动添加至 Zabbix 监控列表,需要添加发现动作,添加方法如下:
Configuration Actions  Event source(选择 Discovery)  Create action添加规则时,系统默认存在一条发现规则,可以新建规则,也可以编辑默认规则,
如图 13-15(a)、13-15(b)、13-15(c)所示,编辑默认发现规则,单击 Operations设置发现操作,分别设置 Add host、Add to host groups、Link to templates,最后启用规则即可:
在这里插入图片描述
图 13-15(a) 创建客户端发现动作

在这里插入图片描述
图 13-15(b) 客户端发现自动添加至 Zabbix

在这里插入图片描述

图 13-15(c) 客户端发现自动添加至 Zabbix

MontoringDiscovery,查看通过发现规则找到的服务器 IP 列表,如图 13-16 所示:
在这里插入图片描述

图 13-16 被发现的客户端列表

ConfigurationHosts,查看 4 台主机是否被自动监控至 Zabbix 监控平台,如图13-17 所示:
在这里插入图片描述

图 13-17 自动发现的主机被添加至 Hosts 列表

MonitoringGraphs,监控图像查看,如图 13-18(a)、13-18(b)所示,可以选择 Host、Graph 分别查看各种的监控图像:
在这里插入图片描述

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

在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/424819
推荐阅读
相关标签
  

闽ICP备14008679号