文章目录

  • 理论介绍
    • 基础架构
    • 和Prometheus的对比
  • Zabbix安装
    • 准备工作
    • 配置yum源
    • 安装Zabbix
    • 配置Zabbix
    • 启动Zabbix
  • 基础功能使用
    • 新增主机
    • 创建监控项
    • 创建触发器
    • 创建动作
    • 配置邮箱
    • 测试
  • 模板的创建和使用
    • 创建模板
    • 主机应用模板
  • 集成Grafana
    • 安装Zabbix插件并启用
    • 添加数据源

理论介绍

Zabbix 是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix 提供了出色的报告和数据可视化功能。Zabbix 支持轮询和被动捕获。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。

基础架构


核心组件主要是 Agent 和 Server,其中 Agent 主要负责采集数据并通过主动或者被动的方式采集数据发送到 Server/Proxy,除此之外,为了扩展监控项,Agent 还支持执行自定义脚本。Server 主要负责接收 Agent 发送的监控息,并进行汇总存储,触发告警等。ZabbixServer 将收集的监控数据存储到 Zabbix Database 中。Zabbix Database 支持常用的关系型数据库,如果 MySQL、PostgreSQL、Oracle 等,默认是 MySQL,并提供 Zabbix Web页面(PHP 编写)数据查询。

和Prometheus的对比

Zabbix安装

准备工作

关闭防火墙:

[root@scentos szc]# systemctl stop firewalld.service
[root@scentos szc]# systemctl disable firewalld.service

关闭selinux:

[root@scentos szc]# 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 three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

重启

配置yum源

[root@scentos szc]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.7oDWaF: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...1:zabbix-release-5.0-1.el7         ################################# [100%]

安装centos-release-scl:

