当前位置: 首页 > news >正文

Zabbix的安装与基本使用(主机群组、应用集、监控项、触发器、动作、媒介)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 

一、环境准备

(1)实验基本设置

主机名IP地址角色
Mater192.168.1.10监控端
node1192.168.1.11被监控端
 # 网络自配​hostnamectl set-hostname <主机名>

(2)所有机器关闭防火墙和selinux

 setenforing 0 (修改配置文件关闭)sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsystemctl stop firewalld && systemctl disabled firewalld

二、配置监控端zabbix-server

1、安装Xabbix存储库:

 # 配置阿里源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo​# 配置Zabbix源rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm​# 将Zabbix中的修改为阿里源sed -i 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

2、安装 Zabbix 服务器和代理:

 yum install zabbix-server-mysql zabbix-agent -y

3、安装Zabbix前端:

启用红帽软件集合:

 yum install centos-release-scl -y

原来的配置已不可用,这里我们修改为国内阿里源

 cd /etc/yum.repos.d/mv CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bakmv CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bakvim CentOS-SCLo-scl-rh.repo[centos-sclo-rh]name=CentOS-7 - SCLo rhbaseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

编辑文件 /etc/yum.repos.d/zabbix.repo 并启用 zabbix-frontend 存储库。

 vim /etc/yum.repos.d/zabbix.repo...[zabbix-frontend]...enabled=1...

安装Zabbix前端包:

 yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

4、 创建初始数据库

启动并运行数据库服务器

 cdwget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmrpm -ivh mysql80-community-release-el7-3.noarch.rpm

打开5.7源地址,关闭8.0源地址,确保下载的数据库是mysql5.7;这里换位mariadb也可以

 vim /etc/yum.repos.d/mysql-community.repo

yum -y install mysql-community-server --nogpgcheck

因为mysql5.7启动,root用户会生成随机密码,可以进行修改

 systemctl start mysqld# 查看随机生成的密码grep 'password' /var/log/mysqld.log​# 修改密码    toT1p1L-Fvjjmysqladmin -uroot -p'I5>eyYwjF9WQ=c' password 'xiaoli@2024'# 本人执行失败,换种方式;使用随机密码登录后,修改密码mysql -uroot -p'I5>eyYwjF9WQ'mysql> ALTER USER USER() IDENTIFIED BY 'Lee@2024';

在您的数据库主机上运行以下命令:

 mysql> create database zabbix character set utf8 collate utf8_bin;mysql> grant all on zabbix.* to zabbix@localhost identified by 'Zabbix@2024';mysql> flush privileges;mysql> quit;

在 Zabbix 服务器主机上导入初始模式和数据。系统将提示您输入新创建的密码

 zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbixEnter password:  # 此处输入上面创建用户时,设置的密码,回车导入数据

可再次进去到数据库,确认zabbix库中有数据生成;

5、为Zabbix服务器配置数据库:

编辑文件 /etc/zabbix/zabbix_server.conf

 cat >> /etc/zabbix/zabbix_server.conf <<'EOF'DBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=Zabbix@2024EOF

6、为Zabbix前端配置PHP

编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并为您设置正确的时区

 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf----------------------------------------------...php_value[date.timezone] = Asia/Shanghai

7、启动 Zabbix 服务器和代理进程

启动 Zabbix 服务器和agent代理进程并使其在系统启动时启动。

 systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpmsystemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

8、配置 Zabbix 前端

连接到您新安装的 Zabbix 前端:192.168.1.10/zabbix

出现以下登录界面, Zabbix监控平台有默认管理员用户; 默认用户名Admin,密码为zabbix;

页面显示为英文,可以设置为中文;Admin用户,可以设置任何用户的语言;设置自己的语言如下图

设置其他用户的语言如下图:

二、配置被监控端zabbix-agent

当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。

1、安装 zabbix

 # 配置阿里源wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo​# 配置Zabbix源rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm​# 将Zabbix中的修改为阿里源sed -i 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install zabbix-agent zabbix-sender -y

2、修改配置文件

