zabbix监控手动部署、邮件告警

zabbix概述

Zabbix 是一个企业级分布式开源监控解决方案

Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。

架构

所有的监控,承载的协议都离不开SNMP

zabbix可以运行在lamp或者lnmp架构之上,如果想实现分布式监控,使用的底层架构最好是lnmp架构,但是我们知道nginx的动态处理能力很弱,所以将动态请求转交给php进行处理

zabbix功能

详细信息:Zabbix 分布式系统监视

● 数据采集

● 灵活的阈值定义

● 高度可配置化的告警

● 实时图形

● web监控功能

● 可视化选项繁多

● 配置简单

zabbix监控部署在系统中,包含常见的五个程序:zabbix selrver、zabbix agent、zabbix proxy、zabbix get、zabbix sender等。

  • zabbix server:zabbix 服务端守护进程,其中zabbix agent、zabbix get、zabbix sender、zabbix proxy的数据最终都提交给zabbix server;
  • zabbix agent:客户端守护进程,负责收集客户端数据,例如:收集CPU负载、内存、硬盘使用情况等;
  • zabbix proxy:zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署;
  • zabbix get:zabbix 数据接收工具,单独使用的命令,通常在server或者proxy 端执行获取远程客户端信息的命令;
  • zabbix sender:zabbix数据发送工具,用户发送数据给server或proxy端,通常用户耗时比较长的检查。

部署 zabbix 服务端

  • zabbix-server 内存至少 2G,推荐 4G;
#关闭防火墙
systemctl disable --now firewalld
setenforce 0

获取 zabbix 的下载源

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

更改主机名

hostnamectl set-hostname zbx-server

更换 zabbix.repo 为阿里源

cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
yum clean all && yum makecache
yum install -y zabbix-server-mysql zabbix-agent

安装SCL(Software Collections)

  • 便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /etc/opt/rh 目录下。
yum install -y centos-release-scl 

修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下

vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1          #开启安装源
......
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装mysql及apache相关工具

安装 zabbix 所需的数据库

yum install -y mariadb-server mariadb
systemctl start mariadb.service
systemctl enable mariadb.service
mysql_secure_installation         #初始化数据库,并设置密码

添加数据库用户,以及 zabbix 所需的数据库信息

mysql -u root -p1999612

CREATE DATABASE zabbix character set utf8 collate utf8_bin;  #创建数据库并且设置字符集为utf8
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; #允许用户zabbix对zabbix中所有表进行操作且用户密码为zabbix
flush privileges;    #刷新权限

导入数据库信息

rpm -ql zabbix-server-mysql 		#查询 sql 文件的位置

zcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz | mysql -uroot -pabc123 zabbix
#zcat命令可以直接查看数据包里的文件内容

修改 zabbix-server 配置文件,修改数据库的密码

vim /etc/zabbix/zabbix_server.conf 
......
DBPassword=zabbix					#124行,指定 zabbix 数据库的密码

修改 zabbix 的 php 配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
......
php_value[date.timezone] = Asia/Shanghai		#25行,取消注释,修改时区

启动 zabbix 相关服务

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

浏览器访问:http://192.168.239.10/zabbix

点击下一步,设置数据库的密码 zabbix
安装完成后,默认的登录账号和密码为:Admin/zabbix
设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

解决 zabbix-server Web页面中文乱码问题

yum install -y wqy-microhei-fonts

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

此时再后头看下乱码已解决

部署 zabbix 客户端

  • zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
    zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。
#关闭防火墙并修改主机名
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01

服务端和客户端都配置时间同步

yum install -y ntpdate
ntpdate -u ntp.aliyun.com

客户端配置时区,与服务器保持一致

mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

date

设置 zabbix 的下载源,安装 zabbix-agent2

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm 

cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum install -y zabbix-agent2

修改 agent2 配置文件

vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.80.20			#80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.80.20		#120行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01			#131行,指定当前 zabbix 客户端的主机名

启动 zabbix-agent2

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

netstat -natp | grep zabbix
tcp6       0      0 :::10050                :::*                    LISTEN      54404/zabbix_agent2

在服务端验证 zabbix-agent2 的连通性

yum install -y zabbix-get				#安装 zabbix 主动获取数据的命令

zabbix_get -s '192.168.239.20' -p 10050 -k 'agent.ping'
1

zabbix_get -s '192.168.239.20' -p 10050 -k 'system.hostname'
zbx-agent01

在 Web 页面中添加 agent 主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01-192.168.239.20
【群组】选择 Linux server
【Interfaces】的【IP地址】设置成 192.168.239.20

再点击上方菜单栏【模板】
【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
点击 【更新】

自定义监控内容

案列:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息

在客户端创建自定义 key

明确需要执行的 linux 命令

who | wc -l   #统计登录人数

创建 zabbix 的监控项配置文件,用于自定义 key

vim /etc/zabbix/zabbix_agent2.conf
#可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中269行
Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
292行 
#Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf   #创建配置文件
UserParameter=login.user,who|wc -l

systemctl restart zabbix-agent2

在服务端验证新建的监控项

zabbix_get -s '192.168.239.20' -p 10050 -k 'login.user'
#可以看到获得键的值了

在 Web 页面创建自定义监控项模板

创建模板

点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Templates
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到 Templates Login User 了

创建应用集(用于管理监控项的)

点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击 【添加】

创建监控项

点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user			#键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period	30d		#保留时间可自定义设置
点击 【添加】

创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)

点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】

创建图形

点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】

将主机与模板关联起来(一个主机可以关联多个模板)

点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】

此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标

此时登录两个终端

服务器查看

此时web查看告警

同时图形也可以看到

设置邮件报警(前提自己邮箱得开启smtp)

点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 gb3329845260@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 gb3329845260@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能

点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 qwe4546456@wo.cn
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】

点击左边菜单栏【配置】中的【动作】
选择相对应的动作名称点击进入,点击 【添加】
【类型】选择 触发器,【触发器】点击选择 Nunber of login users is greater than 3
点击【启用】

测试邮件报警

增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警

邮箱查看

总结

1确定获取监控指标数值的命令或者脚本路径

2在客户端的zabbix-agent2的配置目录中创建*.conf文件在文件里定义监控的键名UserParameter=<key>,<shell command>

3在zabbix web界面中自定义监控模板,创建模板->应用集->监控项->触发器->图形

4将主机与监控模板关联起来

5设置邮件报警创建报警媒介->添加报警媒介一>在动作当中去添加触发器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值