当前位置: 首页 > 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媒介进行关联

接下来自行进行测试 


http://www.mrgr.cn/news/29009.html

相关文章:

  • vue面试题7|[2024-11-14]
  • RabbitMQ集群搭建
  • C语言的内存函数
  • 单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)
  • 卫导调零天线功率倒置算法原理及MATLAB仿真
  • 关于 3D Engine Design for Virtual Globes(三维数字地球引擎设计)
  • 【Android】Handler用法及原理解析
  • 实时数仓3.0DWD层
  • Python 入门教程(3)基础知识 | 3.5、运算符
  • rhat Linux虚拟机桥接网络配置
  • 【Linux】理解和解释shell命令的工具
  • phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)
  • Visual Studio 2019/2022 IntelliCode(AI辅助IntelliSense)功能介绍
  • MOE论文汇总2
  • java实现常见的密钥派生函数(KDF)
  • 传知代码-KAN卷积:医学图像分割新前沿
  • Typora安装,使用,图片加载全流程
  • 算法训练——day13哈希Map、Set、Bucket
  • vivado中选中bd文件后generate output product是什么用,create HDL wrapper是什么用
  • Apache Airflow
  • 枚举类题目练习心得
  • 介绍⼀下泛型擦除
  • 数据结构_1、基本概念
  • 强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法
  • 《C++虚函数调用开销大揭秘:性能与灵活性的权衡》
  • 如何在win10Docker安装Mysql数据库?