配置zabbix监控项和告警并结合grafana绘制图形


配置前已将zabbix的web网页部署完成

第一次登录页面后,页面首页为英文,并且不可用主机为1,原因是部署zabbix的主机没有安装zabbix的agent代理

 

 首先将zabbix界面的语言切换至中文,然后在zabbix主机上安装agent2代理

[root@zabbix-test ~]# yum -y install zabbix-agent2.x86_64

 安装后启动并设置下次开机启动agent2代理

[root@zabbix-test ~]# systemctl enable zabbix-agent2.service --now

此时zabbix已经通过agent2代理监控到本机

 添加其它监控主机,此处以我的k8s-master节点为例

先在master节点上安装zabbix-agent2代理,然后修改代理的配置文件

[root@master ~]# yum -y install zabbix-agent2.x86_64

 配置文件中我们只将Server和ServerActive改为监控节点的IP地址(Server表示允许哪个主机到我这里获取数据ServerActive表示主动向哪个主机发送数据)

 Server为被动模式,ServerActive为主动模式。主动模式和被动模式可同时开启并指向同一个IP

然后在配置中找到主机选项

 点进去后右上角有创建主机选项

 

 主机和模板必填,模板选择如上所示模板,然后点击添加

添加后在zabbix搭建端重启zabbix服务

[root@zabbix-test ~]# systemctl restart zabbix-server.service

此时,仪表盘页面可用主机已变成两个

 然后给zabbix搭建端创建监控项,一个监控项即为一个监控指标

[root@zabbix-test ~]# vim /etc/zabbix/zabbix_agent2.conf

找到Userparameter参数,如下所示,下图告诉你该如何自定义监控项

 Include表示的文件为自定义监控项的配置文件

 我们进到此目录下,发现该目录下是空的,然后我们自定义一个conf后缀结尾的配置文件

[root@zabbix-test ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@zabbix-test zabbix_agent2.d]# ll
total 0

[root@zabbix-test zabbix_agent2.d]# vim monitor.conf

[root@zabbix-test zabbix_agent2.d]# cat monitor.conf
UserParameter=sda_tps,iostat |awk '$1 ~/sda/{print $2}'

我们定义一个参数来监控sda磁盘的每秒传输次数,前提zabbix监控端得有iostat命令

自定义一个监控项后记得重启zabbix-agent2服务

[root@zabbix-test zabbix_agent2.d]# systemctl restart zabbix-agent2.service

然后我们安装一个zabbix取监控项的值的命令

[root@zabbix-test zabbix_agent2.d]# yum -y install zabbix-get.x86_64 

我们通过zabbix_get查看sda_tps的key是否能取到值

[root@zabbix-test zabbix_agent2.d]# zabbix_get -s 127.0.0.1 -k sda_tps
11.16

可以取到值后我们在zabbix的web页面给zabbix监控端添加sda_tps这个监控项

依然在配置里点击主机,然后找到监控项

 在右上角点击创建监控项

 名称在这里我们可以选择中文,键值就填我们之前自定义的键值,信息类型因为我们之前取到的值为浮点数,所以这里我们选择浮点数,更新间隔可自定义,在这里我们定义间隔为10秒,应用集我们可以选择添加新应用集,也可以将此监控项添加到已有的应用集中,为的是方便我们后面的grafana监控绘图

添加后我们在左侧选项栏中找到监测-->最新数据,可以查看是否监测到我们新添加的监控项

 如上图所示,我们监控到最近数据,并且在右边还可以查看对应的图形

同时,我们已可以将此监控项复制给我们的k8s-master节点

我们在配置-->主机-->zabbix server的监控项里找到我们新添加的监控项选中复制给我们的k8s-master节点

 当然,我们后续也可以创建主机群组,将监控项复制给主机群组

复制后,我们在我们的k8s-master节点编辑我们的配置文件

 然后重启我们master节点的agent2代理服务

[root@master ~]# systemctl restart zabbix-agent2.service

此时,我们再点击监测-->最新数据,此时两台机器都已监控到我们自定义的监控项

 添加触发器

点击配置-->主机,然后点击触发器

 右上角创建触发器

此处我们以之前创建的监控项为例,创建一个sda磁盘每秒传输速度过高的触发器

 允许手动关闭可根据情况选择是否开启,创建后如果我们zabbix监控端的sda磁盘的传输速度大于8,则在仪表盘界面就能看到告警信息

 触发器我们同样可以通过复制监控项的方法复制给我们的k8s-mater节点,此处不再举例

 然后我们配置邮箱告警,即当zabbix监控端发现告警时可通过邮箱发送给自己

点击配置-->动作,将可发送消息状态改为启用

 然后点击管理-->告警媒介类型,右上角点击创建媒体类型

SMTP服务下面有介绍在哪查看,SMTP服务器端口可选择465或者25,SMTP HELO填SMTP服务器的后半部分,SMTP电邮则为发件人,SSL/TLS用QQ邮箱作为告警媒介时一定要勾选

认证选择用户名和密码,用户名称为发件人的邮箱,密码为QQ邮箱的授权码。注:不是你的QQ邮箱密码,授权码下面有介绍从哪获得

在QQ邮箱中点击设置-->账户

 找到SMTP服务,并点击"什么是IMAP,它又如何设置?"

找到发送邮件服务器的域名

 然后点击User settings-->报警媒介,添加收件人

 类型选择我们刚创建的QQ邮箱告警,收件人自己定义,当启动时和哪种严重性发送邮件都可自定义

添加完后记得点击更新

 报警媒介定义成功后,当zabbix出现告警时会通过邮件的形式发送到收件人的邮箱,下面不再依次截图为例

接下来,我们通过安装grafana插件来对我们定义的监控项进行绘图

首先,百度搜索grafana官网

 然后我们根据相应的Linux发行版本找到对应的grafana版本,此处以grafana-7.5.8为例

 将命令复制粘贴到终端,然后启动grafana服务

[root@zabbix-test ~]# systemctl enable grafana-server.service --now

此时查看grafana服务监听的端口

 如上所示,监听3000端口,因此我们用zabbix监控端IP加3000端口即可访问grafana页面

grafana的登录界面如下所示

 默认登录的username和Password都为admin

第一次登录会让你修改登录密码,当然也可以任性跳过

 登录后

 搜索zabbix发现搜不到

 原因是没有安装zabbix的插件

因此接下来我们安装插件并重启grafana服务

 [root@zabbix-test ~]# systemctl restart grafana-server.service

然后重新在插件页面搜索zabbix

此时已有zabbix

 点击zabbix并启动

 然后添加数据源

 

 搜索zabbix

 

 基础认证打开,然后用户名和密码都是zabbix登录页面的账号和密码

信息无误后,显示如下所示

 然后创建一个仪表盘

 

将我们创建的监控项添加上去

相关