当前位置:首页 > CN2资讯 > 正文内容

zabbix监控windows zabbix监控服务器

2天前CN2资讯


一、server端配置

LogFile=/tmp/zabbix_server.log #默认即可 PidFile=/tmp/zabbix_server.pid #默认即可 DBHost=localhost #默认即可 DBName=zabbix #在数据库中创建的,默认即可 DBUser=zabbix #在数据库中创建的,默认即可 DBPassword=zabbix #在数据库中创建的,默认即可

以上基本都是默认的,此外,监听端口为10051等也是默认的;即基本不用修改server端

二、agent端配置

LogFile=/tmp/zabbix_agentd.log #默认即可 Server=172.16.2.11 #这里配置的IP为zabbix-server端的IP 即为被动模式下,由服务端主动请求AGENT,去获取所采集到的监控数据 ServerActive=127.0.0.1 #这里配置的IP为zabbix-server端的IP 即主动模式下,AGENT端(即采集客户端)将所采集的结果,主动提交给服务端服务器

说明:这里若不修改ServerActive(即默认为127.0.0.1),则意思是虽然开启了主动监控,但是没有配置远程server端的IP,所以主动监控就无法实现;也即是这里采用的即为被动监控;

Hostname=Zabbix server #这里不需要设置,默认即可 UnsafeUserParameters=0 #为0意思是不开启用户自定义监控项,为1是开启自定义监控项

修改配置之后重启zabbix_agentd,则zabbix_agentd监控被动模式监控开启;

PS1:zabbix_agentd的自定义监控说明,在配置文件中

UserParameter= #这里是开启用户自定义监控项后,可以定义监控项的名称,格式为UserParameter=<key>,<shellcommand>,一个例子如下: UserParameter=memory_userd, free -m|grep Mem|awk '{print$3}',这里的监控key值为memory_userd,Shell命令或脚本为free -m|grep Mem|awk '{print $3}',然后再web界面找到

这个agent所在的主机,添加item

PS2:zabbix在server端的测试命令

export PATH=$PATH:/usr/local/zabbix/bin ##称为环境变量 zabbix_get -s 172.16.2.3 -p 10050 -k 'dubbo.ping[mobile]' ##测试命令

三、web界面配置

1、添加一个主机

(1)主机名称:填写主机名称          ##这里不必和agent.conf中的hostname必须一致(大多数博客没有搞清楚这里,说必须一致),只要下面的ip一致就可以了;

(2)agent代理程序的借口:填写入agent端所在主机的IP(后面的端口为默认即可)

(3)添加完主机后,再添加链接的模板;

其他项可根据实际填写,或者不填取默认值;也可直接克隆主机(较为方便);

2、添加一个监控项

对监控项的理解:就是从主机获取到的所有数据,通常称为item,构成方式为“key+参数”;例如,监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load。一般情况下key要与参数结合起来使用,例如获取5分钟的负载情况:system.cpu.load[avg5],即两者合起来称之为“键值”。

(1)名称:监控项的名称,可以自己来自定义。可以使用如下的宏变量,$1, $2…$9,这9个参数对应item key的参数位置。例如: Free disk space on $1,如果item key为“vfs.fs.size[/,free]”,那么对应的名称会变成”Free disk space on /“,$1对应了第一个参数”/“

(2)类型:一般默认为agent客户端,不同类型对应的key不同

(3)键值:监控item的key表达式,点击可选择系统自带的key,用户也可以自定义key

PS:只有系统自带的key,才可以不用在agent端添加userParamater,否则需要添加自定义的参数;

(4)主机接口:默认为本机( 在哪个主机上添加就是哪个主机的IP和端口)

(5)信息类型:获取到的信息类型,有数字、浮点数、字符、文本、日志等,默认为数字,根据监控项返回的信息来选择

(6)数据类型:获取到的信息类型若为整数,这里选择整数的类型,默认为10进制

