zabbix + grafana 快速入门
zabbix 架构:
snmp:zabbix 监控网络性能所依赖协议
IPMI:用于监控物理硬件性能指标,可以获取物理设备的温度、CPU 温度,风扇转速
JMX:监控 java 项目所使用的出口。
SSH:支持 ssh 登录的设备都能获得到数据,比如交换机、linux 等,但前提是设备有 ssh 功能。比如使用 ssh 方式收集 linux 的文件系统挂载情况
部署环境:
Server
Client
Server 端安装并部署 zabbix( 此处将写好的脚本上传直接跑脚本搭建 zabbix )
脚本执行成功后,用 Server IP 访问 web 页面
然后 zabbix-server 安装 agent 代理设置服务启动并重启 zabbix 服务以确保 agent 代理能采集到 zabbix-server 的数据
此时就可以监控到 zabbix server
然后,将语言换成中文
添加 zabbix-agent,首先客户端先下载对应的安装包( 并编辑配置文件使其向 zabbix-server 发送数据 )
通过 web 界面添加 agent 主机,点击配置-->主机-->右上角创建主机
此时可用主机已变成3,告警的原因是因为没有做时钟同步
各节点安装 chrony 时钟同步并配置 zabbix-server 作为被同步的 ntp 服务器( 这里 Ubuntu 采用的是12小时制的时间,可以看到那个 PM 表示下午,因此时钟同步是成功的 )
然后查看 web 页面,此时时钟不同步的告警已消失( 出现下面的信息是由于安装了 chrony,/etc/passwd 文件中多了 chrony 用户,并不是告警 )
查看自定义监控项如何设置
添加两个自定义监控项,添加后重启 zabbix-agent2 服务
安装 zabbix-get 验证能否取到监控值
第二个监控项虽然取到值了,但有如下提示,原因是 netstat 命令的 -p 参数只能 root 使用( -s 后面跟主机名或 IP,-p 后面跟 zabbix-agent 的端口,默认为10050,-k 后面跟自定义监控项的 key )
因此,我们修改一下 netstat 命令的权限
因为zabbix服务端取值的时候用的是 zabbix 用户,并非 root 用户,因此当 netstat 命令设置了 suid 的权限后,普通用户再执行 netstat 命令时就会获得文件属主的权限,即 root 用户的权限
此时再取值,就不会出现那个提示
在 web 界面添加我们的自定义监控项
点击配置-->主机-->zabbix server 的监控项,然后点击右上角的创建监控项
添加自定义监控项后,查看是否添加成功
点击监测-->最新数据
我们定义的两个自定义监控项都是动态的数据,因此这里1并不表示我们监测的数据是错的
点击配置-->主机-->zabbix server的监控项,我们可以将刚才自定义的监控项添加到 client 端的两台主机(这里不再举例)
能监测到 client 端的前提是 client 端也必须具有 iostat 和 netstat 命令
我们也可以在 web 界面查看我们自定义监控项的图形
上图这么多矩形是因为原生的 zabbix 对中文的支持并没有英文那么好,因此我们需要上传中文字体到 zabbix-server 的指定目录下
在 C 盘里找到字体所在的目录,选择一个字体进行上传,这里以华文楷体为例( 我们在这里可以右键点击这个字体复制粘贴到桌面然后通过 rz 命令上传 )
mv 命令前面加个反斜杠表示临时取消 mv 命令的别名
此时,重启 zabbix-server ,然后再查看 web 页面,这时已没有矩形
添加邮箱报警
首先点击配置-->动作,将状态改为启用状态
添加邮箱报警发件人之前要确保163邮箱的 smtp 服务开启,并且找到对应的 smtp 服务
也可以通过 foxmail 登录163邮箱查看对应的 smtp 发件服务器
得到上述信息后再添加发件人,点击管理-->报警媒介类型
定义收件人
添加比较容易触发告警的触发器,点击配置-->主机-->zabbix server的触发器,然后点击右上角创建触发器
点击添加表达式,添加一个用户登录数大于5的触发器
然后我们模拟用户登录数过多
然后在 web 界面查看
同时查看对应邮件
接下来,我们通过安装 grafana 将采集到的数据绘制成图形
按照提示将框中的命令执行一下
然后查看 grafana 服务监听的端口
通过3000端口访问 web 页面
登录后,将时区改为和 zabbix 服务端的时区一致,然后查看是否有 zabbix 的插件
点开 zabibix 后,发现并没有安装
我们可以通过点击 install 进行安装,也可以通过命令行的方式安装 zabbix 插件,此处以命令行为例
刷新 grafana 的 web 界面,启动 zabbix 插件
启动后,添加数据源