ReportWeb - Installation

Es gibt kein "SETUP.EXE", um ReportWeb in ihrer Umgebung anzupassen. Es ist ein Framework für eigene Weiterentwicklungen und Anpassungen und genauso müssen Sie an der ein oder anderen Stelle das System auf ihre Bedürfnisse anpassen. Die Installation ist aber dennoch nicht schwer und mit dieser Anleitung sollten Sie das System auch bei ihnen zum Laufen bekommen.

Installationsschritt Erledigt

Dienstkonto und Sicherheitsgruppe anlegen

Die Generierung der Reports wird durch per Taskplaner gestartete PowerShells auf dem System durchgeführt. Bitte nutzen Sie dazu nicht den Administrator. Auch ein Ausführen als "LocalSystem" sollten Sie nicht in Betracht ziehen. Legen Sie ein Dienstkonto mit Kennwort an, welches dann die erforderlichen Berechtigungen bekommt, um die Reports auszuführen.

Zudem empfehle ich eine universelle Sicherheitsgruppe, damit Sie den Zugriff auf die Webseite später über eine Gruppe steuern.

 

Systemvoraussetzungen schaffen

Reportweg nutzt PowerShell, Taskplaner, IIS und verschiedene Commandlets. Daher sollten Sie auf dem System installieren:

  • Windows 2008 x64 oder höher
  • IIS-Rolle mit Standardfunktionen
    zzgl. ASP.NET
  • PowerShell 2.0
  • SoinstigeModule
    Wenn Sie in ihren Reportmodulen auf Exchange Commandelts, Lync Commandelts, AD Commandelts zurückgreifen wollten und nicht eine remote PowerShell Session aufbauen, dann müssen Sie diese Komponenten natürlich auf dem System installieren.
  • Lync Commandlets
    Wenn Sie Lync Berichte erstellen wollen
  • Sharepoint Designer 2007
    Oder ein anderer Editor für Webseiten, mit denen Sie das Web anpassen können. ReportWeb nutzt HTML-Dateien als Vorlage, um darin dann die Ergebnisse zu mergen und mit einem anderen Namen zu speichern. Leider können Sharepoint Designer 2010 und höher keine "Diskwebs" mehr verwalten. Sharepoint Designer 2007 ist mittlerweile aber sogar kostenfrei.

 

Report-Web auspacken