[root@scentos szc]#  yum install -y centos-release-scl
base                                                                                                                                                      | 3.6 kB  00:00:00
http://repo.clickhouse.tech/rpm/stable/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: repo.clickhouse.tech; Unknown error"
Trying other mirror.
extras                                                                                                                                                    | 2.9 kB  00:00:00
mongodb-org-3.4                                                                                                                                           | 2.5 kB  00:00:00
mysql-connectors-community                                                                                                                                | 2.6 kB  00:00:00
mysql-tools-community                                                                                                                                     | 2.6 kB  00:00:00
mysql57-community                                                                                                                                         | 2.6 kB  00:00:00
updates                                                                                                                                                   | 2.9 kB  00:00:00
zabbix                                                                                                                                                    | 2.9 kB  00:00:00
zabbix-non-supported                                                                                                                                      | 2.9 kB  00:00:00
(1/7): extras/7/x86_64/primary_db                                                                                                                         | 246 kB  00:00:05
(2/7): mysql-connectors-community/x86_64/primary_db                                                                                                       |  90 kB  00:00:06
(3/7): mysql-tools-community/x86_64/primary_db                                                                                                            |  94 kB  00:00:06
(4/7): mysql57-community/x86_64/primary_db                                                                                                                | 298 kB  00:00:07
(5/7): zabbix-non-supported/x86_64/primary_db                                                                                                             | 3.7 kB  00:00:06
(6/7): zabbix/x86_64/primary_db                                                                                                                           | 146 kB  00:00:06
(7/7): updates/7/x86_64/primary_db                                                                                                                        |  14 MB  00:00:34
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency ResolutionDependencies Resolved=================================================================================================================================================================================
Package                                            Arch                                Version                                        Repository                           Size
=================================================================================================================================================================================
Installing:
centos-release-scl                                 noarch                              2-3.el7.centos                                 extras                               12 k
Installing for dependencies:
centos-release-scl-rh                              noarch                              2-3.el7.centos                                 extras                               12 kTransaction Summary
=================================================================================================================================================================================
Install  1 Package (+1 Dependent package)Total download size: 24 k
Installed size: 39 k
Downloading packages:
(1/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm                                                                                                    |  12 kB  00:00:06
(2/2): centos-release-scl-2-3.el7.centos.noarch.rpm                                                                                                       |  12 kB  00:00:06
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                            3.5 kB/s |  24 kB  00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
PackageKit-1.1.10-2.el7.centos.x86_64 has missing requires of PackageKit-backend
yajl-devel-2.0.4-4.el7.i686 has missing requires of libyajl.so.2Installing : centos-release-scl-rh-2-3.el7.centos.noarch                                                                                                                   1/2Installing : centos-release-scl-2-3.el7.centos.noarch                                                                                                                      2/2Verifying  : centos-release-scl-2-3.el7.centos.noarch                                                                                                                      1/2Verifying  : centos-release-scl-rh-2-3.el7.centos.noarch                                                                                                                   2/2
Installed:centos-release-scl.noarch 0:2-3.el7.centos
Dependency Installed:centos-release-scl-rh.noarch 0:2-3.el7.centos
Complete!

修改/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

安装Zabbix

[root@scentos szc]# sudo yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl

安装截图:

配置Zabbix

主要是通过MySQL配置Zabbix的,首先创建zabbix数据库:

[root@scentos szc]# mysql -uroot -proot -e "create database zabbix character set utf8 collate utf8_bin"
mysql: [Warning] Using a password on the command line interface can be insecure.

然后导入建表语句,使用到的压缩包在安装Zabbix时会自动下载到指定位置:

[root@scentos szc]# zcat /usr/share/doc/zabbix-server-mysql-5.0.21/create.sql.gz | mysql -uroot -proot zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.

修改/etc/zabbix/zabbix_server.conf文件:

[root@scentos szc]# vim /etc/zabbix/zabbix_server.conf

打开以下行的注释并修改,配置主机名、数据库名、数据库用户名和密码:

DBHost=scentos
DBName=zabbix
DBUser=root
DBPassword=root

修改/etc/zabbix/zabbix_agentd.conf文件:

[root@scentos szc]# vim /etc/zabbix/zabbix_agentd.conf

修改Server行为服务器域名或IP,注释掉ServerActive和Hostname行:

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

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

[root@scentos szc]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

修改时区为东八区:

php_value[date.timezone] = Asia/Shanghai

启动Zabbix

[root@scentos szc]# systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm

如果需要开机自启,则再运行以下命令:

[root@scentos szc]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

在windows浏览器中输入http://scentos(虚拟机IP或域名)/zabbix,看见以下界面,则Zabbix安装配置启动成功:

点击下一步,查看配置,全部ok即可下一步:

配置数据库,修改端口、用户名和密码,然后下一步:

配置zabbixServer,修改主机或域名即可:

查看预安装小结,然后安装即可:


点击完成后,即可登录Zabbix,用户名Admin,密码zabbix:

设置语言为中文,点击左侧用户设置:

设置语言,然后更新即可:

结果如下:

默认监控的是ZabbixServer,地址使用的是127.0.0.1,需要我们后续配置。

基础功能使用

Zabbix术语:

以检测Zabbix服务器上Hadoop的DataNode停止为例,对Zabbix的基本使用方法进行说明

新增主机

点击配置->主机->创建主机:

配置主机名(任意填)、群组(点击右侧选择,任意选)和IP地址,然后点击添加:

查看新增结果:

创建监控项

点击新建的主机里的监控项:

点击创建监控项:

配置监控项名称(随便写)和键值:proc.num[,all,datanode],如下所示:

点击下面的添加后,查看结果:

启动Hadoop的yarn和hdfs后,点击监测->最新数据,查看最新数据:

创建触发器

点击配置->主机->触发器:

点击创建触发器:

取名、设置严重性、添加表达式:

在添加表达式界面里,选择监控项和结果,然后点击插入:

然后,回到创建触发器界面,点击添加,查看添加结果:

创建动作

点击配置->动作->创建动作:

起名,添加条件,然后设置操作:

添加的条件就是刚才创建的触发器:

添加好触发器后的界面如下:

点击操作,进入操作添加界面:

在设置发送的用户群组和用户中,添加Zabbix administrators和Admin,然后点击添加即可:

查看操作的添加结果,并点击添加:
查看动作的添加结果:

配置邮箱

点击管理->报警媒介类型->Email:
修改SMTP服务器、SMTP HELO、SMTP电邮和用户名密码:
其中密码是QQ邮箱的SMTP授权码,要在QQ邮箱的邮箱设置->账户->POP3…服务中开启SMTP服务,并且点击生成授权码,再按照指定步骤获取:
配置好Zabbix邮箱后,点击更新,查看更新结果,并进行测试:
填写好收件人和消息后,点击测试,看到测试成功即可:
在QQ邮箱中,也能看到发过来的测试邮件:
然后,在Zabbix中配置用户邮箱,点击管理->用户->Admin:
点击报警媒介->添加:
在收件人一栏中选择刚配置的邮箱用户名即可:
添加结果,最后点击更新:

测试

在服务器上关闭yarn和hdfs,会有以下效果:
首先在监测->仪表板上看到出现的问题:
然后QQ邮箱收到报警邮件:

模板的创建和使用

模板的作用是将相同的配置应用于多个主机监控上,以此减少工作量并简化Zabbix配置。
同样,以检测Zabbix服务器上Hadoop的DataNode停止为例,对Zabbix模板的创建和使用方法进行说明

创建模板

点击配置->模板->创建模板:
起名、配置群组,这俩随便写或选,点击添加:
然后通过主机群组找到新建的模板,配置监控项和触发器:
点击创建监控项:
起名,设置键值:
点击添加后,查看结果:
点击触发器->创建触发器:
起名、设置严重程度、添加条件:
点击添加或更新:
查看结果:
然后为新建的触发器配置动作,点击配置->动作->发送邮件的动作:
点击添加,为该动作添加触发条件:
选择触发器:

选中新建的触发器:
点击添加:

查看添加结果,并更新动作:
查看更新结果:

主机应用模板

点击配置->主机->目标主机:
点击模板->链接新模板->选择->通过主机群组搜索模板->选择:
点击更新:
然后再停止Hadoop的hdfs和yarn进行测试即可。

集成Grafana

Grafana是一个用Go语言编写的开源应用,用于大规模指标数据的可视化展示,是网络架构和应用分析中最流行的时许数据展示工具,目前已经支持绝大部分常用的时序数据库。
5.1、Grafana安装和启动
下载安装:

[root@scentos szc]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.5.2-1.x86_64.rpm
[root@scentos szc]# yum install grafana-enterprise-7.5.2-1.x86_64.rpm

直接启动:

[root@scentos szc]# service grafana-server start

访问ip:3000,用户名密码都是admin:
第一次访问要修改密码,不过可以点击下面的skip跳过这一步,就进入grafana的主界面:
至此,grafana安装启动成功。

安装Zabbix插件并启用

插件安装:

[root@scentos szc]# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 4.1.5
from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.1.5/download
into: /var/lib/grafana/plugins✔ Installed alexanderzobnin-zabbix-app successfullyRestart grafana after installing plugins . <service grafana-server restart>

重启Grafana:

[root@scentos szc]# systemctl restart grafana-server

刷新Grafana界面,点击配置->插件:
找到Zabbix,点击:
然后点击使能:
结果如下:

添加数据源

点击配置->数据源:
点击添加数据源:
搜索Zabbix,并点击:
配置Zabbix数据源,包括URL(http://scentos/zabbix/api_jsonrpc.php,把scentos改成自己服务器IP或域名)、开启基础验证、填写基础验证和ZPI验证的用户名和密码(默认分别为Admin和zabbix):
然后点击下面的保存并测试:
出现以下结果,即说明配置成功:

然后返回Zabbix界面,为scentos主机链接模板Template OS Linux By Zabbix Agent:
点击更新后,回到Grafana界面,新增看板:
新增一个空白看板:
然后配置看板数据即可,比如要看的是CPU使用率:
还可以在右侧选择合适的图表类型:
最后点击应用:
生成的结果如下所示:

性能监控工具Zabbix学习笔记相关推荐

  1. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  2. Linux性能优化实战学习笔记:第十讲==中断

    Linux性能优化实战学习笔记:第十讲 一.坏境准备 1.拓扑图 2.安装包 在第9节的基础上 在VM2上安装hping3依奈包 ? 1 2 3 4 5 6 7 wget http://www.tcp ...

  3. Zabbix学习笔记(六)Zabbix的APi使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1.Zabbix API 3.获取tokens 4.实例 4.1获取主机组ID 4.2 获取监控模板ID 4.3 创建主机 ...

  4. 13.zabbix学习笔记:zabbix监控之短信报警

    zabbix学习笔记:zabbix监控之短信报警 zabbix的报警方式有多种,除了常见的邮件报警外,特殊情况下还需要设置短信报警和微信报警等额外方式.本篇文章向大家介绍短信报警. 短信报警设置 短信 ...

  5. zabbix学习笔记——入门篇

    目录 一.了解监控 监控的种类 二.zabbix监控 1.介绍zabbix 2.为什么选择zabbix 3.Zabbix可监控对象 4.zabbix监控方式 1.被动监控 2.主动监控 5.zabbi ...

  6. 《南溪的目标检测学习笔记》——性能优化的学习笔记

    介绍 性能优化有两种方式: 理论分析 实验测试 1 理论分析 关于模型的性能分析,请参考博文<Roofline Model与深度学习模型的性能分析 (by Michael Yuan)>:

  7. web性能权威指南学习笔记 Item02

    HTTP你 发展史 http0.9 –>http1.0 –>http1.1 –>http2.0 http请求和http响应 主要步骤包括: ➊ 请求 HTML 文件,及其编码.字符集 ...

  8. 五十四、Linux性能优化实战学习笔记|套路篇:系统监控的综合思路

    目录 指标监控 日志监控 小结 上一节,我带你学习了,如何使用 USE 法来监控系统的性能,先简单回顾一下. 系统监控的核心是资源的使用情况,这既包括 CPU.内存.磁盘.文件系统.网络等硬件资源,也 ...

  9. linux性能优化实战学习笔记-(1)CPU性能分析工具与套路

    版权归Linux性能优化实战 作者倪鹏飞,本文主要是为学习.整理相关知识点,请勿用作商用,侵删. linux性能分析工具 下图来自:Brendan D. Gregg http://www.brenda ...

最新文章

  1. python 实现str list array tuple的互换以及join函数的使用
  2. bool 变量想为什么一般初始化为FALSE 比较好?
  3. Linux信号 四 异步等待信号与同步等待信号接口
  4. cover letter 和response letter的写法
  5. 函数 devm_kzalloc()
  6. kafka幂等producer
  7. UnicodeDecodeError: 'gbk' codec can't decode byte 0xb4 in position xx
  8. IEEE论文latex模板
  9. mac android usb驱动 win10,macbook安装Win10后无法创建引导的USB驱动器解决方法
  10. 各种数据类型的取值范围
  11. win10 开 5g 热点
  12. iOS 边学边记 升级ios14 Xcode真机调试启动非常慢的问题解决
  13. 光流传感器进行累积测试
  14. CMOS反相器基础(数字电路学习笔记)
  15. 允许在CAD中操作超链接!Aspose.CAD最新版v19.9新功能你都了解吗?
  16. 【性能优化】-多线程实现百万级导出/导入到excel
  17. HDU2550 百步穿杨【打印图案】
  18. 谷歌验证码recaptcha接入
  19. lcg_value() 函数
  20. 华为鸿蒙系统朋友圈扩大,华为发力全屋智能新赛道,能弥补手机下滑留下的空缺吗?...

热门文章

  1. 【LTE】LTE中SINR的理解
  2. article-六轴码垛机器人admas正逆运动学仿真
  3. tff.learning 模块
  4. linux 键盘驱动下载,嵌入式Linux系统的键盘驱动实现
  5. 2019银川职工“春晚”为劳动者唱赞歌
  6. 如何通过API接口从淘宝(或天猫店)复制宝贝到拼多多(商品详情,商品销量,商品列表,商品主图,商品sku)接口代码对接教程
  7. LeetCode 1518. 换酒问题
  8. 蜻蜓Q系统php版本关于验证码/邮箱/用户名三者注册机制对应开启或关闭代码需要修改的部分以及如何自由切换
  9. 违禁词库以及使用方法
  10. 四通道数据采集卡(ADS6445、4 channel、14bit、125MHz)