使用 zabbix + grafana 监控和绘图

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

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

 

 

 

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

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

 安装后启动并设置下次开机启动 zabbix-agent2

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

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

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

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

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

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

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

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

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

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

添加后在 zabbix server 端重启 zabbix 服务

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

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

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

[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

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

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

我们通过 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

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

 添加触发器

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

 右上角创建触发器

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

 

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

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

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

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

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

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

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

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

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

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

 

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

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

添加完后记得点击更新

 报警媒介定义成功后,当 zabbix 出现告警时会通过邮件的形式发送到收件人的邮箱

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

 在 grafana 官网根据相应的 Linux 发行版本找到软件包,此文以 grafana-7.5.8 为例

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

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

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

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

grafana 的登录界面如下所示

 默认登录的 username 和 password 都为 admin

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

 登录后

 搜索 zabbix 发现搜不到

 原因是没有安装 zabbix 的插件

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

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

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

此时已有 zabbix

 点击 zabbix 并启动

 然后添加数据源

 

 搜索 zabbix

 

 

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

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

 然后创建一个仪表盘

 

 

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

posted @ 2022-01-09 18:44  demoduan  阅读(2251)  评论(0编辑  收藏  举报