+7 (495) 933-3193
info@vectorinfo.ru
  • Домашняя страница
  • Свяжитесь с нами
  • Поиск по сайту
  • Карта сайта

Как повысить читабельность отчётов Symantec Backup Exec for Windows Server (BEWS)

Все настройки применялись на версии Symantec BEWS 2010 Version 13.0 Rev. 2896 (32-bit).

Чтобы повысить информативность и читабельность отчётов, предоставляемых встроенными средствами Symantec BEWS мы сделали следующие изменения:

  • Отчёт, отправляемый по электронной почте, размещается в теле письма.
    Поэтому, чтобы его прочесть – достаточно открыть письмо.
  • Поле статуса задания (Status) мы выделили цветом.
    Теперь достаточно быстро посмотреть на отчёт, чтобы найти сбойные задания, не вчитываясь в поле описания статуса.
  • Преобразовать скорость выполнения работы из MB/Minute в MB/Sec.
    Чтобы каждый раз не делать эту операцию в уме

Чтобы увидеть разницу сравните отчёт оригинальный и доработанный отчёты.

Как разместить отчёт в теле письма электронной почты описано в этой статье: "Как настроить отправку отчётов Symantec Backup Exec for Windows Server (BEWS) в теле письма HTML.doc"

Теперь расскажем, как сделать оставшиеся изменения.

Мы используем стандартный ежедневный отчёт Jobs Summary. Его можно найти BEWS в Reports -> Standard Reports -> Jobs -> Job Summary.

Поэтому для нашего задания Symantec использует следующие файлы и процедуру SQL:

         1. "C:\Program Files\Symantec\Backup Exec\Reports\dailyjobs_en.rdl"
         2. "C:\Program Files\Symantec\Backup Exec\Reports\dailyjobs_ru.rdl"
         3. процедура формирования ежедневного отчёта [ReportDailyJobs] в базе SQL [BEDB]
    

Изменять будем оба файла, чтобы мы получили одинаковый отчёт, независимо от языковой настройки операционной системы. Изменения во втором файле проводятся аналогично, с поправкой на русский язык. Я покажу изменения лишь для первого файла.

Делаем резервную копию файла dailyjobs_en.rdl. Редактируем его следующим образом:

  1. Ищем значение “MB/Minute” и заменяем его на “MB/Sec”.
Строку

            <Value rd:LocID="0">MB/Minute</Value>

            меняем на

            <Value rd:LocID="0">MB/Sec</Value>
  1. Ищем значение “TotalRateMBMin.Value” и заменяем его на “TotalRateMBSec.Value”.
