Zabbix从入门到精通以及案例实操系列

1、Zabbix入门

1.1、Zabbix概述

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

1.2、Zabbix的特点

Zabbix的主要特点包括:

  • 多种监控方式:Zabbix支持SNMP、JMX、IPMI等多种监控方式,可以监控网络设备、操作系统、数据库、Web应用程序等各种系统组件。

  • 自定义监控项:Zabbix允许用户自定义监控项,可以通过脚本、API等方式添加自定义监控项,以监测企业的特定应用程序和业务需求。

  • 高度可配置:Zabbix提供了大量的配置选项,可以根据需要灵活配置监控对象、告警规则、通知方式、用户权限等设置。

  • 丰富的预警机制:Zabbix支持多种告警规则,可以通过Email、短信、声音、微信等多种方式向管理员发送告警信息,支持条件触发、阈值判断等多种告警方法。

  • 可视化展示:Zabbix提供了丰富的可视化展示功能,可以通过仪表盘、图表、地图等方式呈现监控数据。

  • 网络拓扑图:Zabbix支持绘制全局网络拓扑图以及单个设备的拓扑图,可以帮助管理员更好地了解网络结构和连接状态。

1.3、Zabbix的构成

zabbix主要由以下5个组件构成:

  • Server:zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。
  • web页面:web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。
  • 数据库:zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。
  • proxy:zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。
  • Agent:zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给zabbix server。

1.4、Zabbix的术语

  • 主机(host):要监控的设备,可以由IP或者是主机名(必须可解析)指定。
  • 主机组(host group):主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。
  • 监控项(item):一个特定监控指标的相关数据,比如内存的大小、CPU的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个key来标识。
  • 触发器(trigger):一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。
  • 事件(event):触发器触发的一个特定事件,或者是zabbix定义的一个自动上线注册主机的事件。
  • 动作(action):指根据配置,zabbix对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。
  • 报警升级(escalation):发送警报或者是执行远程命令的自定义方案。
  • 媒介(media):发送通知(告警)的手段,如微信、邮件、钉钉等等。
  • 通知(notification):通过指定的媒介,向用户发送的有关事件的信息。
  • 远程命令(remote command):指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。
  • 模板(template):用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。
  • 应用(application):一组监控项的集合。
  • web场景(web scennario):用于检测web站点可用性的一个或多个HTTP请求。
  • 前端(frontend):zabbix的web接口。
  • Zabbix API:Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务
  • Zabbix server:Zabbix监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
  • Zabbix agent:部署在监控对象上的,能够主动监控本地资源和应用的程序
  • Zabbix proxy:一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序
  • 加密(encryption):支持Zabbix组建之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get 程序) 使用TLS(Transport Layer Security )协议

1.5、Zabbix的基础架构

Zabbix在进行监控时,zabbix客户端要安装在被监控设备上,负责定期收集数据,并将其发送给zabbix服务端;zabbix服务端要安装在监控设备上,其将zabbix客户端发送的数据存储的数据库中,zabbix web根据数据在前端进行展示和绘图。

zabbix的数据收集分为两种模式:

  • 主动模式:zabbix客户端主动向zabbix server请求监控项列表,并主动将监控项内需要的数据提交给zabbix server。

  • 被动模式:zabbix server向 agent 请求获取监控项的数据,zabbix agent返回数据。

zabbix的主动和被动模式是以zabbxi客户端为基准的。

Zabbix从入门到精通以及案例实操系列_第1张图片

2、Zabbix部署

2.1、集群规划

Zabbix从入门到精通以及案例实操系列_第2张图片

2.2、集群部署

2.2.1、关闭防火墙(3台节点)

[song@hadoop102 ~]$ sudo service iptables stop
[song@hadoop102 ~]$ sudo chkconfig iptables off

[song@hadoop103 ~]$ sudo service iptables stop
[song@hadoop103 ~]$ sudo chkconfig iptables off

[song@hadoop104 ~]$ sudo service iptables stop
[song@hadoop104 ~]$ sudo chkconfig iptables off

2.2.2、关闭SELinux(hadoop102)

2.2.2.1、SELinux介绍

SELinux(Security-Enhanced Linux)是一种Linux操作系统的安全加固措施,它提供了强大的访问控制机制来保护系统资源和数据的安全性。通常情况下,Linux系统使用标准的Unix访问控制(DAC)模式来实现安全管理,但是这种安全模式有许多缺陷。

SELinux通过引入一个三元(Subject-Object-Action)安全性模型,可以更加细粒度地控制系统中的各个资源的访问权限,从而更好地保护系统的安全。SELinux不仅能够保护文件、网络、进程等系统资源,还能够保护系统核心、设备、网络服务等重要组件的安全。

在SELinux的安全模型中,每个主体(Subject)都被授予一组安全上下文(Security Context),其中包括了用户、角色、类型等信息。每个对象(Object)也有一个安全上下文,包括了文件、目录、设备、网络端口等信息。在SELinux的安全策略中,规定了哪些主体可以执行哪些操作,并指定了允许访问的对象。只有当主体满足所有安全策略的要求时,才能够执行相应的操作。

