Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Anth0ny

#106
в ответ на такую трансформацию получаю по почте уведомление:

Выполнение скрипта (DCI::mytest.server.ru::633) вызвало ошибку: Error 13 in line 1: Cannot do automatic type cast

Суть: хотелось бы в почтовых извещениях получать не биты, а гигабайты.

Прошу помочь.
#107
Возник небольшой вопрос, не стал создавать отдельную тему...

Снимаю показания типа Disk.Free(C:)
Тип: Unsigned Int64

Вопрос: получаемое значение - биты?

Перевод в гигабайты будет (скрипт) таким?

(($1/1024)/1024)/1024

Пробовал- не получается, не срабатывает...
Как превратить биты в гигабайты скриптом?
#108
Общие вопросы / Re: 0.2.23-rc3
November 17, 2008, 12:45:01 PM
Виктор, приветствую =)
Как там насчёт релиза?
#109
General Support / Re: E-mail notification escalation
November 13, 2008, 01:51:50 PM
i'm about marked:

Quote
1. If you monitor some DCI, you can define different thresholds with different events, for example one event if CPU utilization exceedes 90% for 1 minute, and other if it exceeds 90% for 10 minutes, and then process these events by sending appropriate emails.
#110
General Support / Re: E-mail notification escalation
November 12, 2008, 10:08:40 AM
Victor, hello =)

Is point one true for 0.2.23 only?

(offtopic: what's new about 0.2.23 release date?)
#111
Виктор, огромное спасибо!
:)
#112
Виктор...?  :-[
#113
Виктор, приветствую...

Попытался воспроизвести инструкцию.. И понял, что почти ничего не понял =((

Что есть: есть SQL-кластер, 2 активные ноды. На кластере есть несколько ресурсных групп.
Что нужно: нужно отслеживать, что бы все ресурсные группы не сидели одновременно на одной ноде и в случае переезда (по каким-либо причинам) всех ресгрупп на одну ноду оператору кластера отправлялось оповещение.

Как планировалось реализовать: планировалось отслеживать на каждой из двух нод (SERVER1 и SERVER2) состояние 2ух сервисов, указывающих на то, что ресурсная группа (SQL RG1 и SQL RG2) хостится именно на этой ноде (сервисы MSSQL$SQLSERVER1 и соответственно MSSQL$SQLSERVER2). Эти группы не должны одновременно находиться на одной ноде и соответственно указанные сервисы НЕ ДОЛЖНЫ быть запущены одновременно.

Вопрос: и вот при попытке создать объект типа "Condition" у меня возникло устойчивое непонимание, как же его правильно использовать?

Последовательность (рассмотрим ситуацию только для одного сервера-ноды кластера):

1. создать 2 DCI для сервера-ноды SERVER1 (отслеживаем, что в пределах одной ноды всё так:

SERV1DCI1 -> System.ServiceState(MSSQL$SQLSERVER1) = 0
SERV1DCI2 -> System.ServiceState(MSSQL$SQLSERVER2) !=0

а вот если оба сервиса запущены, то должно сгенерироваться оповещение для Оператора.

Создал Event: "SYS_CLUSTER_NONOPTIMAL" (тип - Normal, с занесением в лог)
Добавил обработку: Event Processing Policy -> SYS_CLUSTER_NONOPTIMAL - Action = Mail to Operator.

А вот дальше что делать?
Честно говоря я не нашёл, как связать воедино созданный Condition и Ноду.
Как заставить Condition срабатывать если одно из условий сработало?


Нет, я конечно перерыл настройки Condition'а и всё что можно было настроить - настроил, но... Во вкладке "Data" я добавил 2 Source DCI Properties, ранее созданные на этапе 1. С сервера SERVER1. Но ведь там, в свойствах Condition'а, нельзя указать связь его и Event'ов. И во вкладке "Data" нет возможности указать, какие значения являются критическими (Threshold). Получается, что должны использоваться Threshold'ы из самих DCI (SERV1DCI1 и SERV1DCI2).

А дальше что делать?
Не могу понять, прошу разъяснить...

Как именно связать DCI, Condition и Event?
Я не нашёл точек соприкосновения =(((
#114
Приветствую!

Возникли следующие 2 вопроса:

1. Если я на сервере отслеживаю состояние сервиса (например spooler) через System.ServiceState(spooler), то %1 всегда возвращает именно System.ServiceState(spooler). Можно ли каким-то образом получать только значение, заключённое в ()? т.е. в данном случае только само значение spooler.

2. вытекает из первого вопроса. если я хочу автоматически перезагружать сервис spooler, я

а) создаю Action на сервере: Reset My Service \ Execute action on remote agent\ %a \ ResetService
б) создаю запись в конфиге Агента: ActionShellExec = ResetService:sc stop spooler && sc start spooler
в) создаю привязку Action "Reset My Service" к Event "SYS_SERVICE_DOWN" через Event Processing Policy
г) создаю DCI и добавляю в свойства DCI параметр Threshold: Last polled value - Not equal - 0 - SYS_SERVICE_DOWN

а вот теперь собственно вопрос: если я хочу сделать Reset My Service универсальным Action для ЛЮБОГО сервиса, как мне модифицировать строку ActionShellExec = ResetService:sc stop spooler && sc start spooler

может быть так? ActionShellExec = ResetService:sc stop %1 && sc start %1

и вот тут всплывает первый вопрос: %1 - возвращает не только название сервиса "spooler", но так же содержит и метод проверки "System.ServiceState".

Прошу помочь.
:)
#115
Виктор, Вы как всегда правы =)
Теперь всё работает как часы.
#116
if u see "31-Dec-1969" date - it means WMI request has not been passed by remote system...
try any free WMI browser to test your WMI query (for example WMI Explorer from http://www.ks-soft.net/, it's free).

and please provide as your wmi query (for exam)
#117
а в текущем RC3 0.2.23 это уже есть?
#118
Quote from: Victor Kirhenshtein on October 14, 2008, 08:00:09 PM
cmd файл можно и не создавать - вполне можно использовать


ActionShellExec = ResetSpooler:net stop spooler && net start spooler


а вот это сработало, спасибо! =)
но всё равно хотелось бы понять почему cmd-файл не срабатывает...

Quote from: Victor Kirhenshtein on October 14, 2008, 08:00:09 PM
В поле action на сервере можно использовать только предопределенные action'ы агента из соображений безопасности - например агент может настраивать другой администратор, дать серверу NetXMS доступ только на уровне ControlServer, и быть уверенным что администратор NetXMS не сможет выполнять любые команды, какие пожелает, через NetXMS агента.

мм.. если честно то не совсем понял о чём идёт речь... =((
#119
вот, пожалуйста =)


#
# NetXMS agent configuration file
# Created by agent installer at Wed Aug 27 12:59:39 2008
#

MasterServers = monitoring.test.ru, 127.0.0.1
LogFile = {syslog}
FileStore = C:\Program Files\NetXMS\var
SubAgent = ecs.nsm
SubAgent = winperf.nsm
SubAgent = wmi.nsm
SubAgent = ups.nsm

ActionShellExec = ResetSpooler:reset_spooler.cmd


файл: C:\Program Files\NetXMS\var\reset_spooler.cmd

содержимое файла:


@echo off
@sc stop spooler
@sc start spooler
@sc query spooler >>query.log
@echo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >>query.log

#120
хмм...

а что касаемо выполнения cmd-скрипта?
тут-то что не так? не пойму...

та процедура которую я описал- правильная?