Zabbix从零到邮箱告警,可用于生产环境

2023-05-16

在监控方面,Zabbix,夜莺,Prometheus,open-falcon;其中,Zabbix和Prometheus可以称得上监控界的老大哥,而Prometheus适用于监控容器,搭配k8s使用效果最佳,而基础,传统服务器架构监控,用Zabbix更适合一些;

本文章将带领大家部署一套可用于生产环境的zabbix 4.0监控系统,文章中尽最大可能避免大家踩坑!

系统Centos 7.9
base源国内阿里云,epel,zabbix
前端Apache

Zabbix官方针对server端的前端提供两个方案,一个是Apache,一个是Nginx,本文使用Apache,如果需要使用Nginx,去查看Zabbix官方设置参数即可!

一,配置zabbix

1.设置Centos的yum源

##配置阿里云的base源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
yum clean all 
##配置阿里云的epel扩展源
yum -y install epel-release
##配置Zabbix源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm

2.安装相应组件!

#安装MySQL,Apache,Zabbix-server相关
yum install mariadb-server mariadb httpd zabbix-server-mysql zabbix-web-mysql zabbix-agent 

3.启动服务前最后的倔强

如果你是公网环境,请设置防火墙开放相应服务端口,MySQL(3306),Apache(80),zabbix(10050/10051);如果是内网环境,直接关闭防火墙即可;

##关闭防火墙
systemctl stop firewalld
##禁用防火墙
systemctl disable firewalld
##关闭selinux(临时关闭),如果你是购买的云服务器,默认就是关闭着的,而且云厂商也不允许我们开启
setenforce 0
##永久关闭
vim /etc/sysconfig/selinux
SELINUX=disabled

3.启动MySQL

##启动MySQL,并加入开机自启
systemctl start maraidb
systemctl enable mariadb
##登录数据库
mysql -u root -p #数据库暂未初始化,所以没有密码,直接回车即可!
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 38996
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

##创建zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'zabbix'; 创建zabbix用户,供zabbix使用
mysql> grant all privileges on zabbix.* to zabbix@localhost; 授权zabbix用户本地登录权限,并设置密码
mysql> grant all on in *.* to root@localhost identified by 'root'; 等同于给root用户设置本地登录密码,此时,数据库无法远程登录!如果要远程登录,授权远程登录权限!
#可选步骤:授权root用户远程登录
mysql> grant all on in *.* to root@'%' identified by 'root';
mysql> flush privileges; #刷新一下,做完授权操作以后需要flush一下才会生效!
mysql> exit; 退出数据库!
Bye

#初始化zabbix数据库,导入zabbix的sql文件!
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
输入刚才设置的zabbix用户的密码,如果导入成功,不会出错任何内容,如果有错误,请检查密码是否正确,如果是其他报错,根据报错内容分析问题原因!

4.编辑zabbix的配置文件,加入数据库密码

cat /etc/zabbix/zabbix_server.conf |grep DBPassword=
DBPassword=zabbix

5.修改zabbix所采用的时区为上海

cat /etc/httpd/conf.d/zabbix.conf |grep date.timezone
php_value date.timezone Asia/Shanghai

6.接下来就可以启动相应的服务了

##启动服务
systemctl restart zabbix-server zabbix-agent httpd
##把zabbix-server zabbix-agent httpd加入到开机自启
systemctl enable zabbix-server zabbix-agent httpd

7.登录zabbix前端初始化zabbix

访问地址:http://ip/zabbix (Apache)

                 http://ip/ (Nginx)

整个过程,除了设置zabbix连接数据库的密码需要修改外,其他无需做任何修改,保持默认即可!

8.初始化完成,登录前端!

账户:Admin

密码:zabbix

登陆上以后,查看执行过的安装命令,我们不难发现这台机器上我们不仅安装了server,也安装了agent,本机安装agent是不需要修改agent的配置文件的,保持默认的即可!

9.添加客户端

##同样,关闭firewalld,selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

##导入zabbix rpm
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
##安装agent
yum -y install zabbix-agent
##加入开机自启
systemctl enable zabbix-agent