SELinux的作用主要有以下几个方面:

  • 提高系统的安全性能,提高系统的抗攻击能力。

  • 精细控制用户的权限,只允许他们执行必要的操作。

  • 可以帮助管理员更好地了解系统的运行状态和发现潜在的安全漏洞。

  • 在保护系统和数据方面提供了一层额外的保障。

总之,SELinux是一种强大的Linux安全机制,可以提供更加细致的访问控制和更好的安全性能,提高了系统的稳定性、可靠性和安全性。

2.2.2.2、修改配置文件/etc/selinux/config

[song@hadoop102 ~]$ sudo vim /etc/selinux/config

修改如下内容

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

2.2.2.3、重启服务器

[song@hadoop102 ~]$  sudo reboot

2.2.3、配置Zabbix yum源(3台节点)

2.2.3.1、安装yum仓库

  1. 安装zabbix的yum仓库
[song@hadoop102 ~]$ sudo rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[song@hadoop103 ~]$ sudo rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[song@hadoop104 ~]$ sudo rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  1. 安装Software Collections仓库
[song@hadoop102 ~]$ sudo yum install -y centos-release-scl
[song@hadoop103 ~]$ sudo yum install -y centos-release-scl
[song@hadoop104 ~]$ sudo yum install -y centos-release-scl

2.2.3.2、修改zabbix仓库配置文件

hadoop102、hadoop103、hadoop104三台节点,依次执行如下步骤。

2.2.3.2.1、修改为阿里云镜像
  1. 查看原始zabbix.repo文件
[song@hadoop102 ~]$ sudo cat /etc/yum.repos.d/zabbix.repo

查看内容如下

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
  1. 执行以下命令完成全局替换
[song@hadoop102 ~]$ sudo sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
  1. 查看修改之后的zabbix.repo文件
[song@hadoop102 ~]$ sudo cat /etc/yum.repos.d/zabbix.repo

查看内容如下

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
2.2.3.2.2、修改为阿里云镜像启用zabbix-web仓库

打开/etc/yum.repos.d/zabbix.repo文件,做如下修改

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

2.2.4、安装Zabbix

hadoop102、hadoop103、hadoop104三台节点分别执行以下安装命令

[song@hadoop102 ~]$ sudo yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl
[song@hadoop103 ~]$ sudo yum install -y zabbix-agent
[song@hadoop104 ~]$ sudo yum install -y zabbix-agent

2.2.5、配置Zabbix

2.2.5.1、创建zabbix数据库

[song@hadoop102 ~]$ mysql -uroot -p000000 -e"create database zabbix character set utf8 collate utf8_bin"

2.2.5.2、导入Zabbix建表语句

[song@hadoop102 ~]$ zcat /usr/share/doc/zabbix-server-mysql-5.0.9/create.sql.gz | mysql -uroot -p000000 zabbix

2.2.5.3、配置Zabbix_Server(hadoop102)

修改zabbix-server配置文件

[song@hadoop102 ~]$ sudo vim /etc/zabbix/zabbix_server.conf

DBHost=hadoop102
DBName=zabbix
DBUser=root
DBPassword=000000

2.2.5.4、配置Zabbix_Agent(三台节点)

修改zabbix-agent配置文件

[song@hadoop102 ~]$ sudo vim /etc/zabbix/zabbix_agentd.conf

修改如下内容:

Server=hadoop102
#ServerActive=127.0.0.1
#Hostname=Zabbix server

2.2.5.5、配置Zabbix_Web时区

修改/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf文件

[song@hadoop102 ~]$ sudo vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

修改如下内容:

[zabbix]
user = apache
group = apache

listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

php_value[session.save_handler] = files
php_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/

php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai

2.2.6、启动停止Zabbix

2.2.6.1、启动Zabbix

[song@hadoop102 ~]$ sudo systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
#设置开机自启动
[song@hadoop102 ~]$ sudo systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
[song@hadoop103 ~]$ sudo systemctl start zabbix-agent
#设置开机自启动
[song@hadoop103 ~]$ sudo systemctl enable zabbix-agent
[song@hadoop104 ~]$ sudo systemctl start zabbix-agent
#设置开机自启动
[song@hadoop104 ~]$ sudo systemctl enable zabbix-agent

查看是否启动成功

sudo systemctl status zabbix-server zabbix-agent httpd rh-php72-php-fpm

Zabbix从入门到精通以及案例实操系列_第3张图片

Zabbix从入门到精通以及案例实操系列_第4张图片
Zabbix从入门到精通以及案例实操系列_第5张图片

2.2.6.2、停止Zabbix

[song@hadoop102 ~]$ sudo systemctl stop zabbix-server zabbix-agent httpd rh-php72-php-fpm
# 关闭开机自启动
[song@hadoop102 ~]$ sudo systemctl disable zabbix-server zabbix-agent httpd rh-php72-php-fpm
[song@hadoop103 ~]$ sudo systemctl stop zabbix-agent
# 关闭开机自启动
[song@hadoop103 ~]$ sudo systemctl disable zabbix-agent
[song@hadoop104 ~]$ sudo systemctl stop zabbix-agent
# 关闭开机自启动
[song@hadoop104 ~]$ sudo systemctl disable zabbix-agent

