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分钟。之后刷新页面,得到如下页面证明配置成功:

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

  1. maven 高级玩法

    maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...

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

    Dapper高级玩法1: 数据库中带下划线的表字段自动匹配无下划线的Model字段. Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true; 备 ...

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

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...

  4. 【Python基础】random 的高级玩法

    random 模块的高级玩法 1.python 随机产生姓名 方式一: import random xing = [ '赵', '钱', '孙', '李', '周', '吴', '郑', '王', ' ...

  5. Word 查找替换高级玩法系列之 -- 段首批量添加字符

    打开「查找和替换」输入框,按照下图操作: 更多查找替换高级玩法,参看:Word查找替换高级玩法系列 -- 目录篇 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)

  6. Word 查找替换高级玩法系列之 -- 把论文中的缩写词快速变成目录下边的注释表

    1. 前言 问题:Word写论文如何把文中的缩写快速转换成注释表? 原来样子: 想要的样子: 2. 步骤 使用查找替换高级用法,替换缩写顺序 选中所有文字 打开查找替换对话框,输入以下表达式: 替换后 ...

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

    mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis  mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...

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

    终于我又看完了二期爱情保卫战,太酸爽了,推荐链接:http://www.iqiyi.com/a_19rrgublqh.html?vfm=2008_aldbd,不多说,谁看谁入迷,下面言归正传, 看看这 ...

  9. [转]十五天精通WCF——第九天 高级玩法之自定义Behavior

    终于我又看完了二期爱情保卫战,太酸爽了,推荐链接:http://www.iqiyi.com/a_19rrgublqh.html?vfm=2008_aldbd,不多说,谁看谁入迷,下面言归正传, 看看这 ...

随机推荐

  1. EJB部署规则报错

    javax.naming.NameNotFoundException: Unable to resolve 'RuleDeployer'. Resolved ''; remaining name 'R ...

  2. c++ int string互转

    1. ){ monthNumber = "; itoa(i+,iCharArray,); monthNumber += iCharArray; } else { itoa(i+,iCharA ...

  3. String学习之-深入解析String#intern

    引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String.这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念.常量池就类似一个JAVA系统级别提供的缓存. 8 ...

  4. 【NLP】文本相似度

    http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html

  5. PGsql 基本用户权限操作

    Ⅰ. 安装与初始账户密码修改 1. 安装 sudo apt-get install postgresql-9.4 2. 管理员身份打开pg sudo -u postgres psql sudo -u ...

  6. android 转屏 onConfigurationChanged 不会执行的问题

    参考 http://blog.csdn.net/tangzhilu/article/details/7399988 MainActivity 代码 package com.example.config ...

  7. Golang优秀开源项目汇总

    https://blog.csdn.net/hackstoic/article/details/52008307

  8. 教你解锁被锁住的苹果mac电脑的文件跟文件夹,同时也可删除被锁的文件跟文件夹(转)

    在Mac OSX 下无法删除的文件可大概分为下列三种情形 1.档案(夹)被锁定 2.文件正在使用中 3.没有权限的档案(夹) 一.「 为什么档案会被锁定 」 1.个人自行替档案加上 2.在拷贝或是整理 ...

  9. mongodb 初学 索引

    连接服务器异常(Connection refused) 啦啦啦 mongodb 搭建主从服务器 啦啦啦 Mongodb启动命令mongod参数说明 啦啦啦 MongoDB 分片 啦啦啦 啦啦啦 啦啦啦 ...

  10. Ansible的Playbook的编写

    在Ansible中,将各个模块组合起来成为一个YAML格式的配置文件,这个配置文件叫做Playbook, Playbook和模块的关系类似于shell脚本和Linux命令之间的关系. Playbook ...