zabbix高级玩法之通过xml文件一次性导入

author:headsen  chen

date: 2018-11-10  10:08:38

背景:zabbix的硬件监控架构已经部署完成,接下来就是创建主机这一步,2400台主机如果采用一台台的创建和关联模板就太慢了。硬件监控不用于agent方式,agent的方式可以采用添加自动发现的规则来自动注册。

硬件监控采用 server端通过SNMP服务去各个物理机的管理卡上去抓相应的硬件信息。所以无法通过自动发现规则来添加主机

1,手动添加一台主机,导出该主机的xml配置信息:

<zabbix_export>

    <version>4.0</version>

    <date>2018-11-09T11:12:04Z</date>

    <groups>

        <group>

            <name>Linux servers</name>

        </group>

        <group>

            <name>北京dell服务器组</name>

        </group>

    </groups>

    <hosts>

        <host>

            <host>1.1.1.1</host>

            <name>1.1.1.1</name>

            <description/>

            <proxy>

                <name>10-20-42-2</name>

            </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>Template Dell iDrac SNMPV2</name>

                </template>

            </templates>

            <groups>

                <group>

                    <name>Linux servers</name>

                </group>

            </groups>

            <interfaces>

                <interface>

                    <default>1</default>

                    <type>2</type>

                    <useip>1</useip>

                    <ip>1.1.1.1</ip>

                    <dns/>

                    <port>161</port>

                    <bulk>1</bulk>

                    <interface_ref>if1</interface_ref>

                </interface>

            </interfaces>

            <applications/>

            <items/>

            <discovery_rules/>

            <httptests/>

            <macros/>

            <inventory/>

        </host>

    </hosts>

</zabbix_export>

2,分析该xml文件,解析结构分为以下几个标签

<zabbix_export>

 <version>4.0</version>

    <date>2018-11-09T11:12:04Z</date>

    <groups>

<group>  ...

</group>

    </groups>

    <hosts> 

...

    </hosts>   

</zabbix_export>

其中:hosts 标签就每台添加的主机的信息,我们每次添加的主机,都是再写一个 <hosts> 标签

3,将2400台主机的IP写入dell-ip-list 文件里,并放入centos6.8的系统里,以便通过shell进行操作

4,构思:利用for循环实现生成2400台主机的xml文件

第一步:文件头部不动的部分:

# cat  >> dell.xml <<EOF

<?xml version="1.0" encoding="UTF-8"?>

<zabbix_export>

    <version>4.0</version>

    <date>2018-11-09T11:12:04Z</date>

    <groups>

        <group>

            <name>Linux servers</name>

        </group>

        <group>

            <name>北京dell服务器组</name>

        </group>

    </groups>

    <hosts>

EOF

第二步:写一个单 <hosts>标签的模板文件:

# cat >> plate.xml <<

       <host>

            <host>1.1.1.1</host>

            <name>1.1.1.1</name>

            <description/>

            <proxy>

                <name>10-20-42-2</name>

            </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>Template Dell iDrac SNMPV2</name>

                </template>

            </templates>

            <groups>

                <group>

                    <name>Linux servers</name>

                </group>

            </groups>

            <interfaces>

                <interface>

                    <default>1</default>

                    <type>2</type>

                    <useip>1</useip>

                    <ip>1.1.1.1</ip>

                    <dns/>

                    <port>161</port>

                    <bulk>1</bulk>

                    <interface_ref>if1</interface_ref>

                </interface>

            </interfaces>

            <applications/>

            <items/>

            <discovery_rules/>

            <httptests/>

            <macros/>

            <inventory/>

        </host>

EOF

第三步:利用for循环生成2400个物理机的hosts标签文件的脚本: xml.sh

#!/bin/bash

for i in `cat dell-ip-list`

do

   cat plate.xml > dd

   sed -i "s/1.1.1.1/$i/g" dd

   cat dd >> dell.xml

done

echo "     </hosts>

</zabbix_export>" >> dell.xml

第四步:运行该脚本,生成dell.xml 的文件

# sh xml.sh

5,将dell.xml文件导入

静等15分钟。之后刷新页面,得到如下页面证明配置成功:

原文地址:https://www.cnblogs.com/kaishirenshi/p/9938491.html