(7)单位:默认情况下,若返回的信息类为数字超过1000,则会处以1000来处理,如的单位为bytes时,返回11200时会处理为11.2kbytes

(8)自定义倍数:

(9)数据更新间隔时间:默认多久刷新一次数据

(10)自定义时间间隔:可以自定义哪段时间内多久进行刷新数据,可知不能用在主动方式的监控项;

(11)查看值:值的映射,可以定义返回值映射为一段可理解的文字,例如0代表宕机,1代表正常等;可以自己创建值映射;

(12)应用集:属于哪个应用集合;

3、item中的key和用户自定义参数userParameter的详细说明

(1)对key的说明

key是监控项的载体,用来承载这个监控项的数值,由key和参数组成,格式为:key[parameters],例如vfs.fs.size[/,pfree];key有不同的类型,对于zabbix_agent类型的key,需要大概了解一下其功能和参数含义。

(2)对触发器的说明

触发器其实就是一个表达式,用来表达一个key的临界值(正常与否的临界)。在添加触发器时,主要是添加触发器的表达式和触发结果的级别(严重、一般等),表达式的格式为:{<server>:<key>.<function>(<parameter>)}<operator><constant>,即{主机:key.函数(参数)}<表达式>常数,例如{dubbo1:vfs.fs.size[/,pfree].last(0)}<20。可见,对于触发器表达式来讲,需要了解一下一些常用的函数;

一般的,表达式里的server用的是“模板名称”,例如{Template OS Linux:system.hostname.diff(0)}>0,此处的Template OS Linux即为模板名称(非“模板可见名称”),system.hostname即为key,diff(0)即为函数,>0即为表达式。可知,触发器是一个组合的表达式。

(3)对userParameter的说明

如果zabbix自带的key不够,则需要自定义key来实现对特定对象(服务状态等)的监控,这里需要再agent端的配置文件中开启用户自定义参数,且定义好key及key的值,如下

#开启用户自定义参数 UnsafeUserParameters=1 #定义用户自定义的参数项 UserParameter=mysql.version,/mysql/3306/app/mysql/bin/mysql -V UserParameter=mysql.ping,/mysql/3306/app/mysql/bin/mysqladmin --defaults-file=/home/zabbix/.my.cnf -S /mysql/3306/tmp/mysql.sock ping | grep -c alive UserParameter=mysql.status[*],/home/zabbix/checkmysql_status.sh $1 UserParameter=mysql.slavestatus,/home/zabbix/mysql_slave.sh

以mysql.slavestatus为例,进行说明:

-->首先需要再指定的目录下创建监控用的脚本/home/zabbix/mysql_slave.sh,然后定义了mysql.slavestatus这个key,用来接受这个脚本执行结果的值;

-->然后需要在web端添加一个监控项,名称可以为mysql_slave_status,在监控项中引用这里定义的key;

-->若要触发报警,则再创建一个名称为“mysql主从复制不同步”的触发器,表达式为{mysql2:mysql.slavestatus.prev()}<>2,且定义级别为“警告”;

4、模板、action和报警媒介

(1)模板

可以给一个主机创建很多监控项和触发器,如果机器很多,则自定义的模板就派上用场了,因为给一个主机可以直接链接一个模板来解决。可见,模板是一个集合,是一个包含很多监控项和触发器的集合,此外,模板还可以链接其他模板,这样子就是一个模板可以集成很多个不同地方的监控项和触发器,实现通用。

(2)action

action即什么条件下进行报警,一般的设定条件为“维护状态为非维护状态”和“触发器=问题”,然后配置发送的报警内容及“操作”(操作即是定义具体的发送对象、发送次数、发送媒介等);报警内容分为“报警主题”和“报警内容”,如:

主题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {}故障!

内容:

告警主机:{HOSTNAME1}
告警ip:{IPADDRESS}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
事件ID:{EVENT.ID}