##修改agent配置文件
cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid  #zabbix-agent的pid文件路径
LogFile=/var/log/zabbix/zabbix_agentd.log  #zabbix-agnet的log位置
LogFileSize=0                              #log文件大小限制,0表示不限制;
Server=127.0.0.1                           #zabbix-server的地址
ServerActive=127.0.0.1                     #zabbix-server的地址(主动上传)
Hostname=Zabbix server                     #本机在server端的名称,需要和添加主机时名称一致;
Include=/etc/zabbix/zabbix_agentd.d/*.conf

##基本agent端配置文件有用的信息都在上面了;

##启动zabbix-agent
systemctl start zabbix-agent

##注意查看log是否报错,如果有与主机无法通信,是正常的,因为我们还没有添加主机;

10.添加主机

配置-->主机-->创建主机 #默认前端是英文,从右上角有个小人的图标,点一下,语言选择中文即可!

注意添加模板,一般添加一个系统模板即可,因为我是linux主机,所以我只添加了一个Template OS Linux模板

 注意,主机名称一定要和agent端配置文件写的Host name保持一致,否则添加不上!

11.添加完主机等一会儿(2~3分钟)状态正常

12.其实,这个模板是有内存/CPU/的监控图形状态的,我们添加一个磁盘的监控项

配置-->模板-->搜索Template OS Linux-->监控项-->创建监控项

​​​​​​

到此,磁盘监控图形就添加结束了

 二,邮件告警

1.安装sendmail mailx

##yum源使用我们之前添加过的即可
yum -y install sendmail mailx


##测试能否发送邮件
echo "11" |mail -s "22" xxxx@qq.com/xxxx@163.com

#查看邮箱能否收到邮件(到垃圾箱去找,把这个地址添加到白名单)

2.添加脚本

##查看zabbix配置文件有关脚本的设置
cat /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

##添加脚本
cat sendmail.sh

#!/bin/bash
to=$1
subject=$2
body=$3
FILE=/tmp/mail.tmp
echo "$body" > $FILE
dos2unix -k $FILE    # 解决正文变成附件.bin问题,如果没有dos2unix就使用yum安装dos2unix
mail -s "$subject" "$to" < $FILE

chmod +x sendmail.sh
chown zabbix. sendmail.sh

3.添加管理媒介

4.创建动作

以下为上面的文字,直接Ctrl c/v即可

(1.)操作:

           默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

           消息内容:

           告警主机:{HOSTNAME1}
           告警时间:{EVENT.DATE} {EVENT.TIME}
           告警等级:{TRIGGER.SEVERITY}
           告警信息: {TRIGGER.NAME}
           告警项目:{TRIGGER.KEY1}
           问题详情:{ITEM.NAME}:{ITEM.VALUE} 

(2)恢复操作:

           默认标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

           告警主机:{HOSTNAME1}
           告警时间:{EVENT.DATE} {EVENT.TIME}
           告警等级:{TRIGGER.SEVERITY}
           告警信息: {TRIGGER.NAME}
           告警项目:{TRIGGER.KEY1}
           问题详情:{ITEM.NAME}:{ITEM.VALUE}

注意,操作和恢复操作都要添加动作!发送邮件给zabbix administrator组即可!

5.添加用户告警媒介

之前的告警不会触发邮件发送,从此时往后,告警都会触发发送邮件!

所有的邮件发送动作都会保留在动作日志中!

邮箱收到的邮件内容

至此,这篇文档就结束了,如果你部署过程中遇到任何问题,可以私信/评论 一起交流!

还是那句话:

                    ⚠:我依旧是那个不懂技术的小白!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zabbix从零到邮箱告警,可用于生产环境 的相关文章

  • SpringMVC注解开发运行原理

    服务器初始化过程 xff1a 1 xff1a 服务器初始化 加载继承 AbstractDispatcherServletInitializer即springmvc定义的代替web xml的 类初始化web容器 然后重写三个方法 xff1a
  • Unity3d游戏开发之C#开发(一)

    概要 撰写原因 xff1a 当今市面上关于Unity的教程的脚本几乎都是用js来当做教程语言的 xff0c 因为js比较容易学习 xff0c 所以如果是新学的朋友建议学js的版本 xff0c 如有特殊要求需要学习C 写脚本的话那么这系列文章
  • Spring配置文件详解

    Spring配置文件详解 1 spring的配置文件详解 Bean标签基本配置 用于配置对象让 spring 来创建的 默认情况下它调用的是类中的无参构造函数 如果没有无参构造函数则不能创建成功 属性 xff1a id 给对象在容器之中提供
  • [WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法

    相信来到这的人一定遇到这样的情况 xff0c 十分的难受 这里给大家总结了三种方法 xff0c 看看能不能解决大家的困难 1 代理问题 大家看看自己是不是因为正在搞东西 xff0c 列如 xff1a burpsuite xff0c 设置了代
  • 快速解决eclipse无法启动,一启动就报错,且整个项目显示红色感叹号和×

    eclipse中由于没有适配的server xff0c 所以需要用Tomcat来支持项目的运行 xff0c 也会出现各种各样的错误 xff0c 比如eclipse无法启动 xff0c 整个项目显示红色 xff01 和红色 该如何解决 xff
  • un7.10:在IDEA中使用若依框架实现增删改查功能。

    在java的世界中 xff0c 有很多框架提供我们使用 xff0c 今天我们就来讲一讲若依框架 若依框架是一款非常便捷的框架 xff0c 他相对于spring boot框架而言 xff0c 显得更为简单 xff0c 更为便捷 xff0c 比
  • docker常用操作命令。

    docker是一款基于Linux之上的容器 xff0c 由于它的抽象层比虚拟机少 xff0c 而且利用的是主机内流 xff0c 不需要价值操作系统的内核 xff0c 所以它比传统的虚拟机更快 xff0c 所以越来越多的人选择用docker了
  • un8.21:用html实现增删改查功能(代码篇)。

    在项目中 xff0c 我们不仅要在后端代码实现增删改查的功能 xff0c 前端也是必不可少的 xff0c 那么在前端页面中应该如何实现完整的一套增删该查呢 xff1f 接下来附上代码 xff0c 之后的文章里会有详解 一 在html中写出大
  • 达梦(DM)数据库介绍。

    达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统 简称DM 达梦数据库也属于关系型数据库 xff0c 主要有以下几个概念 数据库 实例 用户 表空间 模式 表 角色 数据文件 DM8采用全新的体系架构 xff0c
  • @TableId注解详细介绍

    64 TableId注解是专门用在主键上的注解 xff0c 如果数据库中的主键字段名和实体中的属性名 xff0c 不一样且不是驼峰之类的对应关系 xff0c 可以在实体中表示主键的属性上加 64 Tableid注解 xff0c 并指定 64
  • mybatis-plus自动填充功能

    有些时候我们可能会有这样的需求 xff0c 插入或者更新数据时 xff0c 希望有些字段可以自动填充数据 xff0c 比如密码 version等 在MP中提供了这样的功能 xff0c 可以实现自动填充 一 添加 64 TableField注
  • mybatis-plus之逻辑删除及通用枚举

    开发系统时 xff0c 有时候在实现功能时 xff0c 删除操作需要实现逻辑删除 xff0c 所谓逻辑删除就是将数据标记为删除 xff0c 而并非真正的物理删除 xff08 非delete操作 xff09 xff0c 查询时需要携带状态条件
  • MATLAB R2014b 的安装破解

    注 xff1a 本博文纯供技术学习之用 xff0c 无意侵权 xff0c 请不要传播转载并在破解24小时之内删除 提要 xff1a 因为考虑到数学建模和日常的数学学习只用安装的matlab xff0c 现在我了解的最新的应该就是matlab
  • 解决Field ‘name‘ doesn‘t have a default value报错

    今天写代码的时候报错Field 39 name 39 doesn 39 t have a default value xff0c 如下图 xff1a 是数据库属性字段没有赋初值 xff0c 然后我就去看数据库 xff0c 发现数据库 先说解
  • 仿macos风格的windows11桌面(适用win10,win11,齐全模板与配件,及相关问题解决方案)

    仿macos风格的windows11桌面在一定程度上加大了对win11的美化同时在原有的操作风格上对win11也进行了风格上的统一 xff0c 废话不多说 xff0c 先上效果图 是不是一眼就有所心动呢 xff0c 先介绍一下这个桌面上真正
  • retina屏是什么意思(Retina屏和一般显示屏幕的区别)

    可能许多比较关注电脑方面的信息或者有关于苹果的消息的小伙伴们都听说过 34 Retina 34 这个词 苹果手机 xff0c Retina视网膜屏幕 xff0c 是指人眼在正常观察距离下 xff0c 视网膜无法区分单个像素 xff0c 不再
  • 新员工-产品经理如何上手一个新产品,进行产品规划并开始工作

    产品规划 nbsp nbsp nbsp 是指产品规划人员通过调查研究 在研究市场 探寻客户 消费者需求 分析竞争对手 衡量外在机会与风险 以及对市场和技术发展态势综合研究的基础上 根据公司自身的情况和发展方向 制定出可以把握市场机会 满足消
  • Lottie动画资源放到服务器预下载,2021年Android开发突破20k有哪些有效的路径

    资源打包成zip文件放到了服务器上 xff0c 所以下载下来要解压缩 LottieAnimationUtils unZip download file parentPath downloadCount true override fun o
  • OkHttp的使用之{RequestBody、FormBody,【一步教学,一步到位

随机推荐