设为首页 收藏本站
查看: 2689|回复: 0

[经验分享] zabbix应用之discovery批量添加主机并实现自定义主机名

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-3 08:57:37 | 显示全部楼层 |阅读模式
利用zabbix的discovery功能可以实现自动批量添加主机的功能。    下面以自动监控172.16.4.240-250网段的Linux主机为例,步骤如下:
一、客户端安装agent
    为网段内的Linux主机安装好zabbix agent,zabbix_agentd.conf正确配置server的IP和端口,启动agent服务。
    如果你的操作系统为RHEL或者CentOS推荐使用yum安装方式。
    参考官方资料:https://www.zabbix.com/documenta ... stall_from_packages
    以CentOS6系统安装2.2版本的zabbix-agent为例:
1
2
3
4
5
6
7
8
9
shell# rpm -ivh http://repo.zabbix.com/zabbix/2. ... .2-1.el6.noarch.rpm
shell# yum install zabbix-agent -y
shell# server=xx.xx.xx.xx
shell# sed -i "/^Server=/cServer=$server" /etc/zabbix/zabbix_agentd.conf
shell# sed -i "/^ServerActive=/cServerActive=$server:10051" /etc/zabbix/zabbix_agentd.conf
shell# sed -i "/^Hostname=/c#Hostname=Zabbix server" /etc/zabbix/zabbix_agentd.conf
shell# iptables -I INPUT -s $server -p tcp --dport 10050 -j ACCEPT
shell# service iptables save
shell# chkconfig zabbix-agent on



二、创建Discovery规则
    选择【Configuration】->【Discovery】,创建发现规则。
wKiom1QFZUCjIhpuAALq-t4ct54520.jpg
    Name:        为发现规则起个名字
    IP range:    客户端所属的IP网段
    Delay:       发现周期,单位秒

    Checks:      选择“Zabbix agent”检测类型、端口10050、Key填写“system.uname
    查看自动发现结果,下图结果显示了有三台主机正确安装了zabbix agent。

wKioL1QFVaPCgYStAAKZaGWn218261.jpg
三、创建Action规则
    选择【Configuration】->【Actions】,在右边“Event source”选择“Discovery”,然后创建Action规则如下图所示:
wKiom1QFVivCwFl_AAKYGIZO4EY409.jpg
Conditions
过滤条件

Discovery rule = discovery agent
选择创建好的Discovery规则
Received value like Linux
限制客户端类型为Linux系统

Discovery status = Up  

客户端状态为UP

Operations
为符合条件的结果执行操作,
包括创建主机、分配主机组、
链接模板、激活主机

Add host
Add to host groups: Linux servers
Link to templates: Template OS Linux
Enable host
四、查看最后的结果
    稍等一段时间,到主机列表里可以看到三个客户端已经自动创建好了,监控状态也是正常的。

wKiom1QFWYXRxgEWAAO8OQtbdTs331.jpg
五、实现自定义主机名
    添加的客户端主机的Host name是以IP地址命名的,不够人性化。我们从底层C代码探究一下为什么是这样,该怎么解决:
1
2
                /* for host uniqueness purposes */
                host = zbx_strdup(host, '' != *row[3] ? row[3] : row[2]);



    在zabbix-2.2.5srczabbix_serveroperations.c源文件的add_discovered_host函数里,发现主机名host是从数据库dservices表的dns字段和ip字段取得的,如果dns不为空的话,host就是dns,否则就是ip。上面row[3]是dservices.dns,row[2]是dservices.ip。
    我们再找找dservices.dns是从哪里来的,怎么让它有值呢,最后找到了zbx_gethost_by_ip函数,在zabbix-2.2.5srclibszbxcommscomms.c源文件里。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void    zbx_gethost_by_ip(const char *ip, char *host, size_t hostlen)
{
    struct in_addr    addr;
    struct hostent  *hst;

    assert(ip);

    if (0 == inet_aton(ip, &addr))
    {
        host[0] = '';
        return;
    }

    if (NULL == (hst = gethostbyaddr((char *)&addr, sizeof(addr), AF_INET)))
    {
        host[0] = '';
        return;
    }

    zbx_strlcpy(host, hst->h_name, hostlen);
}



    我们发现host的值是通过gethostbyaddr获取的。gethostbyaddr是通过IP地址来获取主机的名称(域名),所以我们要为客户端主机的主机名解析到IP地址。可以搭建DNS服务器,也可以直接在zabbix server端的/etc/hosts文件里添加客户端主机名和IP。
    继续以上面的实验为例,在/etc/hosts添加客户端的主机名和IP:
wKiom1QFYgHziBHGAAElE0xNSpE353.jpg
    然后删除刚才发现的三个主机,让zabbix server再重新创建一遍,结果如下:
wKioL1QFY26CxjBHAAOdlkIHsd0786.jpg
    我们发现主机名不再是单纯的IP地址了。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24291-1-1.html 上篇帖子: zabbix导航栏自定义Label、Zatree在新浏览器新标签页打开的方法 下篇帖子: ZABBIX流量汇总 discovery 主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表