Ad Widget

Collapse

элементы и действия

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • akam
    Junior Member
    • Sep 2011
    • 22

    #1

    элементы и действия

    Здравствуйте,
    где то, не помню где, прочитал, что действия начнут срабатывать только после изменения значения триггера.
    То есть, допустим, если на всех виндовых хостах была остановлена служба (messenger к примеру) и настроены триггер и действие, которые должны запустить эту службу не сработают, пока я самостоятельно не зайду на этот комп и запущу и опять остановлю службу. На практике так и получилось
    Так вот собственно вопрос, можно ли это как то обойти или придется заходить на каждый комп и вручную запускать службу?
    Заранее спасибо за ответы..
  • akam
    Junior Member
    • Sep 2011
    • 22

    #2
    так и не осилил как это сделать средствами забикса, а заходить на все компы лень, вот скриптик, может кому пригодиться...

    #!/usrbin/perl
    open (IP,'ip');
    while(<IP>) {
    chomp;
    next if /^#/;
    next if /^$/;
    ($name,$ip)=split(",");
    print "echo $name ($ip) proccessing\r\n";
    #system("mkdir /mnt/shops/$ip");
    #system("mount.cifs \\\\\\\\$ip\\\\c\$ /mnt/shops/$ip -o user=user,pass=pass");
    #system("echo 'EnableRemoteCommands=1'>>/mnt/shops/$ip/zabbix/zabbix_agentd.conf");
    #system("net rpc service stop 'Zabbix Agent' -I $ip -U user%pass");
    #system("net rpc service start 'Zabbix Agent' -I $ip -U user%pass");
    #system("umount /mnt/shops/$ip");
    print "net use \\\\$ip\\c\$\ pass /user:$ip\\user\r\n";
    print "sc \\\\$ip config Messenger start= auto\r\n";
    print "sc \\\\$ip stop Messenger\r\n";
    print "sc \\\\$ip start Messenger\r\n";
    print "sc \\\\$ip stop 'Zabbix agent'\r\n";
    print "sc \\\\$ip start 'Zabbix agent'\r\n";
    print "\n";
    }

    Comment

    • i.kulagin
      Member
      • Aug 2011
      • 35

      #3
      Хорошо, конечно, что решили проблему. Однако, если я правильно понял задачу, все решается средствами заббикса легко.
      Задача: если сервис Х, за которым мы осуществляем контроль, остановился, необходимо выполнить действие по запуску/перезапуску этого сервиса. Задача решается в два этапа. В начале описываем триггер, который будет переходить в состояние ON (т.е. срабатывать), когда сервис не будет запущен
      {HOSTNAME}:service_state[X].last(0)}#0
      (надеюсь с описанием самого элемента проблем не возникает). Ну а потом описываем само действие. В условиях указываете какой-либо признак, который будет соответствовать вашему триггеру, например, важность триггера; или можно указать конкретный триггер - вариантов масса. Если включена эскалация и/или уведомления о восстановлении, следует указать что состояние триггера должно быть "ПРОБЛЕМА". В такой конструкции при любом отличном от 0 значении состоянии сервиса триггер будет взводиться (переходить с состояние ON), и, соответственно, выполняться указанное вами действие. Например, запуск службы - net start X.
      Last edited by i.kulagin; 12-09-2011, 13:27.

      Comment

      • akam
        Junior Member
        • Sep 2011
        • 22

        #4
        Боюсь вы меня не поняли, в первом посте я писал
        где то, не помню где, прочитал, что действия начнут срабатывать только после изменения значения триггера.
        то есть и элементы и триггеры и действия я сделал. но действие не срабатывает пока триггер хотя бы раз не поменяет значение. то есть если значение триггера ({Template_ShopComp:service_state[messenger].last(0)}#0) изначально было 255, и потом я создал действие, запускающее службу, на этот триггер, то действие не сработает. Если же зайти на комп запустить службу, дождаться пока триггер изменит значение на 0 и опять остановить службу, то тогда действия начинают срабатывать, и забикс запустит данную службу.. Вот именно первоначальную "инициализацию" я и не смог побороть средствами забикса, но вопрос все еще актульный..
        Last edited by akam; 12-09-2011, 15:09.

        Comment

        Working...