基于Zabbix+Grafana的IT系统运维管理平台(医疗、教育等行业)

基于Zabbix+Grafana的IT系统运维管理平台(医疗、教育等行业),第1张

1、基于Zabbix建立企业级Linux、Aix、WindowsServer服务器的监控,监控服务器的运行内存、CPU、磁盘、IO等基本情况,建立企业主机群管理。

2、基于Zabbix建立企业级数据库的监控,例如Oracle、Sqlserver、Mysql等数据库的运行情况。

3、基于Zabbix建立企业级业务系统的 健康 度监控,例如企业的自助设备的IIS服务、Tomcat服务、微服务等等。

3、基于Zabbix建立企业级网络拓扑监控。

4、实现多种媒介的报警通知

nagios最大的亮点是轻量灵活,且报警机制很强,如果你只是需要监控服务器/服务是否在运行,nagios足矣。
但是如果牵涉到画图方面,感觉nagios+cacti的结合是不如zabbix的all in one方式的。
Zabbix维护相对困难,Nagios维护相对容易
Nagios的监控相对独立(插件机制,每次执行一条命令),而Zabbix的监控相对集中。
而zabbix把报警、画图全包办了,自己就能搞定上面的一堆东西。另外zabbix的agentd在windows server下运行良好,甚至32/64位均有,不像nagios只能用一个半死不活的插件。
综上,zabbix和nagios不存在谁好谁坏的问题,只存在你的需求不同需要选择哪个更好的问题:
如果只为了报警,nagios吧,足够满足需求;
如果需要图表,zabbix吧
================>以上由太平洋安防网为您解答,望采纳,谢谢!<================

