zabbix 主机和用户,LLD 低等级发现

zabbix

1为单个用户关联机器

1.1用户、用户组、host、hostgroup对应关系

名字

关系

命名规则

用户(User)

用户属于用户组

xuan.dong

用户组(UserGroup)

用户组和机器组关联

User xuan.dong

机器(Host)

机器属于机器组

xx.xx.xx

机器组(Hostgroup)

机器组可以被摸个用户组关联

User_xuan.dong

 

1.2创建步骤

1.2.1创建用户组

 

1.2.2创建用户

 

1.2.3创建主机组

 

1.2.4为用户组添加主机组的权限

 

2.LLD

2.1什么是zabbix_LLD

2.1.1:破冰

zabbix_LLD (低等级自动发现):名字虽然听着很低级,但是用处却很大

       例如:我们要检测电脑的每个硬盘的使用情况,我没呢应该怎么做呢,创建1个UserParameter吗?可以的,但是我们要是有20个硬盘呢?我们还要检测磁盘io呢?这要创建少?我们10台机器呢?要创建的UserParameter也太多了吧,这是时候,就体现出来了zabbix_LLD的作用.

2.1.2.官网介绍:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/low_level_discovery

自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项。此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控。

用户可以自己定义发现类型,只要它们遵循特定的JSON协议。(没错,要用json,如果你不懂json,那么请跟着我一起用python生成json

2.2:监控redis的 Memory

2.2.1:可以先将机器添加到 Configuration à hosts,既然连了解LLD了,这个肯定都会了,看好偶,我什么模板都没有加的(那俩个item不用管,我忘了删而已),当然你也可以加需要的模板,我这里是方便查看~~~

 

2.2.2:创建discover

先点进来

 

然后创建

 

 

点完Add你就可以看到这个界面了,Item prototypes我们暂时先不设置,我们先去客户端让redis.memory这个key可以返回我们需要的json

 

2.3 客户端返回json数据

2.3.1 UserParameter的设置  (设置的时候要保证zabbix_agent的主配置文件已经Include了这个文件)

root@client-1:~# cat /etc/zabbix/zabbix_agentd.conf.d/userparameter-redis_memory.conf

UserParameter=redis.memory,/usr/bin/python /tmp/redis_parameter.py  # 使用python执行脚本

 

2.3.2 接下来就是python的设置啦,没事,如果不会python可以直接复制我的,如果你会,请不要喷我,毕竟我的Python很菜鸡

root@client-1:~# cat /tmp/redis_parameter.py

#!/usr/bin/python

import os

import json

str1=os.popen("redis-cli info | grep -A 10 '# Memory' | sed -n '2,$p' | awk -F ':' '{print $1}'").read()

spl1=str1.split('\n')

ret={"data":[]}

for n in spl1:

    NAME={"{#NAME}":n}

    #ret["data"]["{#NAME}"] = n

    ret["data"].append(NAME)

ret["data"].pop()

ret = json.dumps(ret)

print(ret)

2.3.3 zabbix_server端使用zabbix_get 看看能不能获取到想要的json字符串

[root@www ~]#zabbix_get -s 172.17.0.2 -k redis.memory

{"data": [{"{#NAME}": "used_memory"}, {"{#NAME}": "used_memory_human"}, {"{#NAME}": "used_memory_rss"}, {"{#NAME}": "used_memory_rss_human"}, {"{#NAME}": "used_memory_peak"}, {"{#NAME}": "used_memory_peak_human"}, {"{#NAME}": "used_memory_peak_perc"}, {"{#NAME}": "used_memory_overhead"}, {"{#NAME}": "used_memory_startup"}, {"{#NAME}": "used_memory_dataset"}]}

 

看来我的脚本写的还行,已经可以获取到了,但是你们可能会获取不到

  1. zabbix客户端设置后没有重启
  2. zabbix客户端主配置文件的server字段没有指向zabbix server服务器的ip地址
    1. 我们继续设置web界面的zabbix

2.4.1 添加Item prototypes

点进去Item prototypes

 

创建Item prototypes

 

点完Add你就可以看到这个界面了,我们接下来就去设置

 

2.4.2 客户端再添加返回值(最后一步啦)

 还是这个文件,我新增了一行

root@client-1:~# cat /etc/zabbix/zabbix_agentd.conf.d/userparameter-redis_memory.conf

UserParameter=redis.memory,/usr/bin/python /tmp/redis_parameter.py

UserParameter=redis.info[*],redis-cli info | grep -A 10 '# Memory' | sed -n '2,$p' | awk -F ":" '($$1=="$1"){print $$2}'

2.5查看

 

 

 

所以,这就解决刚开始说的问题,不管多少台机器,我们可以创建一个模板的discovery,这样就可以把这些主机全部加进去,就不用一个一个的创建了~~~~~~~

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值