Your SlideShare is downloading. ×
0
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Reporting on your domino environment v1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Reporting on your domino environment v1

445

Published on

This was meant to be a show and tell presentation at Lotusphere 2013, but time pressures meant we could not present. With Wouter Aukema

This was meant to be a show and tell presentation at Lotusphere 2013, but time pressures meant we could not present. With Wouter Aukema

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
445
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Reporting onyour DominoEnvironmentWouter Aukema | Trust FactoryBill Buchan | hadslSaturday, 8 June 13
  • 2. AgendaIntroductionReportsReporting in ExcelSaturday, 8 June 13
  • 3. What is this Show and TellReporting in your Domino environment covers a lot of groundWe’ve focused on reports that are immediately useful to AdministratorsReports that we’ve seen customers use time and time againReports that help you explain your environment to your bossReports that help justify how good your environment isWe’ve focused on reporting via Microsoft ExcelWhy ? Just about everyone has it.Its a consistent baseIt can be used for far far more than just spreadsheetsSaturday, 8 June 13
  • 4. Who is Wouter?Wouter is the founder of Trust FactoryRecently acquired by PanagendaKnows more about Domino infrastructureanalysis than anyone else in the worldLives in Den Haag - (the Hague) in theNetherlands (Holland)Saturday, 8 June 13
  • 5. Who is BillBill is a PCLP in both Administration andDevelopment in v3, v4, v5, v6, v7, v8, and v8.5CEO and one of the founders of hadslSubject matter specialist on largeenvironment user lifecycle managementLives near Aberdeen, ScotlandSaturday, 8 June 13
  • 6. AgendaIntroductionReportsReporting in ExcelReportsSaturday, 8 June 13
  • 7. So why report on yourenvironment?Reporting every week or every month:Is tedious and time consuming, but forces you to review your environmentShows your management that you are on top of issuesYou can manually reportGo to each servers console, and type in ‘show stat’ or ‘show server’Go to the administration client and type in the hard drive available/free figuresGo to the directory and note down the domino release versionOr you can automate itSaturday, 8 June 13
  • 8. Automated Domino ReportingWe’ve taken several reports that we’ve done for customersAnd packaged them into an Excel SpreadsheetIt runs on a windows PC, and requires Excel 2010When you click on a report,It opens your notes client (you may be prompted for a password)It connects to your home notes serverIt figures out your environment from your directoryIt produces a beautifully formatted report, ready for your boss.Some reports require elevated privilegesSuch as READ ONLY console access.Saturday, 8 June 13
  • 9. Some notes on ExcelWe’re using Excel 2010This appears to be quite a popular version out there in userlandNone of the features are sophisticated - this will probably quite happily work in earlieror later versionsWe’ve not had time to test it on other versionsYour Mileage May VaryWe’re using ‘Macros’ within ExcelSo you have to enable MacrosSaturday, 8 June 13
  • 10. How to write reports in ExcelStart ExcelPress Alt-F11 to get the VBA EditorThis will look remarkably familiar..Create a new ClassAdd a reference to ‘domobj.tlb’ from VBAIts in your Notes client program directoryMost LotusScript calls to the Notes objectclasses are exactly the sameYou will be prompted for your NotesClient password:Saturday, 8 June 13
  • 11. AgendaIntroductionReportsReporting in ExcelSaturday, 8 June 13
  • 12. Which reports have we chosen?1. Notes.iniLets collect notes.ini from all your servers. This helps you figure out what has changed2. server docs & config docsLets collect all these from all your servers, and show you the differences3. MailfileLets show you some statistics from your (or anyone elses) mailfilesender, author, timestamp, size,4. Server Disk space and PerformanceLets show you how full your disks are and how they are performing5. Inactive usersLets show you how effective your HR department are about telling you about leaversSaturday, 8 June 13
  • 13. 1. Notes.ini - manuallyThis report quickly allows you to compare important Notes.ini settings across serversAids environmental consistencyGood for troubleshooting and diagnosisYou can manually create this report by:Going into the administration clientFor each Domino server in your public directoryOpen consoleType in ‘Show Conf *’Copy and paste the results to ExcelYou can imagine that this gets a little tediousWe’ve created this in Excel for youSaturday, 8 June 13
  • 14. 1. Notes.ini - AutomaticallySaturday, 8 June 13
  • 15. 1. Notes.ini - AutomaticallyClick on the blue button beside 1. Collect Notes.iniSit back and wait.This willOpen your Notes clientYou may be prompted for your Notes client passwordIt will then find your home notes serverIt will open the directory on your home notes serverIt will then collect all the servers listed in the ‘servers’ viewFor each server,It will open a remote console sessionsend ‘Show Conf *’Collect and parse the resultsSaturday, 8 June 13
  • 16. 1. Notes.ini - AutomaticallySaturday, 8 June 13
  • 17. 1. Notes.ini AutomaticallyThis hasScanned all servers in your directoryServers it cannot connect to have been coloured in RedListed all notes.ini parameters from each serverParsed them into columns and rows within ExcelYou can nowRun comparisons and searches on this data using ExcelWe recommend:You run this on a weekly/monthly basis during any server upgrade process tosnapshot progress and/or provide backup of configuration informationUse it for server auditsSaturday, 8 June 13
  • 18. But how do we create this inOpen Excel 2010Open the VBE EditorAlt+F11Create a new Macro, called ‘ServerNotesIniThe first routine it calls isServerNotesIniRHSets up the ReportHeaderThen it creates a newDominoReporting objectGets a list of serversFor each server, gets the notes.ini valuesWrites it to the spreadsheetFinally, selects all columns, and autofits thecolumns to the contentSub ServerNotesIni() Run the server Notes.ini reportOn Error GoTo ErrorHandlerCall ServerNotesIniRHDim dr As New DominoReportingIf Not dr.getServers() ThenDebug.Print "Failed to get a list of servers"Exit SubEnd IfDim servers() As String, i As IntegerCall dr.copyToArray(dr.getSelectedServers(), servers)Range("A" + CStr(2 + i)).SelectFor i = 0 To UBound(servers)Call ServerNotesIniRS(dr, servers(i))Next iColumns("A:P").EntireColumn.AutoFitexitFunction:Exit SubErrorHandler:Debug.Print "ServerNotesIni: Run time error: " + Error$Resume exitFunctionEnd SubSaturday, 8 June 13
  • 19. 1. Notes.ini CodeWe call a private SubServerNotesIniRHRH - Report HeaderIt sets up a new worksheetCalled ‘Notes.ini’And sets up the headersColumns forServersVariableValuePrivate Sub ServerNotesIniRH()On Error GoTo ErrorHandlerIf (ActiveSheet.Name = "Notes.Ini") ThenElseSheets.Add After:=Sheets(Sheets.count)ActiveSheet.Name = "Notes.Ini"End If Now set up the titlesRange("A1").SelectActiveCell.FormulaR1C1 = "Server"ActiveCell.Offset(0, 1).SelectActiveCell.FormulaR1C1 = "Variable"ActiveCell.Offset(0, 1).SelectActiveCell.FormulaR1C1 = "Value"Range("A2").SelectexitFunction:Exit SubErrorHandler:Debug.Print "ServerNotesIniRH: Run-time error: " +Error$Resume exitFunctionEnd SubSaturday, 8 June 13
  • 20. DominoReporting Object PrivateThe DominoReporting object has a number of privatepropertiesused internallyFor instancesession is a NotesSession object -used by everythingUsername, servername, mailfilePlucked from the users notes.ini fileNAB is a NotesDatabase representing the directoryon the users home mail servernabServerView is ($Servers)nabConfigView is ($ServerConfig)The constructor is automatically called, and sets mostof thesePrivate isOkay As BooleanPrivate session As domino.NotesSessionPrivate homeServer As domino.NotesNamePrivate mailfile As StringPrivate thisUser As domino.NotesNamePrivate nab As domino.NotesDatabasePrivate nabServersView As domino.NotesViewPrivate nabConfigView As domino.NotesViewPrivate selectedServers() As StringSaturday, 8 June 13
  • 21. DominoReporting ObjectPrivate Sub Class_Initialize()On Error GoTo ErrorHandlerisOkay = FalseDebug.Print "New instance of DominoReporting Class"Set session = New domino.NotesSessionCall session.InitializeSet thisUser = session.CreateName(session.EffectiveUserName)Set homeServer = session.CreateName(session.GetEnvironmentString("MailServer", True))mailfile = session.GetEnvironmentString("MailFile", True)Debug.Print "User: " + thisUser.Abbreviated + " has home server: " +homeServer.Abbreviated + " and mailfile: " + mailfileisOkay = TrueexitFunction:Exit SubErrorHandler:Debug.Print "Run time error: " + Error$ + " at line: " + CStr(Erl)Resume exitFunctionEnd SubSaturday, 8 June 13
  • 22. DominoReporting.getServers()GetServerslooks in the ($Servers) Directory viewGets a list of server abbreviated namesPopulates a simple String array with those namesReturns True if successfulSaturday, 8 June 13
  • 23. DominoReporting.getServers()Public Function getServers() As BooleangetServers = FalseOn Error GoTo ErrorHandlerIf Not isOkay ThenDebug.Print "The DominoReporting class has not initialisedcorrectly"Exit FunctionEnd IfIf nab Is Nothing ThenIf Not getNab() ThenDebug.Print "getServers: I cannot open the directory"Exit FunctionEnd IfEnd IfIf nabServersView Is Nothing ThenSet nabServersView = nab.GetView("($Servers)")End IfIf (nabServersView Is Nothing) ThenDebug.Print "getServers: I cannot open NAB view: ($Servers)"Exit FunctionEnd IfReDim selectedServers(0)Saturday, 8 June 13
  • 24. DominoReporting.getServers()ReDim selectedServers(0) Now get a list of servers in this directoryDim doc As domino.NotesDocument, count As LongSet doc = nabServersView.GetFirstDocumentWhile Not doc Is NothingDim nn As domino.NotesNameSet nn = session.CreateName(doc.GetItemValue("ServerName")(0))selectedServers = addString(nn.Abbreviated, selectedServers)count = count + 1Set doc = nabServersView.GetNextDocument(doc)WendDebug.Print "getServers: I found: " + CStr(count) +" servers in the ($Servers) view"getServers = TrueexitFunction:Exit FunctionErrorHandler:Debug.Print "getServers: Run-time error: " + Error$ + " at line: "+ CStr(Erl)Resume exitFunctionEnd FunctionSaturday, 8 June 13
  • 25. DominoReporting.ServerNotesInServerNotesIniRSRS stands for Report each ServerIs passed in the Domino Reporting objectThe Target Server nameIt then calls the DominoReporting routine ‘runConsoleCommand’with ‘Show Conf *’This lists the notes.ini variablesParses these into separate String Array piecesEach of the lines is then written to the spreadsheetSaturday, 8 June 13
  • 26. DominoReporting.ServerNotesInPrivate Sub ServerNotesIniRS(dr As DominoReporting, serverName As String)On Error GoTo ErrorHandlerDim ini() As String, i As Longini = dr.runConsoleCommand(serverName, "show conf *")If (ini(0) = "") ThenActiveCell.FormulaR1C1 = serverNameCall makeCurrentCellRedActiveCell.Offset(1, 0).Select Move downElseSaturday, 8 June 13
  • 27. DominoReporting.ServerNotesInFor i = 0 To UBound(ini)ActiveCell.FormulaR1C1 = serverNameDim thisLine As String, V As VariantthisLine = ini(i)If (thisLine <> "") ThenV = Split(thisLine, "=")ActiveCell.Offset(0, 1).SelectActiveCell.FormulaR1C1 = V(0)If (UBound(V) > 0) ThenActiveCell.Offset(0, 1).SelectActiveCell.FormulaR1C1 = V(1)ActiveCell.Offset(1, -2).SelectElseActiveCell.Offset(1, -1).SelectEnd IfElseActiveCell.Offset(1, 0).Select move downEnd IfNext iEnd IfSaturday, 8 June 13
  • 28. DominoReporting.ServerNotesInexitFunction:Exit SubErrorHandler:Debug.Print "ServerNotesIniRS: Run time error: " + Error$Resume exitFunctionEnd SubSaturday, 8 June 13
  • 29. DominoReporting.runConsoleCorunConsoleCommandPass in a server name and a console commandReturns a String Array of the results of the server console commandSaturday, 8 June 13
  • 30. DominoReporting.runConsoleCoFunction runConsoleCommand(serverName As String, consoleCommand As String) As String()On Error GoTo ErrorHandlerDim ret() As StringReDim ret(0)runConsoleCommand = retIf serverName = "" Then Exit FunctionIf consoleCommand = "" Then Exit FunctionDim rawret As Stringrawret = session.SendConsoleCommand(serverName, consoleCommand)Debug.Print "runConsoleCommand: Server: " + serverName + ", Command: "+ consoleCommand + ", result: " + rawretCall copyToArray(Split(rawret, Chr(10)), ret)runConsoleCommand = retexitFunction:Exit FunctionErrorHandler:Debug.Print "runConsoleCommand: Run time error: " + Error$+ " at line: " + CStr(Erl)Resume exitFunctionEnd FunctionSaturday, 8 June 13
  • 31. 2. Server Docs & ConfigurationThis report quickly allows you to compare important settings in Server Documents andServer Configuration DocumentsAids environmental consistencyGood for troubleshooting and diagnosisYou can manually create this report by:Going into each server document and server configuration documentAnd copying the values for each fieldThen copy and paste the results to ExcelYou can imagine that this gets a little very tediousWe’ve created this in Excel for youSaturday, 8 June 13
  • 32. 2. Server Docs & ConfigurationSaturday, 8 June 13
  • 33. 2. Server Docs & ConfigurationClick on the blue button beside 2. Server Docs & ConfigurationSit back and wait.This willOpen your Notes clientYou may be prompted for your Notes client passwordIt will then find your home notes serverIt will open the directory on your home notes serverIt will then collect all the servers listed in the ‘servers’ viewFor each server,It will copy the values from the server document and server configurationdocumentCollect and parse the resultsSaturday, 8 June 13
  • 34. 2. Server Docs & ConfigurationSaturday, 8 June 13
  • 35. 2. Server Docs & ConfigurationThis hasScanned all servers in your directoryListed all server document and server configuration document values from each serverParsed them into columns and rows within ExcelYou can nowRun comparisons and searches on this data using ExcelWe recommend:You run this on a weekly/monthly basis during any server upgrade process tosnapshot progress and/or provide backup of configuration informationUse it for server auditsSaturday, 8 June 13
  • 36. 3. Mail File Reporting - manuallyThis report quickly exports your inbox to an Excel sheetAllows fast comparison and lookupAllows an end-user to change sort order, compute new columnsYou can manually create this report by:Go to your inboxSelect all DocumentsEdit Menu, Copy as TablePaste into ExcelWhilst straightforward, may be error prone.We’ve created this in Excel for youSaturday, 8 June 13
  • 37. 3. Mail File ReportingSaturday, 8 June 13
  • 38. 3. Mail File ReportingClick on the blue button beside 3. Mail File ReportingThis willOpen your Notes clientYou may be prompted for your Notes client passwordIt will then open your mailfile on your home notes serverIt will open the InboxIt will then collect all the email information listed in the inbox andCollect and parse the resultsSaturday, 8 June 13
  • 39. 3. Mail File ReportingSaturday, 8 June 13
  • 40. 3. Mail File ReportingThis hasExported your inbox information to ExcelParsed them into columns and rows within ExcelYou can nowMine your inbox data using ExcelThis assumes you have far more information in there than we do!We recommend:You can give this to end users to help tame huge inboxesSaturday, 8 June 13
  • 41. 4. Server Disk SpaceThis report quickly allows you to examine your server disk capacityCapacity ManagementGood for proving to management thatYou have/have not enough diskThe disks are fast/not fast enoughYou can manually create this report by:Going into the administration client and for each serverNote the disk capacity, Free and %Free for each server hard driveRun ‘Show Stat Database.RM.Logger.IO.Avg.OS.Write.Time” &“Show Stat Database.RM.Logger.IO.Avg.Write.Time”Put them in the Excel sheet!You can imagine that this gets time-consumingSaturday, 8 June 13
  • 42. 4. Server Disk SpaceSaturday, 8 June 13
  • 43. 4. Server Disk SpaceClick on the blue button beside 4. Server Disk space....This willOpen your Notes clientYou may be prompted for your Notes client passwordIt will open the directory on your home notes serverIt will then collect all the servers listed in the ‘servers’ viewFor each server,It will figure out the data drive, DAOS drive and Transaction Log DriveFind out (using ‘Show Stat’) what each drive capacity and %Free space isFind out (using ‘Show Stat’) the performance of your disk subsystemCollect and parse the resultsThis meansYou have to have at least read-only access to the directoryYou must have at least read-only console access to all serversSaturday, 8 June 13
  • 44. 4. Server Disk SpaceSaturday, 8 June 13
  • 45. 4. Server Disk Space andThis hasScanned all servers in your directoryUnavailable servers are in redWorked out, using the servers notes.ini,the Data Drive, DAOS Drive and Transaction Logging DriveWorked out the drives capacityWorked out the drives performance (in milliseconds)Parsed them into columns and rows within ExcelYou can nowMeasure your entire environmentWe recommend:Saturday, 8 June 13
  • 46. 5. Inactive users - manuallyThis report quickly shows you users by last login dateHowever, this information is not kept on the person documentYou need to enable License Tracking on all your serversAnd have it run for a few weeks!This builds database ‘userlicenses.nsf’ on your administration serverWhich only contains a last logged in date for recent users.You can manually create this report by:Writing down each user and home mail serverChecking to see if they have a record in userlicenses.nsf. If so, note down the dateYou can imagine that this will take a very long timeWe’ve created this in Excel for youSaturday, 8 June 13
  • 47. 5. Inactive users - AutomaticallySaturday, 8 June 13
  • 48. 5. Inactive users - AutomaticallyClick on the blue button beside 5. Inactive UsersThis takes a long time on a large domainThis willOpen your Notes clientYou may be prompted for your Notes client passwordIt will then find your home notes serverIt will open the directory on your home notes serverIt will run down the ‘Person’ view and for each personLook at their entry on the userlicenses.nsf database on the admin serverIf it finds one, it copies the last login timestamp onto the spreadsheet.This meansYou have to have at least read-only access to the directorySaturday, 8 June 13
  • 49. 5. Inactive users - AutomaticallySaturday, 8 June 13
  • 50. 5. Inactive users - AutomaticallyThis hasScanned all users in your directoryFound any corresponding entries in userlicenses.nsfBroken them into a row containing username, home server and last login dateYou can nowSort by last login dateUse this to establish inactive usersWe recommend:You run this on a weekly/monthly basis as part of your normal reportingCheck with HR to see if these people are long-term absence, or actual leaversSaturday, 8 June 13

×