zabbix+grafana从零到快速入门
zabbix架构:
snmp:zabbix监控网络性能所依赖协议
IPMI:用于监控物理硬件性能指标,可以获取物理设备的温度、CPU温度,风扇转速
JMX:监控java项目所使用的出口。
SSH:支持ssh登陆的设备都能获得到数据,比如交换机的、linux等等,但前提是设备有ssh功能。比如使用ssh方式收集linux的文件系统挂载情况
部署环境:
分为Server端和Client端
Server端:(即搭建zabbix的服务端)
Client端:(即zabbix服务监控的一端,也叫做Agent端)
Server端安装并部署zabbix(此处将写好的脚本上传直接跑脚本搭建zabbix)
脚本执行成功后,用Server端IP访问web页面
然后server端安装agent代理设置服务启动并重启zabbix服务以确保agent代理能采集到server端的数据
此时就可以监控到server端
然后,将语言换成中文
添加zabbix的agent客户端,首先客户端先下载对应的安装包(并编辑配置文件使其向server端发送数据)
通过web界面添加agent端的主机,点击配置-->主机-->右上角创建主机
此时可用主机已变成3,告警的原因是因为没有做时钟同步
各节点安装chrony时钟同步并配置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服务端,然后再查看web页面,这时已没有矩形
添加邮箱报警
首先点击配置-->动作,将状态改为启用状态
添加邮箱报警发件人之前要确保163邮箱的smtp服务器开启,并且找到对应的smtp服务器
也可以通过foxmail登录163邮箱查看对应的smtp发件服务器
得到上述信息后再添加发件人,点击管理-->报警媒介类型
定义收件人
添加比较容易触发告警的触发器,点击配置-->主机-->zabbix server的触发器,然后点击右上角创建触发器
点击添加表达式,添加一个用户登录数大于5的触发器
然后我们模拟用户登录数过多
然后在web界面查看
同时查看对应邮件
接下来,我们通过安装grafana将采集到的数据绘制成图形
按照提示将框中的命令执行一下
然后查看grafana服务监听的端口
通过3000端口访问web页面
登录后,将时区改为和zabbix服务端的时区一致,然后查看是否有zabbix的插件
点开zabibix后,发现并没有安装
我们可以通过点击install进行安装,也可以通过命令行的方式安装zabbix插件,此处以命令行为例
刷新grafana的web界面,启动zabbix插件
启动后,添加数据源
到此并未完结,后期会在此基础上追加内容