• Система мониторинга автотранспорта своими руками
    0
    Сколько потребляет данное устройство?
    Как долго устройство сможет работать на аккумуляторе автомобиля, так что бы автомобиль потом завелся без проблем?
  • Про котэ, жену, двух сыновей, идею… и не только. История с продолжением
    +2
    Полезное и нужное устройство. К тому же автор не только сделал устройство, но и организовал рекламу, сервис и даже узаконил продукт.
    Я правильно понимаю, что сейчас идет разработка устройства для инсталляций (встроенные в стену система слива)?

    P.S. Статья имеет много лишнего контента. Читал статью «по диагонали». Тем не менее смысл был понятен. ИМХО.
  • Количество отправленных и полученных писем по дням
    +1
    Попробую. Ни разу еще не писал статьи для Хабра.
  • Количество отправленных и полученных писем по дням
    +1
    Скрипт для сбора статистики почтового трафика (отправлено / получено) в байтах на Exchange за дельту времени и отправка в PRTG
    ###################################################################################
    # Скрипт для сбора статистики почтового трафика (отправлено / получено) в байтах
    # на Exchange за дельту времени.
    ###################################################################################
    #
    #Сохраняем ошибки в файл "TrafficExchange2XML-Error.xml" и продолжаем выполнение скрипта "continue"
    trap {$_ | Export-Clixml TrafficExchange2XML-Error.xml; continue}
    #Отключаем вывод Warning, предварительно запомним текущее значение, для того что бы вернуть его обратно.
    $CurrentWarningPreference = $WarningPreference
    $WarningPreference = "SilentlyContinue"
    #Подключаемся к Exchange
    #Если консоль Exchange Management Shell установлена
    #add-pssnapin Microsoft.Exchange.Management.PowerShell.E2010 
    #Если консоль Exchange Management Shell НЕ установлена.
    $session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange/powershell
    Import-PSSession $session
    #Получаем все CAS сервера
    #Если работает авто определение
    #$CASs = (Get-ClientAccessServer).Name
    #Если НЕ работает авто определение
    $CASs = "CAS01", "CAS02", "CAS03"
    #Дельта времени подсчета.
    $DeltaTime = New-TimeSpan -Hours 1
    #Переменные для подсчета почтового трафика
    [int]$ReceivedTOTAL = 0
    [int]$SentTOTAL = 0
    #Для каждого CAS сервера расчитываем трафик за период времени $DeltaTime
    ForEach ($CAS in $CASs)
          {
          $Received = Get-MessageTrackingLog -Server $CAS -ResultSize unlimited -Start ((Get-Date) - $DeltaTime) -End (Get-Date) -EventId RECEIVE | Measure-Object TotalBytes -sum
          $Send = Get-MessageTrackingLog -Server $CAS -ResultSize unlimited -Start ((Get-Date) - $DeltaTime) -End (Get-Date) -EventId SEND | Measure-Object TotalBytes -sum
          $ReceivedTOTAL = $ReceivedTOTAL + $Received.Sum
          $SentTOTAL = $SentTOTAL + $Send.Sum
          }
    #Выводим результат в XML формате для PRTG.
    write-host '<?xml version="1.0" encoding="Windows-1252" ?>'
    
    write-host '<prtg>'
    
    write-host	'<result>'
    write-host		'<channel>Exchange received traffic</channel>'
    write-host		'<customUnit>Bytes</customUnit>'
    write-host		'<value>'$ReceivedTOTAL'</value>'
    write-host	'</result>'
    
    write-host	'<result>'
    write-host		'<channel>Exchange send traffic</channel>'
    write-host		'<customUnit>Bytes</customUnit>'
    write-host		'<value>'$SentTOTAL'</value>'
    write-host	'</result>'
    
    write-host '</prtg>'
    #Разрываем сессию с CAS сервером Exchange.
    Remove-PSSession $session
    #Возвращаем вывод Warning
    $WarningPreference = $CurrentWarningPreference
    

  • Количество отправленных и полученных писем по дням
    +1
    Дельта не рассчитывается. Она устанавливается в ручную. Например, нужно знать сколько писем пришло за 1 час. 1 час это и будет дельта. Ее мы задаем в скрипте, и в настройке сенсора в PRTG, поле «Scanning Interval». Предыдущее значение скрипт не хранит. Он все время рассчитывает за дельту времени. В моем случае за один час назад (дельта). Как только скрипт рассчитал значение, он их передает в PRTG через «write-host» в формате XML. Смотрите код выше. PRTG строит графики, и хранит последние полученные значения. Смотрите мой скриншот. Период хранения полученной информации, задается настройками PRTG.

    Если есть интерес, могу завтра выложить полный код скрипта.
  • Количество отправленных и полученных писем по дням
    +1
    Скрипт работает на сервере PRTG. Скрипт подключается к Exchange через командлеты

    $session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange/powershell
    Import-PSSession $session

    Скрипт делает расчет только за указанную дельту времени (я установил 1 час), и рассчитывает только две переменные. Сколько получено байт "$ReceivedTOTAL" и сколько отправлено байт "$SentTOTAL"
    Вывод результата нужно делать через «write-host» но при этом в формате XML.
    #Выводим результат в XML формате для PRTG.
    write-host '<?xml version="1.0" encoding="Windows-1252" ?>'
    
    write-host '<prtg>'
    
    write-host	'<result>'
    write-host		'<channel>Exchange received traffic</channel>'
    write-host		'<customUnit>Bytes</customUnit>'
    write-host		'<value>'$ReceivedTOTAL'</value>'
    write-host	'</result>'
    
    write-host	'<result>'
    write-host		'<channel>Exchange send traffic</channel>'
    write-host		'<customUnit>Bytes</customUnit>'
    write-host		'<value>'$SentTOTAL'</value>'
    write-host	'</result>'
    
    write-host '</prtg>'
    
    

    В PRTG создаешь группу которая прослушивает любой действующий IP, т.к. сенсор в этой группе будет запускать PowerShell скрипт, а скрипт сам подключается к Exchange. Т.е. нам не важен какой IP будет прослушивать данная группа. Я использовал IP 127.0.0.1
    Далее в группе создаешь сенсор «XML Custom EXE/Script Sensor». В поле «EXE/Script» указываешь скрипт PowerShell, предварительно выложив его на сервере PRTG по пути «c:\Program Files (x86)\PRTG Network Monitor\Custom Sensors\EXEXML». В поле «Scanning Interval» выставляешь с какой периодичностью будет запускаться скрипт. Периодичность равна дельте времени в скрипте.
    И Все. Ждешь когда накопится статистика.

    Вроде мы ничего не забыл. С удовольствием отвечу на Ваши вопросы если, что то не понятно.
  • Количество отправленных и полученных писем по дням
    +1
    Спасибо за статью.
    Делал что то подобное на PowerShell и прикручивал к система мониторинга PRTG для визуализации.

    image