对配置文件做一个备份,然后去修改配置文件:

 cd /etc/zabbix/cp zabbix_agentd.conf zabbix_agentd.bak​vim zabbix_agentd.conf----------------------------------------------------------Server=192.168.1.10                 # zabbix服务端的地址ServerActive=192.168.1.10           # 主动模式 zabbix-server-ipHostname=zabbix-agent-node1UnsafeUserParameters=1  # 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符EnableRemoteCommands=1  # 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

修改完成之后,我们保存退出。然后就可以启动服务了:

 systemctl start zabbix-agent

3、创建主机群组

可以看到Zabbix本身就有很多默认的主机群组。暂时不用理会

4、创建主机

5、创建应用集

应用集,可以认为是监控项的分类

应用集可以有多个,我们再创建2个,这里不再给予创建过程;

6、创建监控项

任何一个被监控项,如果想要能够被监控,一定要在zabbix-server端定义了能够连接至zabbix-agent端,并且能够获取命令。或者在agent端定义了能够让server端获取命令。一般都是内建的命令,都对应的有其名字,被我们称之为 key 。

(1)创建一个不带参数的监控项:

关于键值(key值),我们可以直接在网页上设置(服务器自动执行), 但是最好提前使用命令行命令(手动执行)来获取,确保此监控项的键值能取到监控数据,也就意味着能监控到此指标;

 yum -y install zabbix-get.x86_64zabbix_get -s 192.168.1.11 -k system.uptime -p 10050

如果能获取到值,就可以点击添加了;等待一会儿,点击“监测”-->“最新数据”;即可看到被监控端node1的已运行时间;

也可点击自带的“图形”,看到整体情况

(2)创建1个带参数的监控项:

监控文件的大小:被监控端node1先创建出1G文件

 dd if=/dev/zero of=/home/test.txt bs=1M count=1024ll -h /home/------------rw-r--r--  1 root root 1.0G Aug 26 23:42 test.txt

去监控平台,创建监控项:

点击“最新数据”

案例3:监控cpu负载

关于key值,我们可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取

 zabbix_get -s 192.168.1.11 -k system.cpu.load[all,avg5] -p 10050

案例4:监控tcp的80端口是否被占用

被监控端,先下载占用80端口的服务,比如httpd或者nginx,tcp协议占用80端口的应用,都可以

 yum -y install httpdsystemctl start httpd

来到监控平台,创建对应监控项:

然后去“最新数据”中,查看

7、删除监控项

如果有一个监控项,我们用不上了,就可以删除掉。但是如果你直接删除的话,默认数据是会留下的,所以我们要先清除数据,然后再删除

  • 历史数据(history)和趋势数据(trends)是Zabbix中存储收集到的数据的两种方式。
  • 历史数据:每一个收集到的监控数据
  • 趋势数据:按小时统计计算的平均值数据

强烈建议将历史数据保留时长设置得尽可能的小。这么做可以让数据库不会因存储了大量的历史数据,导致超负荷运行。

可以选择长时间的保留趋势数据,来替代长期需要的历史数据。例如:设置成保留14天历史数据和5年的趋势数据

8、创建触发器(trigger)

触发器就是来判断监控项监控到的数据,是否处于合理区间的;

8.1、简介

当我们的采集的值定义完了以后,就可以来定义触发器了。触发器的定义是:界定某特定的监控项采集到的数据的非合理区间或非合理状态。通常为逻辑表达式

 一般,我们评定采样数值是否为合理区间的比较稳妥的方法是——根据最后N次的平均值来判定结果;这个最  后N次通常有两种定义方式:  

  1. 最近N分钟所得结果的平均值  

  2. 最近N次所得结果的平均值  

注意:能用数值保存的就不要使用字符串

8.2、触发器表达式

基本的触发器表达式格式如下所示

 {<server>:<key>.<function>(<parameter>)}<operator><constant>​# server :主机名称;# key :主机上关系的相应监控项的key;# function :评估采集到的数据是否在合理范围内时所使用的函数,目前触发器所支持的函数有avg(平均)、count(计数)、change(变化)、date(日期)、dayofweek(星期)、delta(增量)、diff、iregexp、last()、max(最大值)、min(最小值)、nodata(无数据)、now(现在)、sum(总和)等# parameter :函数参数;大多数数值函数可以接受秒数为其参数,而如果在数值参数之前使用“#”做为前缀,则表示为最近几次的取值,如sum(300)表示300秒内所有取值之和,而sum(#10)则表示最近10次取值之和;

