在公司搭建系统级监控,因为ELK在流量监控上有局限性——现有的工具只能记录累计流量,无法统计每时每刻的流量。所以决定使用zabbix对网络进行监控和告警。下面将从头开始记录zabbix搭建过程中的所有步骤,希望对大家有所帮助。前期安装工作安装必要的软件,禁用SELINUX,安装必要的软件LAMP环境,设置,安装并启动mysql,设置boot,更改mysql密码,注意后面的yorpassword要换成你自己的密码安装zabbix服务创建zabbix数据库importdata修改zabbix配置注意:请将下面的yourpasswd替换成你自己的数据库密码修改时区修改zabbix登录密码(可选)启动设置Startup通过http://hostname/zabbix...访问zab,填写安装信息,并完成安装。安装完成后,初始登录账号密码为admin/zabbix。installzabbix-agentzabbix-server安装好了,需要“连接”其他机器并纳入zabbix-server的管理,下面是安装步骤配置zabbix-agent启动zabbix-agent接下来在zabbix-server上添加这个页面如图填写机器,然后绑定模板最后点击更新,在Host目录下可以看到所有被监控机器的列表注意:如果zabbix-agent需要被其他机器调用,例如,通过zabbix_get获取监控信息,需要将防火墙设置为“释放端口10050”来监控网络流量。假设我们要监控机器192.168.8.5网卡em1上的入口和出口流量。我们可以先在zabbixserver上使用zabbix_get命令进行测试。以下代码测试输入流量。注意这里输出的是一个累积流量。监控网络流量的流程是:创建模板创建监控项创建应用:Configuration->Templates->Createapplication创建监控项:Configuration->Templates->networktrafficonem1->Items->CreateItem上图是入口流量的监控项设置。egresstraffic的监控项networktrafficoutem1同理设置。成功后会看到Triggers的创建。Triggers是触发警报的设置。同样,我们点击Configuration->Templates->networktrafficOnem1->Triggers->Createtrigger来创建Triggers。注意,在设置Expression的时候,我们可以使用zabbix提供的模板。然后设置入口流量的触发值,当每秒流量超过1048576时触发告警。同理我们可以设置出口流量的触发值。成功后,我们会看到Graphs的创建。接下来,我们将创建图表。Graphs可以图形方式显示交通信息。点击Configuration->Templates->networktrafficonem1->Graphs->Creategraph,创建Graphs最大的好处就是我们可以将这些Graphs组合起来形成以创建Screens监控面板为例,下面是创建GraphsBindingTemplate的表单至此,我们的模板就创建完成了,最后一步就是将host与模板关联起来,点击Configuration->Hosts->Templates->Select创建关联,然后点击Add,此时可以通过Monitoring->Latestdata看到网卡上的最新数据,同时可以通过Monitoring->Graphs查看图形化数据自定义脚本报警时系统出现异常,我们需要第一时间发现并通过邮件或者App通知维护同学,这样整个系统就掌握在我们手中了。为此,Zabbix需要配置以下三个选项(虽然zabbix很强大,但是配置和UI有点繁琐,这是我不喜欢的地方):MediatypesEventsUserMediaMediatypesMediatypes是生成事件时通知的方法。这里是Script方式,灵活性最大。这样,我们就可以将告警发送给任何支持Webhook的App,比如钉钉脚本,这种方法的原理是:我们把可执行的脚本放在zabbix的指定目录下,当有事件发生时,zabbix会自动调用该脚本,可以在/etc/中找到zabbix/zabbix_server.conf中指定目录的路径。媒体类型设置如下,也就是说在/usr/lib/zabbix/alertscripts下有一个脚本dingding.py。当事件发生时,zabbix会调用脚本,同时传入该脚本有3个参数,3个参数分别是事件的接收者,事件的主体,事件的内容dingding.py这个脚本如下,我们先实现一个简单的版本,就是将这3个参数输出到日志中设置脚本的权限Events事件是zabbix在某种情况发生时创建的告警对象在zabbix中,可以在事件发生时触发事件,也可以在事件恢复时触发。让我们创建一个事件。可以看到这里的事件主题和事件消息是系统默认生成的,包含了时间生成时的必要信息。同时我勾选了Recoverymessage,Conditions选项卡的内容不变,然后我们修改Operations选项卡的内容,意思是:事件持续时间为1小时(3600s),一个事件每2分钟(120s)产生一次,共产生10个事件。生成事件时,它会发送给Zabbix管理员用户组中的Admin用户。最后一个事件会用到我们刚刚创建的dingding的MediatypeUserMeida事件和Mediatype创建完成后,需要关联到指定的用户。单击管理->用户->媒体->添加。修改完成后,点击更新。通过以上步骤,我们就建立了zabbix的监控和告警,现在我们就创建了网卡的流量监控。现在我们把网络流量的阈值调小,故意制造一个超过流量的事故,看看告警是否生效。我们期望发送10个警报。发送后,我们再把阈值调到正常,看你会不会收到recovery信息。还记得之前写的脚本,它会将告警内容输出到日志文件中,现在我们查看日志文件,很明显结果符合我们的预期。以上就是zabbix入门的全部内容。在后面的文章中,我们将详细实现dingding.py报警脚本,让你真正的在手机上收到报警信息。作者:谢牛_冯亚杰链接:http://www.jianshu.com/p/4d3a...