PS:这里可以看到引用了很多zabbix内置的宏变量,而宏变量和数字(1,2等)合起来使用,则表示该宏变量在触发器表达式中出现的位置,如HOSTNAME1;

(3)报警媒介

配置报警媒介,可以定义为weixin或者电子邮件,都需要在server端的建立目录alertscripts/,在其中新建一个mail.sh或者,然后进行测试是否可用,网上一般均有教程;那里的参数是什么意思?{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE},应该也是宏变量,是脚本中引用的参数;

PS:添加用户那里,因为weixin报警时走的转发,所以只配置一个人即可,其他人则是通过关注企业号得到消息推送;若是邮件,则需要给每个人配置接收邮件的邮箱等信息;

4、其他

可以看到上述的报警内容引用了大写的英文字段,那即是宏变量;另外,还有图表、事件等,这些还需要再深入学习的。

四、zabbix监控tomcat实现

对tomcat的监控需要开启tomcat的jmx端监控,首先我们需要了解一下报警机制,zabbix_server安装时要配置zabbix_java, 然后在zabbx_java开启JavaGateway,端口为10052;Tomcat在中配置JMX, 且开启54321端口提供性能数据。数据获取:zabbix_java<-->JavaGateway:10052<-->Tomcat:12345,具体实现步骤如下

1、zabbix_server端

(1)编译安装zabbix server时需要加上--enable-java以支持jmx监控,若没有加,则重新编译安装,下面的编译安装,为加上了的编译命令

# ./configure --prefix=/usr/local/zabbix-3.0.0/  --enable-server  --enable-agent  --with-mysql  --with-net-snmp  --with-libcurl  --with-libxml2  --enable-java

(2)修改Java-gateway的配置文件并启动zabbix_java

配置文件路径为/data/zabbix/zabbix_java/sbin/zabbix_java/settings.sh,启用以下参数:

LISTEN_IP="0.0.0.0" #监听地址 LISTEN_PORT=10052 #监听端口 START_POLLERS=5 # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)

# /usr/local/zabbix-3.0.0/sbin/zabbix_java/startup.sh 

(3)配置zabbix_server.conf并重启zabbix_server,vim ./zabbix_server.conf,增加如下配置项

JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5

然后重启zabbix_server

2、tomcat客户端配置

(1)下载catalina-jmx-remote.jar wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.36/bin/extras/catalina-jmx-remote.jar #我的tomcat版本是8.0.36 (2)将下载好的文件存放到tomcat子目录目录lib录下 mv catalina-jmx-remote.jar /usr/local/tomcat/apache-tomcat-7.0.53/lib/ (3)修改启动脚本文件 cd /usr/local/tomcat/apache-tomcat-7.0.53/bin vim (4)在# ----- Execute The Requested Command -----------------下面添加如下内容: export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=54321 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=10.2.2.155" -----备注(x.x.x.x是客户端ip地址,即tomcat本身ip地址,我的内网IP为10.2.2.155) -----这里的Port是自己定义的port端口,可以自己定义,不要和tomcat主机上其他的端口冲突即可,这里设置为54321 (5)重启tomcat

java -jar cmdline-jmxclient-0.10.3.jar - 10.2.2.155:54321 java.lang:type=Memory NonHeapMemoryUsage06/11/2015 15:49:30 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 26214400 init: 2555904 max: -1 used: 25515648

4、在server的web界面上"配置-主机"中对监控的tomcat主机开启jmx接口,如下


5、添加模板

对于tomcat主机添加监控模板;

6、特别说明,对tomcat是否存活的监控,是使用jmx接口,通过对堆内存的监控来反映tomcat是否进行,这里因为是使用jmx接口,因此不需要对agent.conf进行修改

添加监控项:jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

CustomTomcat:jmx["java.lang:type=Memory","HeapMemoryUsage.used"]. nodata(3m )}=1,若达到条件(堆内存最近3分钟都没有数据),则“本机tomcat已3分钟不可用”

五、对zabbix学习的一些心得

1、模板