Als nächsten Schritt kopieren Sie das ReportWeb-Archiv auf den PC und packen Sie es in ein Verzeichnis ihrer Wahl aus (z.B. nach "C:\ReportWeb". Sie können den Pfad gerne ändern, aber sie müssen dann auch in den Konfigurationsdateien und Skripten entsprechend den Pfad anpassen. Es landen einige Verzeichnisse auf dem PC. (Siehe Reportweb Pfade)

 

Webseite im IIS einbinden

Um einen "Blick" auf ihr Werk zu werfen und in den folgenden Schritten den Erfolg zu prüfen, richten Sie nun im bereits installierten IIS das Verzeichnis HTML als neue Webseite oder als virtuelles Verzeichnis in eine bestehende Webseite ein.

  • "Berechtigen"
    Stellen Sie sicher, dass nur die gewünschten Personen diese Dateien lesen dürfen. Eventuell müssen Sie dazu die NTFS-Vererbung auf \HTML abschalten, damit von dem darüber liegenden Verzeichnis nicht die ACL "Users:Read" angewendet wird. Das Dienstkonto und der IIS sollten natürlich nicht vergessen werden, da der IIS ohne Zugriff auf die web.config auch kein ASPX ausführt.
    Es ist eine gute Idee, die Zugriffsrechte auf dieses ReportWeb an eine Gruppe zu hängen. (Siehe Anfang: Einrichten der Windows User und Gruppen.
  • IIS Authentifizierung
    Wenn Sie nicht möchten, dass "Jeder" das Reportweb einsieht, dann sollten Sie die anonyme Anmeldung entfernen und zumindest die Integrierte Authentifizierung aktivieren.
  • Zugriff testen
    Nutzen Sie einen Browser um die Webseite zu öffnen. Aktuell werden Sie dort natürlich nur Dummydaten finden aber so sehen Sie die prinzipielle Funktion.

 

Webseite im Sharepoint Designer bearbeiten

Sie können nun daran gehen, die Webvorlage nach ihren Wünschen zu verändern. Layout, Logos und auch das Menü am linken Rand müssen Sie selbst erstellen. Siehe dazu auch Reportweb Vorlage.

 

"reportweb-global.ps1" anpassen

Diese Datei enthält globale Variablen, die von allen Programen per "Invoke-Expression .\ReportWeb-global.ps1 " Eingebungen wird. Passen Sie hier die Pfade an ihre Gegebenheiten an.

 

"reportweb.csv" anpassen

Damit der Controller und Worker wissen, was sie zu tun haben, müssen Sie die Reports in der Reportweb.csv pflegen. für jeden Report gibt es hier eine Zeile mit den Parametern. für den Anfang können Sie natürlich die bereits vorhandenen Report einfach verwenden und nach und nach dann ihre eigenen Reports addieren.

 

Environment-Report einmal interaktiv ausführen

Um zu sehen, dass die komplette Umgebung und Konfiguration stimmig ist, können Sie einen Report manuell mit dem Worker ausführen. Starten Sie dazu eine CMD-Box, wechseln Sie in das ReportWeb-Verzeichnis und starten Sie den Environmentreport und danach den Statusreport.:

# Environmentreport manuell ausführen.
Reportweb-worker.ps1 -reportname env
# Statusseite aktualisieren
Reportweb-worker.ps1 -reportname status

Der entsprechende Report wird interaktiv ausgeführt. Wenn Sie alles richtig gemacht haben, sollte danach eine "reportwebenv.htm" im HTML-Verzeichnis erstellt worden sein. Dieser Report erstellt einen kleinen Bericht der "LaufzeitUmgebung".

 

Controller ausführen

Wenn der Report erstellt wurde und damit die Basisfunktion gegeben ist, dann starten wir nun den Controller interaktiv. Er wird nun alle Reports der CSV-Datei neu erstellen und ablegen.

REM Controller einmal starten
"Reportweb.cmd one"

Sie sollten sehen, dass die PowerShell mit dem Controller geladen wird. Der Controller wird die Reports in neuen Fenstern starten. Wenn das soweit funktioniert, können die zum nächsten Schritt übergehen

 

Reports per Taskplaner einrichten

Der Windows Taskplaner wird als Scheduler für die Reports genutzt. Der Taskplaner startet den "Controller" z.B. alle 5 Minuten. Zuerst wird also der regelmäßige Aufruf in einem neuen Task eingeplant.

  • Trigger:  Täglich ab 00:00 mit Wiederholung 5 Min über eine Dauer von 1 Tag
  • Aktion: Start Programm
    Programmname: c:\reportweb\reportweb.cmd
    Ausführen in "c:\reportweb"
    Parameter: "one"
  • Ausführen als:
    Benutzer = Dienstkonto mit Kennwort
    Auch ausführen, wenn Benutzer nicht angemeldet

Sie können diesen Task auch gerne manuell starten aber werden keine Ausgaben sehen. Allerdings sollte der Controller nach einiger Zeit mit einem Exitcode=0 sich beenden. Im Taskmanager können Sie die verschiedenen Worker verfolgen.

Eine zweite Aufgabe des Taskplaners ist den Runner zu starten, wenn z.B. in der ASP.NET-Datei ein Report angetriggert wird. Die ASP.NET-Seite legt dazu eine "TRIGGER"-Datei an und generiert einen Eventlog-Eintrag. Auf diesen Eintrag hin wird der Runner mit einer anderen Option gestartet:

  • Trigger: Eventlogeintrag:  Eventlog: Application,  Source: ReportWeb, EventID:0
  • Aktion: Start Programm
    Programmname: c:\reportweb\reportweb.cmd
    Ausführen in "c:\reportweb"
    Parameter: "trigger"
  • Ausführen als:
    Benutzer = Dienstkonto mit Kennwort
    Auch ausführen, wenn Benutzer nicht angemeldet

Der nächste Schritt ist, dann die Konfiguration für das Eventlog

 

ASP.NET Trigger einrichten

Über die ebenfalls im Paket enthaltene ASP.NET-Seite kann per Browser ein Report angetriggert werden. Dazu ist aber eine Vorarbeit erforderlich: Der IIS kann zwar in das Eventlog schreiben, aber hat nicht das Recht, eine neue Eventlog-Quelle anzulegen. Das muss einmal der Admin in einer PowerShell machen.

# Anlegen einer Eventlog Quelle für ReportWeb
[System.Diagnostics.EventLog]::CreateEventSource("ReportWeb", "Application")

Mehr ist aber nicht erforderlich. Testen Sie die Funktion, indem Sie folgendes im Browser eingeben:

http://ihr-report-web-server/ihr-report-verzeichnis/trigger/default.aspx?report=env

Sie sollten nun im Eventlog einen Eintrag mit Quelle = Reportweb sehen, in dessen Messagetext zuerst der Reportname aber dann auch die Client-IP und der angemeldete Benutzer angezeigt wird. Sollte Sie nicht gegeben sein, dann finden Sie auf Reportweb:Trigger weitere Informationen.

Wenn der Event angelegt wurde, dann kontrollieren Sie im Taskmanager, dass der damit verbundene Task gestartet wurde. Wenn das der Fall ist, dann finden Sie eine passende TRIGGER-Datei im Verzeichnis "\JOBSTATUS". Es sei denn der Controller hat die Datei schon "gesehen", gelöscht und den Report gestartet.

 

Eigene Reports konfigurieren

Nun ist die Einrichtung soweit abgeschlossen und es bleibt ihnen nur noch, eigene Reports in das System zu addieren. Die dazu erforderlichen Schritte habe ich auf Reportweb:Addreport beschrieben,