前面分别介绍了:
linux运维之zabbix监控编译安装
linux运维之解决zabbix中文乱码
linux运维之zabbix监控windows服务器
linux运维之zabbix监控Windows服务器服务是否正常
linux运维之zabbix通过UserParameter实现自定义监控linux服务器
原理:主要检测网站的状态码:
1在zabbix中 :配置→主机→选择监控的主机1
2选择WEB场景→创建web场景
3在场景中填入如下,名称自己写,浏览器版本根据自己需要选择
4在步骤中点击新增,在d出对话框填入名称,检测URL,以及状态码
5选择图形,创建图形
6创建图形,添加加入的监控项
7查看实时图形,发现已经检测到>zabbix监控添加主机,报警、监控的设置
根据使用zabbix这么久的经验,总结了一套zabbix比较实用的添加主机、监控报警的使用流程,供大家参考。
一:添加处理方法,就是如何报警
打开zabbix的管理------处理方法----create media type:
我用的是脚本发邮件的方式来报警的,脚本名字为mailpy。指的一提的是脚本存放位置,我的脚本是放在/usr/local/zabbix/bin/目录下面,在这里不写目录的据对路径,直接写脚本名字,他的路径设置是在zabbix服务器端的配置文件中设置的,在zabbix_serverconf配置文件中设置:AlertScriptsPath=/usr/local/zabbix/bin/
二:添加zabbix用户和组,设置其邮箱地址等信息
1:打开zabbix的管理------用户---选择用户组下拉----create user group:
填写个组名,设置需要的权限直接保存就成,其他的不用填写和选择。
2:打开zabbix的管理------用户---选择用户下拉----create user:
填写用户信息
3:添加报警介质,就是报警方式,因为是报警,信息那项就不用勾选,信息一般就是服务器信息发生变化时报警,这个一般没有什么意义,所以不勾选,不过你也可以选择,根据个人喜好。类型的话就是选择处理发放中的报警介质,选择你添加的。然后可以保存信息,完成添加用户(Permissions那项没有不填写)。
三:报警触发器触发的动作设置
当监控项中的触发器达到你设置的报警值之后,需要执行 *** 作来发送邮件等动作。具体设置:
1:打开zabbix的系统配置--- *** 作---- 选择事件源为触发器------create action:
2:触发条件设置:
3:详细 *** 作设置,即满足触发条件之后执行什么动作,这里一般设置为发邮件之类的,设置收邮件的用户(建议每个组对应一个用户,这样发邮件的时候容易设置发送对象):
四:zabbix中常用到的几个key
Zabbix的key可以理解为zabbix的命令,执行这个key可以得到相应的结果。
1:监控端口的:nettcpport[,3306]
/usr/local/zabbix/bin/ -s1921688120 -knettcpport[,3306] 返回1为1921688120的端口3306存在,0为不存在
2:监控进程的:procnum[mysqld]
/usr/local/zabbix/bin/zabbix_get -s1921688120 -kprocnum[mysqld] 返回值为1921688120中mysqld的进程数量
/usr/local/zabbix/bin/zabbix_get -s1921688120 -kprocnum[] 返回值为1921688120中所有的进程数量
3:查看CPU核数的:systemcpunum 返回值为服务器CPU的核数
4:查看系统的系统启动时间和当前时间:systemboottime、systemlocaltime 返回值为系统启动时间和当前时间,为时间戳格式
5:查看系统的简单信息:systemuname 返回值为1921688120的系统信息,类似于linux系统的uname -a命令
6:查看windowns系统当前网卡的进出流量:netifout[{HOSTNAME},bytes]、netifin[{HOSTNAME},bytes]和linux系统的key:netifout[eth0,bytes]、netifin[eth0,bytes]一样
/usr/local/zabbix/bin/zabbix_get -s1921688120 -knetifin[1921688120,bytes] 返回值为IP为1921688120的进流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
/usr/local/zabbix/bin/zabbix_get -s1921688120 -knetifout[1921688120,bytes] 返回值为IP为1921688120的出流量,此值为计数值,单位为bytes,减去上次取得值,除以时间间隔为此段时间内的平均流量
7:查看系统内存大小:vmmemorysize[total],返回值单位bytes
8:查看文件的大小: vfsfilesize[file] 如: vfsfilesize[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
9:查看文件是否存在:vfsfileexists[file] 文件如果存在返回0,不存在返回1
10:查看文件的MD5:vfsfilemd5sum[file]查看小文件的MD5,返回为MD5值(好像只有20以上的版本有这个key)
11:自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:netifdiscovery,vfsfsdiscovery,windows和linux监控模板中都有这模板(20以上版本),应用即可
以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。
要启用自定义key,需要在客户端的配置文件中启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:
UserParameter=freedisk,/usr/local/zabbix/bin/diskpy
freedisk为key的名字,/usr/local/zabbix/bin/diskpy为服务器端调用freedisk这个key时执行的脚本,其结果就是freedisk的返回值。脚本可以是任何可以运行的脚本语言。
五:创建监控模板和监控项
其实在zabbix服务器端安装完成之后,就有许多自带的监控模板,基本上可以满足大众化的监控需求,不过其中有许多是没有必要的监控项或是自己不感兴趣的,比较冗余,所以要做好监控的话,还是自定义模板和监控项,这个监控模板可以修改zabbix系统自带的,也可以自己创建。以下为自己创建监控模板。
1:创建监控模板:
打开zabbix的系统配置---模板----create template:
填写模板名字和模板所在组保存即可。

zabbix 22版本以后(Vmware vCenter or vSphere 最低版本 41),开始支持直接监控vmware了, 可以自动搜索到所有的ESXI和VM,并自动把他们列入监控对象。我觉得非常不错,下面说说我的监控步骤。
理论分析
1模板在zabbix中已经预先配置好了,对于vcenter的HOST,指定为Template Virt VMware。编译安装阶段要想支持vmware监控需要在/configure添加--with-libxml2和--with-libcurl其中前一个是在22中添加的;
2安装完成后,在zabbix_serverconf配置文件需要指定‘StartVMwareCollectors’参数,否则启动zabbix_server是不会启动vmware相关的进程(配置文件有解释我就不做详细叙述);
vi /data/soft/zabbix-220/etc/zabbix_serverconf
StartVMwareCollectors=5
VMwareFrequency=60
VMwareCacheSize=8M
3在HOST界面中添加vmwareesxi设备后,需要指定{$URL}、{$USERNAME}和{$PASSWORD}三个变量,因为在调试系统自带的"TemplateVirtVMware"模板时,模板中的KEY调用的是这三个变量;原则上添加对vcenter的host监控时,不需要zabbix_agent,在web页面输入必要的ip信息,关联好模板,填写好三个宏(web页面上叫巨集)即可。
4当第三步成功的时候不仅能监控esxi物理主机,还能自动发现该esxi上运行的主机并自动添加到监控系统中并加载"Template Virt VMware Guest"模板(模板在下面提供下载)。
*** 作步骤
1、添加esxi主机监控
2、设置变量
3、关联模板
配置好HOST后,经过VMware Frequency时间后,zabbix 监控到vmware vcenter机器上管理了哪些ESXI服务器,并将其加入到HOST中并同Template Virt VMware Hypervisor模板关联,再进一步监控到哪些vm和volume,也一并将其加入到HOST中并同Template Virt VMware Guest模板关联。
4、查看host会多出很多监控项
5、自动发现的监控项目
在HOST自动发现并添加后,item的更新是根据每一个项目(item)设置的时间间隔来更新的,但是与VMwareFrequency有关,因为check_simple大多都是从内存中维护的vmware集群结构中获取的值。
结语:
使用Zabbix的目的,是为了能够更好的监控MySQL数据库服务器,并且能够生成图形报表,虽然Nagios也能够生成图形报表,但没有Zabbix这么强大。以上是通过设置zabbix来监控VMware主机的原理以及步骤解析,希望能帮到有需要的朋友。

第一:zabbix
zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位或解决存在的各种问题。
第二:Nagios
Nagios是一款开源的的免费网络监视工具,能有效监控Windows、Linux和Unix的状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警时间通知运维人员,在状态恢复后发出正常的邮件或短信通知。
第三:SeaLion
SeaLion是一个基于云的Linux服务器监控工具。也是通过统一的仪表盘监控所有服务器指标,它只需几分钟即可完成设置,它具有即时报警功能,以便在发生问题时,可以快速收到通知和每日数据摘要等。
第四:Icinga
Icinga是一个免费的开源监控系统,可以检查服务器资源的可用性,它会记录服务器问题并在停机的时候通知您。
第五:Munin
Munin是一个网络和系统监控工具,可帮助您分析服务器资源趋势。它旨在成为一个即插即用的解决方案,安装后无需太多额外工作即可收集关键信息。Munin主要功能是有效分析服务器资源优势,属于网络及系统监控的工具。
第六:Monit
Monit是一个用于管理和监控Unix系统的开源工具。Monit可以进行自动维护和维修,如果出现错误情况,Monit可以自动触发保护行为。
第七:Performance Co-Pilot
Performance Co-Pilot,简称PCP,是一个系统性能分析框架。它收集并分析来自多个主机的各种性能指标,可以通过它观察指标走向的趋势,以帮助您快速识别异常所在点。它提供API,可依据此来开发自定义的监控和报告解决方案。

公司新上了一个新的数据中心,需要用zabbix监控华三交换机的网络流量。
配好snmp协议之后,正常都能识别,但慢慢的发现一个问题,电信的接口经常出现少数据的情况,但联通和铁通都没有什么问题。
zabbix绘的图断断续续的,有时更神奇的是,流量突然下降,下降的还很离谱,从500多Mbps一下掉到40多Mbps,一度以为是交换机返回的数据有问题了。
后来在zabbix机器上抓包,发现数据包没有丢,数据也没有什么异常,不过抓的包里面,有个counter32引起注意。
然后仔细阅读snmp的文档,发现snmp协议返回的ifInOctets和ifOutOctets都是流量的总量,而我们都是取两次的差值,然后除以取样的间隔时间,得出的平均值。
而counter32的数据类型计数的最大值是2的32次方减1,当超过4G的时候,计数器就会清零。
后来分析zabbix的snmp interface的模板,发现zabbix取样时间是1分钟,在我们由于流量大,很快就清零了,并且有时计数清零之后新增的数值,比上一次的计数还要大,zabbix还以为没清过零,直接相减除以了时间间隔,就造成了“网络流量陡降的假象”。
找到原因之后,剩下的就好办了,我们需要的是,使用counter64的oid数据。
在zabbix中导出template snmp interfaces模板,然后修改一下名字,重新导入。修改这个新的模板:
在“探索规则”中找到“项目原型”,点击“Incoming traffic on interface {#SNMPVALUE}”,
1将其“键值”中的ifInOctets[{#SNMPVALUE}]修改为ifHCInOctets[{#SNMPVALUE}]
2将“SNMP OID”中的IF-MIB::ifInOctets{#SNMPINDEX}修改为IF-MIB::ifHCInOctets{#SNMPINDEX}
同样:“项目原型”中的“Outgoing traffic on interface {#SNMPVALUE}”也做类似修改。
也就是将ifInOctets和ifOutOctets替换为ifHCInOctets和ifHCOutOctets。
然后把主机删除,重新添加主机,这次一切都清爽了,绘的图都是连续的,也没再出现陡增陡降的问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12631279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存