Zabbix的基本概述及快速搭建(一)

1. Zabbix

1. Zabbix概述

Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。

Zabbix 是一种企业级的分布式开源监控解决方案。

Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。

Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。

Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和分发的。这意味着它的源代码是免费分发的,并且可供公共使用。

2. Zabbix功能

2.1 数据采集

  • 可用性和性能采集;
  • 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控
  • 自定义检查;
  • 按照自定义的时间间隔采集需要的数据;
  • 通过 Server/Proxy 和 Agents 来执行数据采集。

2.2 灵活的阈值定义

可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。

2.3 高度可配置化的告警

  • 可以根据递增计划、接收者、媒介类型自定义发送告警通知;
  • 使用宏变量可以使告警通知变得更加高效有益;
  • 自动动作包含远程命令。

2.4 实时图形

  • 使用内置图形功能可实以将监控项绘制成图形。

2.5 Web 监控功能

  • Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。

2.6 丰富的可视化选项

  • 能够创建可以将多个监控项组合到单个视图中的自定义图形;
  • 网络拓扑图;
  • 以仪表盘样式展示自定义聚合图形和幻灯片演示;
  • 报表;
  • 监控资源的高层次(业务)视图。

2.7 历史数据存储

  • 存储在数据库中的数据;
  • 可配置的历史数据;
  • 内置数据管理机制(housekeeping)。

2.8 配置简单

  • 将被监控设备添加为主机;
  • 主机一旦添加到数据库中,就会采集主机数据用于监控;
  • 将模板用于监控设备。

2.9 套用模板

  • 在模板中分组检查;
  • 模板可以关联其他模板,获得继承。

2.10 网络发现

  • 自动发现网络设备;
  • Zabbix Agent 发现设备后自动注册;
  • 自动发现文件系统、网络接口和 SNMP OIDs 值。

2.11 快捷的 Web 界面

  • 基于 PHP 的 Web 前端;
  • 可以从任何地方访问;
  • 您可以定制自己的操作方式;
  • 审计日志。

2.12 Zabbix API

  • Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。

2.13 权限管理系统

  • 安全的用户身份验证;
  • 将特定用户限制于访问特定的视图。

2.14 功能强大且易于扩展的 Zabbix Agent

  • 部署于被监控对象上;
  • 完美支持 Linux 和 Windows ;

2.15 二进制守护进程

  • 为了更好的性能和更少的内存占用,采用 C 语言编写;
  • 便于移植。

2.16适应更复杂的环境

  • 使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。

3. Zabbix概述

3.1 架构

  • Zabbix 由几个主要的功能组件组成,其职责如下所示。

3.2 Server

  • Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。

3.3 数据库

  • 所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。

3.4 Web 界面

  • 为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。

3.5 Proxy

  • Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。

3.6 Agent

  • Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。

3.7 数据流

  • 此外,重要的是,需要回过头来了解下 Zabbix 内部的整体数据流。首先,为了创建一个采集数据的监控项,必须先创建主机。其次,必须有一个监控项来创建触发器。最后,必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果想要收到 CPU load it too high on Server X 的告警,必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。

4. 定义

4.1 主机(host)

  • 你想要监控的联网设备,有IP/DNS。

4.2 主机组(host group)

  • 主机的逻辑组;可能包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。

4.3 监控项(item)

  • 你想要接收的主机的特定数据,一个度量/指标数据。

4.4 值预处理(value preprocessing)

  • 转化/预处理接收到的指标数据 存入数据库之前。

4.5 触发器(trigger)

  • 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回“OK”的状态。

4.6 事件(event)

  • 一次发生的需要注意的事情,例如触发器状态改变、发现/监控代理自动注册

4.7 事件标签(event tag)

  • 提前设置的事件标记可以被用于事件关联,权限细化设置等。

4.8 事件关联(event correlation)

  • 自动灵活的、精确的关联问题和解决方案

比如说,你可以定义触发器A告警的异常可以由触发器B解决,触发器B可能采用完全不同的数据采集方式。

4.9 异常(problems)

  • 一个处在“异常”状态的触发器

4.10 异常更新(problem update)

  • Zabbix提供的问题管理选项,例如添加评论、确认异常、改变问题级别或者手动关闭等。

4.11 动作(action)

  • 预先定义的应对事件的操作

一个动作由操作(例如发出通知)和条件(什么时间进行操作)组成

4.12 升级(escalation)

  • 一个在动作内执行操作的自定义方式; 发送通知/执行远程命令的顺序安排。

4.13 媒介(media)

  • 发送告警通知的方式;传送途径

4.14 通知(notification)

  • 关于事件的信心,将通过选设定的媒介途径发送给用户。

4.15 远程命令(remote command)

  • 一个预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。

