Zabbix学习笔记01

Zabbix分布式监控

  • 监控网站无须人工时刻去访问Web网站或者登录服务器去检查,可以借助开源监控软件,例如Zabbix、、Cacti、Nagios、Ganglia等来实现对网站7*24小时的监控,并且做到有故障及时报警通知SA解决

Zabbix监控系统入门

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

Zabbix组件及流程

  • Zabbix主要由三大部分构成:Zabbix server端、Zabbix proxy、agent客户端,其中Zabbix server端包括Web GUI、database、Zabbix server
Zabbix学习笔记01_第1张图片
image.png
Zabbix学习笔记01_第2张图片
image.png
  • Zabbix监控完整流程:Agent安装在被监控的主机上,Agent负责定期收集客户端本地各项数据,并发送到Zabbix server端,Zabbix server收到数据,将数据存储在数据库中,用户可以基于Zabbix Web可以看到数据在前端展现的图像
  • 当Zabbix监控某个具体项目时,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括邮件、微信报警或者执行命令等操作.Zabbix完整监控系统各个部分负责的工作如下
    • Zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据均由其组织进行
    • database storage:专用于存储所有配置信息以及存储由Zabbix收集到的数据
    • Web interface:Zabbix的GUI接口,通常与server运行在同一主机上
    • proxy:常用于分布监控环境中,代理server收集部分被监控端的监控数据并统一发往server端
    • Zabbix agent:部署在被监控主机上,负责收集本地数据并发往server端或proxy端
  • Zabbix监控部署在系统中,通常包含5个常见的程序:zabbix_server、zabbix_get、zabbix_agentd、zabbix_proxy、zabbix_sender.5个程序分别对应5个进程,每个进程的功能如下:
    • zabbix_server:Zabbix服务端守护进程,其中zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy的数据最终均是提交给zabbix_server
    • zabbix_agentd:客户端守护进程,负责收集客户端数据,例如CPU负载、内存、磁盘使用情况
    • zabbix_get:Zabbix数据获取工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令
    • zabbix_sender:Zabbix数据发送工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查,很多检查非常耗时,导致Zabbix超时,于是需要在脚本执行完毕之后,使用sender主动提交数据
    • zabbix_proxy:Zabbix分布式代理守护进程,分布式监控架构需要部署zabbix_proxy

Zabbix监控方式及数据采集

  • Zabbix分布式监控系统监控客户端的方式常见有3种:agent方式、SNMP方式、IPMI方式,3种方式特点为:
    • agent:Zabbix可以基于自身zabbix_agent客户端插件监控OS的状态,例如CPU、内存、硬盘、网卡、文件等
    • SNMP:Zabbix可以通过简单网络管理协议(simple network management protocol,SNMP)监控网络设备或者Windows主机等,通过设定SNMP的参数将相关监控数据传送至服务器端,交换机、防火墙等网络设备一般都支持SNMP协议
    • IPMI:智能平台管理接口(intelligent platform management interface,IPMI)即主要应用于设备的物理特性,包括温度、电压、电扇工作状态、电源供应以及机箱入侵等,IPMI最大的优势在于无论OS在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控
  • Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加即可.关闭被动模式的方法为在配置文件中加入StartAgents=0,即为关闭被动模式.主被动监控模式区别如下:
    • Zabbix主动模式:agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server或者proxy,Zabbix agent首先向server active配置的IP请求获取active items,获取后将active items数据值提交给server或者proxy
    • Zabbix被动模式:server向agent请求获取监控项的数据,agent返回数据,server打开一个TCP连接,server发送请求agent.ping,agent接收到请求并响应,server处理接收到的数据

Zabbix监控概念

  • Zabbix监控系统包括很多监控概念,常用术语及解释如下:
    • 主机(host):被监控的网络设备,可以写IP或者DNS
    • 主机组(host group):主机组用于管理主机,可以批量设置权限
    • 监控项(item):具体监控项,items值有独立的keys进行识别
    • 触发器(trigger):为某个items设置触发器,达到触发器会执行action动作
    • 事件(event):例如达到某个触发器,称之为一个事件
    • 动作(action):对于特定事件事先定义的处理方法,默认可以发送信息及发送命令
    • 报警升级(escalation):发送警报或执行远程命令的自定义方案,如隔5分钟发送一次警报,共发送5次等
    • 媒介(media):发送通知的方式,可以支持mail、SMS、scripts等
    • 通知(notification):通过设置的媒介向用户发送的有关某事件的信息
    • 远程命令(remote command):达到触发器,可以在被监控端执行命令
    • 模板(template):可以快速监控被监控端,模块包含item、trigger、graph、screen、application
    • Web场景(Web scennario):用于检测Web站点可用性,监控HTTP关键词
    • Web前端(Web frontend):Zabbix的Web接口
    • 图形(graph):监控图像
    • 屏幕(screens):屏幕显示
    • 幻灯(slide show):幻灯显示

