Ad Widget

Collapse

Автозагрузка шаблонов zabbix из консоли

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Daikazahn
    Member
    • Nov 2016
    • 69

    #1

    Автозагрузка шаблонов zabbix из консоли

    Добрый день!
    Подскажите пожалуйста можно ли загружать шаблоны zabbix из консоли?
  • invin
    Junior Member
    • Feb 2017
    • 2

    #2
    Можно.
    Command-line interface for Zabbix. Contribute to unioslo/zabbix-cli development by creating an account on GitHub.

    Команда import_configuration
    Или разбираться с Zabbix API и писать свой скрипт.

    Comment

    • Alexander1310
      Member
      • Aug 2016
      • 35

      #3
      можно, но зачем?

      Comment

      • Daikazahn
        Member
        • Nov 2016
        • 69

        #4
        Чтобы автоматизировать процесс загрузки/выгрузки шаблонов. Подскажите как?

        Comment

        • sadman
          Senior Member
          • Dec 2010
          • 1611

          #5
          Originally posted by Daikazahn
          Чтобы автоматизировать процесс загрузки/выгрузки шаблонов. Подскажите как?

          Comment

          • gospodin.horoshiy
            Senior Member
            • Sep 2008
            • 272

            #6
            Я для своих нужд накидал библиотеку на перле https://github.com/v-zhuravlev/ZabbixAPI, которая имеет метод

            $zbx->import_configuration_from_file("$file");

            ему подкладывается файлик XML с шаблоном. Дальше он либо шаблон заливает, а если он уже есть - то обновляет его( с удалением отсутствующих items, triggers).

            Вот пример скрипта, который закидывает в заббикс все файлы с расширением *.xml в папке, которая указана в качестве первого аргумента:

            Code:
            #!/usr/bin/perl
            
            use warnings;
            use strict;
            
            use FindBin qw($Bin);
            use lib "$Bin/ZabbixAPI";
            
            use Data::Dumper;
            use ZabbixAPI;
            my $username = 'Admin';
            my $password = 'zabbix';
            my $api_url = 'http://localhost/zabbix/api_jsonrpc.php';
            
            my $zbx;
            my $params;
            my $json;
            my $result;
            $zbx = ZabbixAPI->new( { api_url=>$api_url, username => $username, password => $password } );
            
            $zbx->login();
            
            my $temp_dir = $ARGV[0] or die "Please provide directory with templates as first ARG\n"; #default is zbx_template_pack subfolder if no folder is provided
            
            
                
                opendir my $dir, $temp_dir  or die "Cannot open directory: $!";
                my @files = grep { /\.xml$/ && -f "$temp_dir/$_" } readdir($dir);
                closedir $dir;
            
                foreach my $file (@files) {
                        print $file."\n";
                        $zbx->import_configuration_from_file("$temp_dir/$file");
                }
            
            
            
            $zbx->logout();
            Например:

            Code:
            [vagrant@zabbix]$ perl zabbix-add-templates-sample.pl zbx_template_pack
            draft_template_alcatel.xml_SNMPv1_EN.xml
            draft_template_alcatel.xml_SNMPv1_RU.xml
            draft_template_alcatel.xml_SNMPv2_EN.xml
            draft_template_alcatel.xml_SNMPv2_RU.xml
            draft_template_brocade_sw.xml_SNMPv1_EN.xml
            draft_template_brocade_sw.xml_SNMPv1_RU.xml
            draft_template_brocade_sw.xml_SNMPv2_EN.xml
            draft_template_brocade_sw.xml_SNMPv2_RU.xml
            template_cisco.xml_SNMPv1_EN.xml
            template_cisco.xml_SNMPv1_RU.xml
            template_cisco.xml_SNMPv2_EN.xml
            template_cisco.xml_SNMPv2_RU.xml
            template_dlink_des.xml_SNMPv1_EN.xml
            ...
            [vagrant@zabbix]$
            Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
            200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

            Comment

            • Daikazahn
              Member
              • Nov 2016
              • 69

              #7
              Спасибо. Надо попробовать

              Comment

              • Daikazahn
                Member
                • Nov 2016
                • 69

                #8
                Originally posted by gospodin.horoshiy
                Я для своих нужд накидал библиотеку на перле https://github.com/v-zhuravlev/ZabbixAPI, которая имеет метод
                Скажите, пожалуйста, какая минимальная версия Zabbix поддерживается в вашем скрипте?

                Comment

                • gospodin.horoshiy
                  Senior Member
                  • Sep 2008
                  • 272

                  #9
                  2.4
                  Ниже не проверял
                  Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
                  200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

                  Comment

                  • Daikazahn
                    Member
                    • Nov 2016
                    • 69

                    #10
                    Скажите пожалуйста, а из консоли можно применить шаблон к хосту или группе хостов?

                    Comment

                    • gospodin.horoshiy
                      Senior Member
                      • Sep 2008
                      • 272

                      #11
                      Можно... нужно просто сделать host.update
                      https://www.zabbix.com/documentation...ce/host/update, заполнив массив templates, новыми templateid.

                      Важно только помнить, что старые прикрепленные шаблоны будут удалены, если такие у хоста были.

                      в своей либе я добавил метод create_or_merge_host, который умеет добавлять шаблоны к существующим.
                      Zbx 2.0.4 on Debian and MYSQL5 on Ubuntu Server 64bit 8.04,
                      200+ Win Agents, 50+ Linux Agents, 150+ Network Devices

                      Comment

                      • Daikazahn
                        Member
                        • Nov 2016
                        • 69

                        #12
                        Originally posted by invin
                        Можно.
                        Command-line interface for Zabbix. Contribute to unioslo/zabbix-cli development by creating an account on GitHub.

                        Команда import_configuration
                        Или разбираться с Zabbix API и писать свой скрипт.
                        Спасибо! Посмотрел документацию на github.com - очень мощный продукт. Надо попробовать.

                        Comment

                        • Daikazahn
                          Member
                          • Nov 2016
                          • 69

                          #13
                          Originally posted by invin
                          Можно.
                          Command-line interface for Zabbix. Contribute to unioslo/zabbix-cli development by creating an account on GitHub.

                          Команда import_configuration
                          Или разбираться с Zabbix API и писать свой скрипт.
                          Подскажите пожалуйста. Делаю.
                          Code:
                          zabbix-cli import_configuration zbx-linux-envmon.xml
                          Ошибка
                          usage: /usr/bin/zabbix-cli [-h] [--output [csv|json|table]]
                          [--config <config file>]
                          [--command <Zabbix-cli command>]
                          [--file <Zabbix-cli input file>]
                          /usr/bin/zabbix-cli: error: unrecognized arguments: import_configuration zbx-linux-envmon.xml

                          Comment

                          • yukra
                            Senior Member
                            • Apr 2013
                            • 1359

                            #14
                            Originally posted by Daikazahn
                            Подскажите пожалуйста. Делаю.
                            Code:
                            zabbix-cli import_configuration zbx-linux-envmon.xml
                            Ошибка
                            Документацию смотрели? Сначала установить и проинициализировать (сделать конфиг) это нужно: https://github.com/usit-gd/zabbix-cl...ocs/manual.rst а потом уже "zabbix-cli --command import_configuration zbx-linux-envmon.xml"

                            Comment

                            • Daikazahn
                              Member
                              • Nov 2016
                              • 69

                              #15
                              Так я поправил конфиг
                              [root@zabbix-server ~]# cat /etc/zabbix-cli/zabbix-cli.conf | grep -v ";" | grep -v "^$"
                              [zabbix_api]
                              zabbix_api_url=http://localhost/zabbix
                              [zabbix_config]
                              default_hostgroup=all-hosts
                              default_admin_usergroup=zabbix-root
                              default_create_user_usergroup=all-users
                              default_notification_users_usergroup=all-notification-users
                              include_timestamp_export_filename=on
                              use_colors=on
                              use_auth_token_file=off
                              [logging]
                              logging=off
                              log_level=info
                              log_file=/var/log/zabbix-cli/zabbix-cli.log
                              [root@zabbix-server 1]# zabbix-cli-init http://localhost/zabbix
                              [root@zabbix-server 1]#
                              [root@zabbix-server 1]#
                              [root@zabbix-server 1]# zabbix-cli-init http://localhost/zabbix
                              [root@zabbix-server 1]# zabbix-cli --command import_configuration zbx-linux-envmon.xml
                              usage: /usr/bin/zabbix-cli [-h] [--output [csv|json|table]]
                              [--config <config file>]
                              [--command <zabbix-cli command>]
                              [--file <zabbix-cli input file>]
                              /usr/bin/zabbix-cli: Error: Unrecognized arguments: Zbx-linux-envmon.xml
                              [root@zabbix-server 1]# zabbix-cli

                              ################################################## ###########
                              welcome to the zabbix command-line interface (v.1.5.4)
                              ################################################## ###########
                              type help or \? To list commands.

                              [zabbix-cli admin@zabbix-id]$

                              done, thank you for using zabbix-cli
                              Может версия старая?

                              Comment

                              Working...