4.16 模版(template)

  • 一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合

模版的应用使得主机上的监控任务部署快捷方便;也可以使监控任务的批量修改更加简单。模版是直接关联到每台单独的主机上。

4.17 应用(application)

  • 一组监控项组成的逻辑分组

4.18 Web场景(web scenario)

  • 检查网站可浏览性的一个或多个HTTP请求

4.19 前端(frontend)

  • Zabbix提供的web界面

4.20 Zabbix API

  • Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务

4.21 Zabbix server

  • Zabbix监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等

4.22 Zabbix agent

  • 部署在监控对象上的,能够主动监控本地资源和应用的程序

4.23 Zabbix proxy

  • 一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序

4.24 加密(encryption)

  • 支持Zabbix组建之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get 程序) 使用TLS(Transport Layer Security )协议。

5. Zabbix安装部署

安装环境要求具体可以参照Zabbix官网[https://www.zabbix.com/documentation/5.0/zh/manual/installation/requirements]

部署zabbix需要两台机器,一台为server,一台为agent

5.1 两台机器的基本环境部署

5.1.1 关闭防火墙及selinux
[root@server ~]# systemctl stop firewalld && systemctl disable firewalld
[root@server ~]#  setenforce 0
[root@server ~]#  sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
5.1.2 设置主机名并解析
[root@server ~]#  hostnamectl set-hostname server.com # 另一台为agent.com
[root@server ~]#  
[root@server ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.44.150 server.com
192.168.44.151 agent.com
5.1.3 关闭NetworkManager
[root@server ~]#  systemctl disable NetworkManager
[root@server ~]#  systemctl stop  NetworkManager
5.1.4 编写相关脚本进行配置源及安装

zabbix的安装源

[root@server ~]#  vim zabbix_aliyun.sh
#!/bin/bash

echo -e "请给出要安装的zabbix版本号,建议使用4.x的版本  \033[31musage:./zabbix_aliyun.sh 4.0|4.4|4.5|5.0 \033[0m"
echo "例如要安装4.4版本,在命令行写上 ./zabbix_aliyun.sh 4.4"
if [ -z $1 ];then
    exit
fi
VERSION=$1
if [ -f /etc/yum.repos.d/zabbix.repo ];then
    rm -rf /etc/repos.d/zabbix.repo
fi
rpm -qa | grep zabbix-release && rpm -e zabbix-release
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/$VERSION/rhel/7/x86_64/zabbix-release-$VERSION-1.el7.noarch.rpm
sed -i "s@zabbix/.*/rhel@zabbix/$VERSION/rhel@g" /etc/yum.repos.d/zabbix.repo
sed -i 's@repo.zabbix.com@mirrors.aliyun.com/zabbix@g' /etc/yum.repos.d/zabbix.repo
[ $? -eq 0 ] && echo "阿里云的zabbix源替换成功" || exit 1
yum clean all
yum makecache fast

mysql的安装脚本

#!/bin/bash
# 下载编译好的mysql
# wget -P /tmp ftp://10.10.11.222/mysql.tar.gz
# 解压解压目录/usr/local 解压mysql压缩包
tar -xvf mysql.tar.gz -C /usr/local/
# 添加mysql用户 默认uid为27 shell种类为/sbin/nologin
useradd -u 27 -M -s /sbin/nologin mysql
# 创建mysql数据目录
mkdir /usr/local/mysql/data
# 将其拥有者所属组修改为mysql
chown -R mysql.mysql /usr/local/mysql/
# 初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data >/tmp/mysql.passwd 2>&1
# 删除Mariadb文件的配置
rm -rf /etc/my.cnf
# 创建mysql目录
mkdir /var/lib/mysql
# 将其拥有者所属组修改为mysql
chown -R mysql.mysql /var/lib/mysql
# 拷贝文件至/etc/init.d/mysqldd目录里 检测并重启服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd
chkconfig --add mysqldd
systemctl restart mysqldd
# 添加环境变量 可以使用mysql命令
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/bashrc
echo "export PATH" >> /etc/bashrc
source  /etc/bashrc
# 获取密码
password=`cat /tmp/mysql.passwd | tail -1 | awk '{print $NF}'`
# 使用密码进行登录
/usr/local/mysql/bin/mysqladmin -u root -p"$password" password '123'
echo "source password:" $password
echo "new password: 123"

5.1.5 执行相关脚本进行安装部署

安装zabbix、mysql、对应版本的PHP

# mysql安装
[root@server ~]#  bash mysql-init.sh

# 配置阿里源安装PHP和zabbix-server
[root@server ~]#  bash zabbix_aliyun.sh 5.0

# 安装Apache及相关对应的软件包
[root@server ~]#  yum install -y httpd  php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
# 安装常用的开发软件
[root@server ~]#  yum groups install "Development Tools"
[root@server ~]#  yum groups info "Development Tools"
# 安装Zabbix5.0仓库
[root@server ~]#  rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@server ~]#  yum clean all
[root@server ~]#  yum install zabbix-server-mysql  -y
# 启用Red Hat软件集合
[root@server ~]#  yum install centos-release-scl -y

# 配置zabbix需要修改zabbix-fronted源,将enabled值改为1
[root@server ~]#  vim /etc/yum.repos.d/zabbix.repo

# 安装zabbix的web图形界面及数据库的相关组件
[root@server ~]#  yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
# 将zabbix的表全部导入到创建的数据库里
[root@server ~]#  zcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz | mysql -uzabbix -p123 zabbix

# 修改zabbix_server.conf文件,添加数据库的密码,php时区修改
[root@server ~]#  vim /etc/zabbix/zabbix_server.conf
DBPassword=password
[root@server ~]#  vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 
php_value[date.timezone] = Asia/Shanghai

# 启动zabbix-server及PHP Apache
[root@server ~]#  systemctl restart zabbix-server  httpd rh-php72-php-fpm&&systemctl enable zabbix-server httpd rh-php72-php-fpm
[root@server ~]#  systemctl restart rh-php72-php-fpm

# 此处可以忽略 是修改zabbix中的中文字体设置
[root@server ~]#  yum install -y wqy-microhei-fonts
[root@server ~]#  cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
# 每次修改完配置文件后都需要进行服务的重启
[root@server ~]#  systemctl restart zabbix-server

# 如果PHP中没有指向数据库的路径,则需要进行修改
[root@server ~]#  vim /etc/php.ini 
mysql.default_socket = /var/lib/mysql/mysql.sock

# 重启服务
[root@server ~]#  systemctl restart rh-php72-php-fpm
[root@server ~]#  systemctl restart zabbix-server
[root@server ~]#  cat /var/log/zabbix/zabbix_server.log 
[root@server ~]#  ls /etc/my.cnf.d/
5.1.6 登入数据库,进行相关用户的创建及授权
mysql -uroot -p123                                               #输入密码123
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'password';          #密码是password,导入Zabbix数据库结构和数据输入这个密码
grant all privileges on zabbix.* to zabbix@localhost;
quit;                                                           #退出
5.1.7 将相关源scp到另一台机器上

然后安装zabbix-agent

[root@server ~]#  yum install zabbix-agent -y
[root@server ~]#  systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm&&systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

在安装agent的时候,需要修改相关的配置。将IP地址指向值server端

Server=Zabbix Server端主机名或IP地址
ServerActive= Zabbix Server端主机名或IP地址
Hostname=Agent端的主机名
UnsafeUserParameters=1//是否限制用户自定义keys使用特殊字符
启动Zabbix Agent并配置为开机启动

在这里插入图片描述

5.2 常见错误问题

active check configuration update from [127.0.0.1:10051] started to fail (cannot connect to [[127.0.0.1]:10051]: [111] Connection refused)

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf

出现上述错误,需要打开agent的配置文件,将127.0.0.1一行注释即可,然后重启服务
在这里插入图片描述

出现找不到pid的位置,可以使用find命令查询一下pid文件的位置,然后修改agent的配置文件,修改成指定的pid路径即可,重启服务。

[root@agent ~]# vim /etc/zabbix/zabbix_agentd.conf

在这里插入图片描述

5.3. 配置SNMP

为了能够让Zabbix Server监控到更多的信息,我们把这台机器的SNMP功能开启起来。
首先是安装SNMP相关包

[root@agent ~]# yum install net-snmpnet-snmp-utils

配置/etc/snmp/snmpd.conf文件,将内容修改为以下内容:
[root@agent snmp]# mv snmpd.conf snmpd.conf.bak
[root@agent snmp]# vim snmpd.conf
com2sec UplookingUser x.x.x.x(Zabbix Server的IP地址)public
group UplookingGroup v1 UplookingUser
group UplookingGroup v2c UplookingUser
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
access UplookingGroup "" any noauth exact all none none
view all included .1 80
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
使用snmpwalk命令确认snmp服务配置正确。
[root@agent snmp]# snmpwalk -v 2c -c public localhost IP-MIB::ipAdEntIfIndex
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.42.129 = INTEGER: 2

至此zabbix全部环境配置完成

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

输入账号Admin密码zabbix
在这里插入图片描述
在这里插入图片描述
注意:这里的中文并不是全部能翻译完整,有时会出现乱码的情况。
可以根据上面的操作进行对中文的修改。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑子是空的啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值