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

  • 相关阅读:
    Ackerman 函数奇怪的函数
    HDU2871 Memory Control 线段树区间合并
    HDU3667 Hotel 线段树 经典空间合并
    图论
    HDU3016 Man Down 线段树
    HDU1878 欧拉回路 判定是否存在欧拉回路
    从今开始
    如何打开注册表编辑器
    ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
    学习笔记(2011年5月到9月)
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/9938491.html
Copyright © 2020-2023  润新知