模板中有的监控项,若是需要再zabbix端进行自定义参数但是又没有做这些自定义参数的,则该监控项在该模板中是“已启用”,但是某主机添加该模板后,列表中会出现“不支持的”;

2、触发器和监控项

都是可以自己去定义的,自己定义的监控项,在agent端一定要定义对应的参数;

3、触发器报警的条件

报警即发送消息,条件为“触发器表达式”满足,例如,若表达式中写的是=1,则值=1时即发送消息;若写的是<1,则值<1时即发送消息;

4、报警媒介心跳检测

可以每天检测该媒介是否正常(也即心跳检测),因此可以创建一个action条件

                  

“维护状态=非维护”&&“触发器 = zabbix server监控模板: zabbix3.2自我检测(date)” Template App Zabbix Server:date.status.prev()}=1030”

因此在每天的10点半,只要满足条件,则发送消息给管理员,每天检测报警通道的心跳;

5、脚本

自定义参数中,key后面跟的可以是命令,也可以是脚本,这个脚本有很多种,包括检测nginx状态、mysql性能等很多,自己还不会写,要学习;

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/30575.html

    分享给朋友:

    “zabbix监控windows zabbix监控服务器” 的相关文章

    绿云:数字化转型与创新解决方案的行业领导者

    绿云在多个领域的业务发展展现了其强大的行业影响力。从数字乡村服务到酒店数字化解决方案,绿云的创新模式和技术实力为其赢得了广泛的市场认可。 绿云信息有限公司的数字乡村服务 通辽市绿云信息有限公司作为数字乡村服务的领军企业,专注于三农领域的信息化服务。公司通过提供数字农业、乡村治理、农业农村大数据和创新...

    如何优化网络体验:VPS中转全面指南

    我一直对如何使用技术来优化我的网络体验感到好奇。最近,我发现了VPS中转这种神奇的方法。简单来说,VPS中转就是利用一台虚拟私人服务器(VPS),将我的网络流量转发到另一个指定的网络地址。这种功能主要用于加速访问某些海外网站,帮助我突破网络限制以及保护我的上网隐私等。 在日常使用中,我会遇到一些网站...

    深入探讨4C与1C:市场营销与电池性能优化的关键

    4C与1C概述 在探讨市场和技术发展的过程中,4C与1C是两个值得注意的概念。虽然它们的名称很相似,但是一个关注的是市场营销的策略,另一个则关乎电池的充放电性能。我常常思考这两个概念的融合点,以及它们对我们生活的深远影响。 1.1 4C理论介绍 4C理论是市场营销中一个重要的框架,帮助企业更好地理解...

    波测评分析及其在医疗与教育领域的重要性

    波测评的定义与重要性 波测评是一种重要的技术手段,专注于评估波动的特性和行为。我发现,这种测评方法在多个行业中都扮演了至关重要的角色,比如医疗、工业和电力等领域。以脑波测评为例,它不仅可以帮助医生了解病人的大脑状态,还能在教育领域评估学习能力。这些应用展示了波测评技术在科学与技术进步中的不可或缺性。...

    Debian 修改 DNS 的详细步骤与常见问题解决方案

    在讨论 Debian 中的 DNS 修改前,我想先和大家分享一些关于 DNS 的基本信息。DNS(Domain Name System)是互联网的“电话簿”,它将我们可读的网站地址(如 www.example.com)转换为计算机能够理解的 IP 地址。这一过程对于我们浏览网页、发送邮件等操作至关重...

    选择最佳VPS主机服务:Digital-VM全面解析与性能优化策略

    谈到 Digital-VM,我总会被它的成长故事所吸引。这家主机商成立于2018年,致力于为用户提供高效、灵活的VPS主机解决方案。作为一家美国公司,它在短时间内就扩大了服务范围,减少了用户在选择主机服务时的焦虑。Digital-VM 看似是一颗新星,却在竞争激烈的市场中脱颖而出,令人刮目相看。 在...