Строка

            <Value>=Iif(Fields!TotalRateMBMin.Value < 0, 0, Fields!TotalRateMBMin.Value)</Value>

            измениться на

            <Value>=Iif(Fields!TotalRateMBSec.Value < 0, 0, Fields!TotalRateMBSec.Value)</Value>
  1. Ищем значение “TotalRateMBMin” и меняем его на “TotalRateMBSec”.
            Строки

            <Field Name="TotalRateMBMin">

            <DataField>TotalRateMBMin</DataField>

            изменятся на

            <Field Name="TotalRateMBSec">

            <DataField>TotalRateMBSec</DataField>
  1. Ищем строку “<Textbox Name="textbox23">”. Это элемент отчёта столбца Status. Чтобы его раскрасить нам нужно скопировать оператор switch для значения и определить цвет фона и шрифта для каждой работы (элемент для шрифта нужно будет добавить). Мы сделали так:
            Строки

            <Textbox Name="textbox23">

             <ZIndex>1</ZIndex>

              <Style>

               <TextAlign>Center</TextAlign>

               <PaddingLeft>2pt</PaddingLeft>

               <PaddingBottom>2pt</PaddingBottom>

               <FontFamily>Times New Roman</FontFamily>

               <BackgroundColor>White</BackgroundColor>

               <PaddingRight>2pt</PaddingRight>

               <PaddingTop>2pt</PaddingTop>

            </Style>

            <CanGrow>true</CanGrow>

            <Value rd:LocID="-1">=Switch(Fields!FinalJobStatus.Value = 18, "Scheduled",
    
    
        Fields!FinalJobStatus.Value = 11, "Scheduled (On hold)",

        Fields!FinalJobStatus.Value = 4, "Start queued",

        Fields!FinalJobStatus.Value = 16, "Running",

        Fields!FinalJobStatus.Value = 19, "Completed (Success)",

        Fields!FinalJobStatus.Value = 3, "Completed (Exceptions)",

        Fields!FinalJobStatus.Value = 9, "Missed Job",

        Fields!FinalJobStatus.Value = 12, "Queued",

        Fields!FinalJobStatus.Value = 17, "Ready",

        Fields!FinalJobStatus.Value = 2, "Completed (Success)",

        Fields!FinalJobStatus.Value = 6, "Failed",

        Fields!FinalJobStatus.Value = 1, "Cancelled",

        Fields!FinalJobStatus.Value = 5, "Hold",

        Fields!FinalJobStatus.Value = 10, "Not in availability window",

        Fields!FinalJobStatus.Value = 14, "Resource disabled",

        Fields!FinalJobStatus.Value = 20, "Superseded",

        Fields!FinalJobStatus.Value = 22, "To be scheduled",

        Fields!FinalJobStatus.Value = 13, "Recovered",

        Fields!FinalJobStatus.Value = 7, "Invalid time window"

        )</Value>

          </Textbox>
    
         меняются на
    
           <Textbox Name="textbox23">
 
           <ZIndexe>1e</ZIndex> 

           <Style>

            <TextAligne>Centere</TextAlign>

            <PaddingLefte>2pte</PaddingLeft>

            <PaddingBottome>2pte</PaddingBottom>

            <FontFamily>Times New Roman</FontFamily>

           <BackgroundColor>=Switch(Fields!FinalJobStatus.Value = 18, "White",
    
        Fields!FinalJobStatus.Value = 11, "White",

        Fields!FinalJobStatus.Value = 4, "White",

        Fields!FinalJobStatus.Value = 16, "Lime",

        Fields!FinalJobStatus.Value = 19, "Green",

        Fields!FinalJobStatus.Value = 3, "Yellow",

        Fields!FinalJobStatus.Value = 9, "Red",

        Fields!FinalJobStatus.Value = 12, "Yellow",

        Fields!FinalJobStatus.Value = 17, "Lime",

        Fields!FinalJobStatus.Value = 2, "Green",

        Fields!FinalJobStatus.Value = 6, "Red",

        Fields!FinalJobStatus.Value = 1, "Red",

        Fields!FinalJobStatus.Value = 5, "White",

        Fields!FinalJobStatus.Value = 10, "Yellow",

        Fields!FinalJobStatus.Value = 14, "Yellow",

        Fields!FinalJobStatus.Value = 20, "Yellow",

        Fields!FinalJobStatus.Value = 22, "Yellow",

        Fields!FinalJobStatus.Value = 13, "Blue",

        Fields!FinalJobStatus.Value = 7, "Yellow"

        )</BackgroundColor>
    
            <Color>=Switch(Fields!FinalJobStatus.Value = 18, "Black",
    
        Fields!FinalJobStatus.Value = 11, "Black",

        Fields!FinalJobStatus.Value = 4, "Black",

        Fields!FinalJobStatus.Value = 16, "Black",

        Fields!FinalJobStatus.Value = 19, "White",

        Fields!FinalJobStatus.Value = 3, "Black",

        Fields!FinalJobStatus.Value = 9, "White",

        Fields!FinalJobStatus.Value = 12, "Black",

        Fields!FinalJobStatus.Value = 17, "Black",

        Fields!FinalJobStatus.Value = 2, "White",

        Fields!FinalJobStatus.Value = 6, "White",

        Fields!FinalJobStatus.Value = 1, "White",

        Fields!FinalJobStatus.Value = 5, "Black",

        Fields!FinalJobStatus.Value = 10, "Black",

        Fields!FinalJobStatus.Value = 14, "Black",

        Fields!FinalJobStatus.Value = 20, "Black",

        Fields!FinalJobStatus.Value = 22, "Black",

        Fields!FinalJobStatus.Value = 13, "White",

        Fields!FinalJobStatus.Value = 7, "Black" )

        </Color>
    
            <PaddingRight>2pte</PaddingRight>

            <PaddingTop>2pte</PaddingTop>

            </Style>

            <CanGrow>truee</CanGrow>

            <Value rd:LocID="-1">=Switch(Fields!FinalJobStatus.Value = 18, "Scheduled",
    
        Fields!FinalJobStatus.Value = 11, "Scheduled (On hold)",

        Fields!FinalJobStatus.Value = 4, "Start queued",

        Fields!FinalJobStatus.Value = 16, "Running",

        Fields!FinalJobStatus.Value = 19, "Completed (Success)",

        Fields!FinalJobStatus.Value = 3, "Completed (Exceptions)",

        Fields!FinalJobStatus.Value = 9, "Missed Job",

        Fields!FinalJobStatus.Value = 12, "Queued",

        Fields!FinalJobStatus.Value = 17, "Ready",

        Fields!FinalJobStatus.Value = 2, "Completed (Success)",

        Fields!FinalJobStatus.Value = 6, "Failed",

        Fields!FinalJobStatus.Value = 1, "Cancelled",

        Fields!FinalJobStatus.Value = 5, "Hold",

        Fields!FinalJobStatus.Value = 10, "Not in availability window",

        Fields!FinalJobStatus.Value = 14, "Resource disabled",

        Fields!FinalJobStatus.Value = 20, "Superseded",

        Fields!FinalJobStatus.Value = 22, "To be scheduled",

        Fields!FinalJobStatus.Value = 13, "Recovered",

        Fields!FinalJobStatus.Value = 7, "Invalid time window"

        )</Value>

    
            </Textbox>

Теперь исправим в процедуре формирования ежедневного отчёта [ReportDailyJobs] в базе SQL [BEDB] поле TotalRateMBMin на новое поле TotalRateMBSec. Для этого выполняем следующие действия:

  1. Подключаемся к экземпляру базы данных SERVER\BKUPEXEC c помощью Microsoft SQL Server Management Studio;
  2. Находим процедуру [ReportDailyJobs] по пути: BEDB -> Programmability -> Stored Procedures -> dbo.ReportDailyJobs.
  3. Экспортируем её в новое окно редактора через Script Stored Procedures as -> CREATE To -> New Query Editor Windows;
  4. Строку
            JobHistory.TotalRateMBMin,

            на

            (JobHistory.TotalRateMBMin/60 as real) AS TotalRateMBSec,
  1. Удаляем старую процедуру [ReportDailyJobs] из базы данных;
  2. Создаём процедуру [ReportDailyJobs], выполнив её из только что созданного окна.

На этом все изменения закончены. Теперь для проверки можно выполнить вручную создание нового отчёта из консоли управления Symantec BEWS и убедится в отсутствии ошибок. Если же Вы получили сообщение об ошибке, то её нужно искать в только что сделанных изменениях.

Вы можете воспользоваться нашими модернизированными файлами:

Rambler's Top100