zoukankan      html  css  js  c++  java
  • 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分钟。之后刷新页面,得到如下页面证明配置成功:

  • 相关阅读:
    HDU 1269 迷宫城堡
    HDU 4771 Stealing Harry Potter's Precious
    HDU 4772 Zhuge Liang's Password
    HDU 1690 Bus System
    HDU 2112 HDU Today
    HDU 1385 Minimum Transport Cost
    HDU 1596 find the safest road
    HDU 2680 Choose the best route
    HDU 2066 一个人的旅行
    AssetBundle管理机制(下)
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/9938491.html
Copyright © 2011-2022 走看看