2.2.6.3、连接Zabbix_Web数据库

  1. 浏览器访问http://hadoop102/zabbix/

  1. 检查配置

  1. 配置数据库

  2. 配置zabbix-server


2.2.6.4、登录Zabbix

  1. 用户名密码如下,用户名:Admin 密码:zabbix

  1. 点击User Settings,语言设成中文



2.3、Zabbix的使用

2.3.1、创建Host

  1. 点击配置/主机/创建主机

  1. 配置主机(Host)

  1. 查看新增(Host)

  1. 重复以上步骤,再创建hadoop103、hadoop104主机。

2.3.2、创建监控项(Items)

  1. 点击监控项(Items)

  1. 点击创建监控项(Create Item)

  1. 配置监控项(Item)

  1. 查看创建的监控项

  2. 查看监控项最新数据

2.3.3、创建触发器(Trigger)

  1. 点击配置/主机/触发器

  1. 点击创建触发器

  1. 编辑触发器


Zabbix从入门到精通以及案例实操系列_第6张图片

2.3.4、创建动作(Action)

  1. 点击配置/动作/创建动作

  1. 编辑动作(Action)


Zabbix从入门到精通以及案例实操系列_第7张图片




2.3.5、邮件报警

  1. 申请注册一个126邮箱,可以采用126、163、qq等邮箱。下面以126邮箱为例。
  2. 点击邮箱账号=》账号管理

  1. 开启SMTP服务

  1. 保存授权码

Zabbix从入门到精通以及案例实操系列_第8张图片

2.3.6、创建报警媒介类型(Media type)

  1. 点击管理/报警媒介类型/Email

  1. 编辑Email

  1. 测试Email

  1. Email绑定收件人




2.3.7、测试

  1. 关闭集群中的HDFS,会有如下效果
[song@hadoop102 hadoop-3.1.3]$ sbin/stop-dfs.sh
  1. 查看仪表盘故障信息
  2. 查看邮件,接收故障信息

2.4、集成Grafana

2.4.1、部署Grafana

  1. 下载Grafana安装包
  • 官方仓库:https://dl.grafana.com/oss/release/grafana-7.4.3-1.x86_64.rpm
  • 国内镜像:https://repo.huaweicloud.com/grafana/7.4.3/grafana-7.4.3-1.x86_64.rpm
  1. 将安装包上传到hadoop102主机的/opt/software路径
  2. 使用rpm安装Grafana
[song@hadoop102 software]$ sudo rpm -ivh grafana-7.4.3-1.x86_64.rpm
  1. 启动Grafana
[song@hadoop102 software]$ sudo systemctl start grafana-server

查看是否启动

[song@hadoop102 software]$ sudo systemctl status grafana-server

Zabbix从入门到精通以及案例实操系列_第9张图片
关闭服务

[song@hadoop102 software]$ sudo systemctl stop grafana-server

Zabbix从入门到精通以及案例实操系列_第10张图片

  1. 访问Grafana页面
    访问地址为:http://hadoop102:3000/,首次登录用户名和密码均为 admin


设置新密码或者跳过

2.4.2、快速入门

  1. 创建Dashboard

  1. 新建panel

  1. 选择数据源,此处选择Grafana提供的随机测试数据

  1. 选择合适的可视化类型

  1. 保存Dashboard和panel,并命名

2.4.3、集成Zabbix

2.4.3.1、配置数据源

使用Grafana与其他系统集成时,需要配置对应的DataSource

  1. 点击下图所示按钮,增加数据源

  1. 选择所需数据源

  1. 如没有所需数据源,点击下图所示地址,获取更多数据源

  1. 搜索zabbix,并点击搜索结果

  1. 按照所需插件的说明进行部署

  1. 以下是插件部署步骤

  2. 安装插件

[song@hadoop102 software]$ sudo grafana-cli plugins install alexanderzobnin-zabbix-app
  1. 重启Grafana
[song@hadoop102 software]$ sudo systemctl restart grafana-server
  1. 启用插件

    • 点击设置/插件
    • 搜索zabbix,并点击搜索结果
    • 启用Zabbix插件
  2. 配置zabbix数据源

    1. 新增数据源

    2. 搜索zabbix,并点击搜索结果

    3. 配置数据源,http://hadoop102/zabbix/api_jsonrpc.php

2.4.3.2、集成案例

  1. 为体现展示效果,在Zabbix中为hadoop102主机应用一个Zabbix内置的Linux系统监控模板。
  2. 找到hadoop102主机

  1. 点击模板,搜索linux,并选择Template OS Linux by Zabbix agent

  1. 点击更新

  1. 点击Dashboards,找到前边创建的Test看板

  1. 新建panel

  1. 选择Zabbix数据源

  1. 选择要展示的监控项

  1. 选择合适的图标类型

  1. 保存配置

你可能感兴趣的:(数据仓库,大数据系列,安装教程,zabbix,集群监控,zabbix实操)