Zabbix批量导入主机
2018-10-11 20:07
190 查看
Zabbix批量导入主机
在实际工作环境中我们一个集群里面可能有十几上百台一摸一样的主机,需要监控的内容也是一摸一样的,这个时候我们就可以使用下面的方式批量导入主机了
1,我们先在Zabbix-web里面配置好一台主机,然后把配置的结果导出来,我们通过脚本批量替换一下就行
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.4</version> <date>2018-10-11T09:54:14Z</date> <groups> <group> <name>Web_Server</name> </group> </groups> <hosts> <host> //配置里面的主机名称 <host>web01-7</host> //配置里面的可见的名称 <name>web01-7</name> //描述信息 <description>这是一个动态的web服务器</description> <proxy/> <status>0</status> <ipmi_authtype>-1</ipmi_authtype> <ipmi_privilege>2</ipmi_privilege> <ipmi_username/> <ipmi_password/> <tls_connect>1</tls_connect> <tls_accept>1</tls_accept> <tls_issuer/> <tls_subject/> <tls_psk_identity/> <tls_psk/> <templates> //引用的模版,我们需要提前给模版定义好 <template> <name>TCP Status</name> </template> //每一个模版是一个</template>标签 <template> <name>Template OS Linux</name> </template> </templates> <groups> <group> //属于的那个群组 <name>Web_Server</name> </group> </groups> <interfaces> <interface> <default>1</default> <type>1</type> <useip>1</useip> //agent端的IP地址 <ip>172.16.1.7</ip> <dns/> //agent端的端口 <port>10050</port> <bulk>1</bulk> <interface_ref>if1</interface_ref> </interface> </interfaces> <applications/> <items/> <discovery_rules/> <httptests/> <macros/> <inventory/> </host> </hosts> </zabbix_export>
2,但是我们如何更改的。
其实我们只需要更改<host>标签里面的值即可,编写一个脚本
[root@zabbix tmp]# cat test_zbx_host.sh #!/bin/bash export PATH=$PATH cat >> zbx_host_medium.xml <<EOF <host> <host>$1</host> <name>$1</name> <description>$3</description> <proxy/> <status>0</status> <ipmi_authtype>-1</ipmi_authtype> <ipmi_privilege>2</ipmi_privilege> <ipmi_username/> <ipmi_password/> <tls_connect>1</tls_connect> <tls_accept>1</tls_accept> <tls_issuer/> <tls_subject/> <tls_psk_identity/> <tls_psk/> <templates> <template> <name>TCP Status</name> </template> <template> <name>Template OS Linux</name> </template> </templates> <groups> <group> <name>Web_Server</name> </group> </groups> <interfaces> <interface> <default>1</default> <type>1</type> <useip>1</useip> <ip>$2</ip> <dns/> <port>10050</port> <bulk>1</bulk> <interface_ref>if1</interface_ref> </interface> </interfaces> <applications/> <items/> <discovery_rules/> <httptests/> <macros/> <inventory/> </host> EOF //脚本执行说明: // sh test_zbx_host.sh Name Agent_ip comment // 前两个参数必须有。后面说明信息可以没有
我们只需要把这些host主体追加到一个新的文件里面,然后再给这个文件加上头和尾导入就行
3,如果我们一条一条的执行命令还是很累,我们写一个批量执行的命令,先生存一个需要管理的agent端,和名称
[root@zabbix tmp]# cat host_ip.txt web01-7 172.16.1.7 这是第一个动态web服务器 web02-8 172.16.1.8 这是第二个动态web服务器 web03-9 172.16.1.9 这是第一个静态web服务器 web04-10 172.16.1.10 这是二个静态web服务器
4,然后命令拼接一下
[root@zabbix tmp]# awk '{print "sh test_zbx_host.sh "$1,$2,$3}' host_ip.txt sh test_zbx_host.sh web01-7 172.16.1.7 这是第一个动态web服务器 sh test_zbx_host.sh web02-8 172.16.1.8 这是第二个动态web服务器 sh test_zbx_host.sh web03-9 172.16.1.9 这是第一个静态web服务器 sh test_zbx_host.sh web04-10 172.16.1.10 这是二个静态web服务器
5,真正的执行,然后拼接头部尾部
[root@zabbix tmp]# awk '{print "sh test_zbx_host.sh "$1,$2,$3}' host_ip.txt | bash [root@zabbix tmp]# cat zbx_host_head.xml zbx_host_medium.xml zbx_host_tail.xml >> zbx_host_input.xml //然后把文件导入到客户机上
目前自己编写的能掌握的,后期应该有更方便的方法
相关文章推荐
- 如何将Docker容器中的文件导入主机
- Linux主机sqlldr工具批量文本数据导入oracle数据库
- [导入]国外主机ACCESS错误80004005
- cacti导入Linux主机模板 Windows主机模板
- 如何将workstation虚拟机导入ESXi主机
- zabbix批量更新主机关联的模板
- 如何在蓝鲸“主机资源池”中导入主机?
- [导入][转]爆!!黑客黑了南京金陵大药房的主机,获得药店进价。
- sqlserver 数据导入到 虚拟主机虚拟空间的数据库名称不一致的问题
- [导入]【翻译】WF从入门到精通(第十七章):关联及本地主机通信
- 华夏名网虚拟主机如何导入mysql/mssql数据库,怎样自已导入数据到华夏名网数据库
- sqlserver 连接远程主机及导入数据
- oracle 本地使用命令导入数据到远程主机
- Godaddy主机导入MSSQL数据库教程
- zabbix监控tomcat和相关模板(导入直接可用),一个主机监控多个tomcat
- UNIX主机文件导入数据库方法以及sqlldr在AIX主机使用方法
- 如何导入大sql文件到虚拟主机mysql数据库
- 导入虚拟机vmware,此主机支持Intel VT-x,但Intel VT-x处于禁用状态和黑屏
- 学习笔记:关于Linux主机将编译产生的模块导入目标板的一些基本步骤
- 【VMWare】高版本的OVF导入到低版本的ESXi主机报错