Zabbix监控平台部署

  • Zabbix监控平台部署,至少需要4个组件:Zabbix Server、Zabbix Web、Zabbix databases、Zabbix Agent

    1. 系统环境
      • server端:10.0.0.202
      • agent端:10.0.0.203
    2. 下载Zabbix版本,安装版本为zabbix-3.2.6.tar.gz
    # 访问官网下载压缩包
    https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
    
    # rz 接收压缩包
    
    # 或者官网下载安装流程
    https://www.zabbix.com/cn/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx
    
    1. Zabbix Server和Zabbix Agent端执行如下命令
    yum install curl curl-devel net-snmp net-snmp-devel perl-DBI -y
    groupadd zabbix;useradd -g zabbix zabbix;usermod -s /sbin/nologin zabbix
    
    1. Zabbix Server端配置
    # 创建Zabbix数据库
    create database zabbix charset=utf8;
    grant all on zabbix.* to zabbix@% identified by '123456';
    flush privileges;
    
    # 解压Zabbix软件包并将Zabbix基础SQL文件导入数据至Zabbix数据库
    tar xf 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 --enable-agent --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 # 查看配置文件
    
Zabbix学习笔记01_第3张图片
image.png
# 备份Zabbix Server配置文件
cp zabbix_server.conf{,.bak}
# 在zabbix_serverconf配置文件中设置代码
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=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

[root@lianxi zabbix-3.2.6]# ll /etc/init.d/zabbix_server
-rw-r--r-- 1 root root 1521 Mar 15 20:37 /etc/init.d/zabbix_server

[root@lianxi zabbix-3.2.6]# chmod o+x /etc/init.d/zabbix_server
[root@lianxi zabbix-3.2.6]# ll /etc/init.d/zabbix_server
-rw-r--r-x 1 root root 1521 Mar 15 20:37 /etc/init.d/zabbix_server
# 配置Zabbix interface Web页面,安装HTTP Web服务器,将Zabbix Web代码发布至Apache默认发布目录,PHP版本需要使用PHP5.4.0以上版本,将PHP5.3升级至PHP5.6
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

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/
修改/etc/php.ini中的date.timezone变量,修改为date.timezone = PRC
# 重新启动Zabbix Server、HTTP、MySQL服务
/etc/init.d/zabbix_server start/restart
/usr/sbin/apachectl start/restart
/etc/init.d/mysqld start/restart

# 在运行/etc/init.d/zabbix_server start/restart时报错
/usr/local/sbin/zabbix_server: error while loading shared libraries:
libmysqlclient.so.20
# 解决方法:进入到mysql的库目录中,把libmysqlclient.so.20复制到系统库目录中
cd /usr/local/mysql/lib
cp libmysqlclient.so.20  /usr/lib64/libmysqlclient.so.20
  1. Zabbix Web GUI安装

    • 通过浏览器Zabbix Web验证,浏览器访问http://10.0.0.202
    • 关闭防火墙:systemctl stop firewalld
    Zabbix学习笔记01_第4张图片
    image.png
 - 出现错误提示,需要解决错误提示才可进行下一步操作
Zabbix学习笔记01_第5张图片
image.png
 - 安装缺失的软件包,并修改php.ini对应参数的值
  yum install php56w-mbstring php56w-bcmath php56w-gd php56w-xml -y
  yum install gd gd-devel -y
  
  vim /etc/php.ini
  post_max_size = 16M
  max_execution_time = 300
  max_input_time = 300
  date.timezone = PRC
  always_populate_raw_post_data = -1
  
  /usr/sbin/apachectl restart
Zabbix学习笔记01_第6张图片
image.png
 - 点击下一步,进入到数据库配置
Zabbix学习笔记01_第7张图片
image.png
 - 进入到Zabbix server配置
Zabbix学习笔记01_第8张图片
image.png
 - 配置概述页面
Zabbix学习笔记01_第9张图片
image.png
 - 报错,具体信息为无法创建配置文件
Zabbix学习笔记01_第10张图片
image.png
 - 点击download the configuration file下载zabbix.conf.php文件,并将该文件上传至/var/www/html/conf,同时设置可写权限,刷新Web页面,zabbix.conf.php配置如下
  
 - 点击下一步进入到Zabbix Web登录页面,默认账号密码为admin/zabbix
Zabbix学习笔记01_第11张图片
image.png
 - Zabbix Web界面
Zabbix学习笔记01_第12张图片
image.png
  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客户端配置文件,制定server IP,同时设置本地Hostname为本地IP地址或者DNS名称
    修改Server为Zabbix Server IP地址
    LogFile=/tmp/zabbix_agentd.log
    Server=10.0.0.202
    ServerActive=10.0.0.202
    Hostname=10.0.0.203
    
    • 同时执行命令cp zabbix_agentd启动脚本至/etc/init.d目录,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 agent started.
    
  2. Zabbix监控客户端

    • Zabbix服务端和客户端安装完毕之后,需通过Zabbix server添加客户端监控,Zabbix Web界面添加客户端监控的操作步骤为
    • configuration --> hosts --> Create host --> Host name和Agent interfaces,同时添加templates模板,选择Add --> Template OS Linux.此处Host name 名称与Agentd.conf配置文件中Hostname保持一致,否则会报错
Zabbix学习笔记01_第13张图片
image.png
 - 将客户端主机连接至Template OS Linux,启用模板完成主机默认监控,单击Add,再继续单击Update即可
Zabbix学习笔记01_第14张图片
image.png
 - 一次选择Zabbix Web --> Monitoring --> Graphs --> Group --> Host --> Graph,监控图像如下:
Zabbix学习笔记01_第15张图片
image.png
 - 如果无法监控到客户端,可以在Zabbix Server端执行命令获取agent的items key值是否有返回,例如system.uname为返回客户端的uname信息
  [root@lianxi ~]# /usr/local/zabbix/bin/zabbix_get -s 10.0.0.203 -k system.uname
  Linux mango 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64

你可能感兴趣的:(Zabbix学习笔记01)