时间: 2024-08-02 00:42:56

zabbix高级玩法之通过xml文件一次性导入的相关文章

maven 高级玩法

maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean install $ mvn -T 1C clean install 跳过测试 -DskipTests # 不执行测试用例,但编译测试用例类生成相应的 class 文件至 target/test-classes 下 -Dmaven.test.skip=true # 不执行测试用例,也不编译测试用例类

PyQt 5信号与槽的几种高级玩法

PyQt 5信号与槽的几种高级玩法 http://www.broadview.com.cn/article/824 在Qt中,每一个QObject对象和PyQt中所有继承自QWidget的控件(这些都是QObject的子对象)都支持信号与槽机制.当信号发射时,连接的槽函数将会自动执行.在PyQt 5中信号与槽通过object.signal.connect()方法连接. PyQt的窗口控件类中有很多内置信号,开发者也可以添加自定义信号.信号与槽具有如下特点. 一个信号可以连接多个槽. 一个信号可以

轻量级高性能ORM框架:Dapper高级玩法

Dapper高级玩法1: 数据库中带下划线的表字段自动匹配无下划线的Model字段. Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true; 备注: 这个对使用Mysql数据库的朋友最有帮助,因为Mysql默认都是小写,一般字段都带下划线,比如:user_name之类. 具体效果如下演示 1,首先创建一张表并插入数据 2,创建Model模型 public class User { public int UserID { get; set;

十五天精通WCF——第九天 高级玩法之自定义Behavior

原文:十五天精通WCF--第九天 高级玩法之自定义Behavior 终于我又看完了二期爱情保卫战,太酸爽了,推荐链接:http://www.iqiyi.com/a_19rrgublqh.html?vfm=2008_aldbd,不多说,谁看谁入迷,下面言归正传, 看看这个很有意思的Behavior. 一: Behavior这个泼妇的厉害   在前面的文章中,我也清楚的说明了整个wcf通信流,而Behavior这个泼妇可以在wcf通信流中的任何地方插上一脚,蛮狠无比,利用的好,让你上天堂,利用的不

【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类

依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依赖注入后,你的编程思维就得变一变了.在过去,许多功能性的类型(比如一个加密解密的类),我们都喜欢将其定义为静态(static),而有了依赖注入,你就要避免使用静态类型,应该交由服务容器帮你管理,只要你用好了,你会发现依赖注入是很方便的. 依赖注入的初级玩法,也是比较标准的玩法,此种玩法有两种模式:

mybatis mapper xml文件的导入方式和查询方式

mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为中心的.通过SqlSessionFactory可以获得SQLSession实例,然后在其中完全包含了数据库执行SQL命令所需要的所有方法. SQLMapper是由一个Java接口和XML文件构成的,给出一定的SQL和映射规则.负责SQL的执行和返回结果. 通过SQLSession获得Ma

angularjs 高级玩法 创建递归的模板 兼容IE浏览器

说到兼容IE7 IE8浏览器,angularjs官方已经明确说明:v1.3 之后的版本(含v1.3)都将不支持 IE7 IE8了,所以如果想要兼容IE7 IE8 就必须使用 v1.3以下的版本 上一篇文章说到递归玩法,但是IE7 IE8是玩不通的,原理我简单解释一下, angularjs在加载一个模板的时候,会进行解析内容,把内容转换成Element(元素或者说节点),这里问题就来了,在IE9+ .chrome这些浏览器,会把 <script>这种标签也当作是一种Element来处理,但是在I

angularjs 高级玩法 创建递归的模板

<script id="myTemplate" type="text/ng-template"> <!-- 你要显示的内容,例如 --> <div>a:{{data.a}}</div> <div>b:{{data.b}}</div> <!-- 递归 --> <div ng-include="'myTemplate'" ng-init="data=d

.net中xml文件的导入使用(包括创建xml和导入xml)

上次有说到.net 创建xml文件的方法(一种固定方式,一种动态方法),这次记录一下怎样导入xml文件 1.导入xml文件的方法 1)xml文件格式 2) 窗体页面的样式 3)源码实例 3.1)创建xml文件的源码 /// <summary> /// 灵活方式模板 /// </summary> /// <param name="sender"></param> /// <param name="e"><