8.3、配置一个触发器

测试触发器是否生效 ;被监控端停止httpd服务,意味着80端口也会关闭

 systemctl stop httpd

9、创建动作

可以看出,还需要在虚拟机上进行两项操作,一是修改sudo配置文件使zabbix用户能够临时拥有管理员权限;二是修改zabbix配置文件使其允许接收远程命令。我们进行如下操作:

 [root@node1 ~]# visudo              # 相当于“vim /etc/sudoers”## Allow root to run any commands anywhereroot    ALL=(ALL)       ALLzabbix  ALL=(ALL)       NOPASSWD:ALL        # 添加的一行,表示不需要输入密码[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf...EnableRemoteCommands=1          #允许接收远程命令LogRemoteCommands=1             #把接收的远程命令记入日志[root@node1 ~]# systemctl restart zabbix-agent.service

测试动作是否执行: 在被监控端,将httpd服务停止,查看是否会重启

等待一会儿,可看到,问题已被解决

被监控端查看httpd服务状态,也可看到httpd服务已被重启

刚刚一旦发生问题,我们添加了第一步需要做的事情,也就是重启服务,如果重启不成功怎么办呢?我们就需要来添加第二步:

第二步,可以是发送邮件,让我们及时知道问题仍然存在,然后人工介入紧急处理;邮箱报警,需要创建媒介邮箱类型有很多种,比如QQ邮箱,阿里云邮箱,163邮箱等;想用邮箱接收报警,要开启邮箱的SMTP服务

我们这里用QQ邮箱: 开启邮箱POP3/SMTP服务

在QQ邮箱界面--设置--账户

获取授权码并保存

10、创建媒介

媒介是Zabbix中用于发送通知和告警的传输通道。

问题发现邮件内容:

问题恢复邮件内容:

测试媒介是否可用(本人目前测试失败)

成功后前往"动作"->"操作",进行设置

11、动作

将Admin用户和local_email媒介进行关联

接下来自行进行测试 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++设计模式(更新中)
  • Linux 常用指令
  • 苹果Vision Pro曝出严重漏洞,黑客可通过用户眼动输入窃取信息
  • vue之我不会
  • Pytest配置文件pytest.ini如何编写生成日志文件?
  • (PySpark)RDD实验实战——取最大数出现的次数
  • Python 入门教程(3)基础知识 | 3.2、缩进规则
  • 【图像匹配】基于Harris算法的图像匹配,matlab实现
  • 探索LangChain的JSON加载器:轻松处理JSON和JSONL数据
  • STM32 如何生成随机数
  • Java或者前端 实现中文排序(调API的Demo)
  • Gateway学习笔记
  • 微信小程序实现转盘抽奖,可以自定义编辑奖项列表
  • 网络安全-LD_PRELOAD,请求劫持
  • docker安装部署时的资源文件路径问题以及使用pecl工具简洁方便地安装php扩展
  • [译]CSS 居中(Center)方法大合集
  • 《Java编程思想》读书笔记-对象导论
  • 《剑指offer》分解让复杂问题更简单
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • canvas 绘制双线技巧
  • CSS 提示工具(Tooltip)
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Javascript编码规范
  • JAVA之继承和多态
  • PHP CLI应用的调试原理
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • text-decoration与color属性
  • 订阅Forge Viewer所有的事件
  • 反思总结然后整装待发
  • 猴子数据域名防封接口降低小说被封的风险
  • 每天10道Java面试题,跟我走,offer有!
  • 前端面试之闭包
  • 深度解析利用ES6进行Promise封装总结
  • 深入浅出Node.js
  • 数据可视化之 Sankey 桑基图的实现
  • 说说动画卡顿的解决方案
  • 微信小程序:实现悬浮返回和分享按钮
  • 我这样减少了26.5M Java内存!
  • 用 Swift 编写面向协议的视图
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​插件化DPI在商用WIFI中的价值
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (1)Jupyter Notebook 下载及安装
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验