One of the benefits of using CardioLog Analytics is a complete ownership of your own data, on your own servers, which allows you to control both privacy and security. This also means that redundancy for the CardioLog server is the customer's responsibility to maintain. This article contains several recommedations for optimal operation.
Contents
- How to Configure NLB for Usage Data Collection
- How to Configure CardioLog in the Event of a SharePoint Farm Failover
How to Configure NLB for Usage Data Collection
For portals with 5 million events or more per month, we recommend using network load balancing (NLB) for usage data collection. Data collection is still handled by the EventCollector and CardioLogAgent web applications, but multiple instances of these web applications can work in parallel. Each instance will simultaneously write its own data into the CardioLog database.
The architecture for NLB should be as follows:
- Main server hosting a full CardioLog installation.
- At least one additional web front end (WFE) that hosts the EventCollector and CardioLogAgent web applications.
Note: You can use the SharePoint WFEs or dedicated servers to host the EventCollector and CardioLogAgent web applications. When deploying the CardioLog Analytics SharePoint feature for usage tracking, the CardioLogAgent web application is automatically installed on your SharePoint WFEs under each SharePoint web application _layouts folder. You can install the EventCollector web application in the same location.
How to Install the CardioLog Data Collection Web Applications on a Web Front End (WFE)
- Create a new EventCollector web application on your WFE. For the new web application, create a dedicated application pool. Set ASP.NET version to 2.0 and grant the application pool account the "db_owner" role on the CardioLog database. Set the web application authentication method to Anonymous access (disable Windows Authentication).
- Copy the files from the CardioLog server [CardioLog Installation Directory]\EventCollector to the new directory.
- Create a new CardioLogAgent web application on the WFE. For the new web application, create a dedicated application pool and set ASP.NET version to 2.0. Set the authentication method of the web application to Windows Authentication (disable Anonymous access).
- Copy the files from the CardioLog server [CardioLog Installation Directory]\CardioLogAgent to the new directory.
Note: When deploying the CardioLog Analytics SharePoint feature for usage tracking, there is no need to create a new CardioLogAgent web application. - Edit the following keys in the CardioLogAgent\web.config file, located in the <appSettings> section and enter the NLB FQDN -
<add key="EventCollectorPath" value="http[s]://[domain name]/EventCollector/monitor.aspx" />
<add key="CardioLogAgentRoot" value="http[s]://[domain name]"/>
Where [domain name] is the NLB FQDN for the web applications.
Note: When the EventCollector and CardioLogAgent web applications are installed on your SharePoint WFEs under each SharePoint web application _layouts folder, edit the following keys in the CardioLogAgent\web.config file, located in the <appSettings> section, as follows:
<add key="EventCollectorPath" value="http[s]://[domain name]/_layouts/EventCollector/monitor.aspx" />
<add key="CardioLogAgentRoot" value="/_layouts"/>
Where [domain name] is the SharePoint web application FQDN.
- Edit the following keys in the Java Script tracking code.
var bodycssurl = 'http[s]://[domain name]/CardioLogAgent/GetBodyStyle.aspx?rc=true'
var bodycssurl = 'http[s]://[domain name]/CardioLogAgent/GetBodyStyle.aspx?u=' + window.location + '&env=[SharePoint version]&_random='+Math.random()*100000;
ca.src = 'http[s]://[domain name]/CardioLogAgent/ca.aspx?_random='+Math.random();
tt.src = 'http[s]://[domain name]/CardioLogAgent/AgentEmbed.aspx?env=[SharePoint version]&r='+Math.random()*100000;
Note: When deploying the CardioLog Analytics SharePoint feature for usage tracking, there is no need to update the tracking code.
By default, the Java Script tracking code is embedded within a common Java Script file on your SharePoint WFEs -
For MOSS 2007 only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\1033\core.js
For SharePoint 2010 only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\1033\init.js
For SharePoint 2013 only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\init.js
For MOSS 2007 with "CardioLog Analytics" SharePoint Feature only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\CardioLogAgent\CardioLogAgent.js
For SharePoint 2010 with "CardioLog Analytics" SharePoint Feature only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\CardioLogAgent\CardioLogAgent.js
For SharePoint 2013 with "CardioLog Analytics" SharePoint Feature only:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\CardioLogAgent\CardioLogAgent.js
OR
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\CardioLogAgent\CardioLogAgent.js
The code is located at the end of the file, between these comments: //Intlock tracking code start, and //Intlock tracking code end
[domain name] - the NLB FQDN for the web application. When deploying the CardioLog Analytics SharePoint feature for usage tracking, there is no need to edit these keys (the default value is "/_layouts").
[SharePoint version] - MOSS2007, SP2010 or SP2013
An Active-Active configuration for the entire CardioLog solution is not supported.
An Active-Passive configuration for the entire CardioLog solution is available at an additional cost (the dormant server requires a production license).
How to Configure CardioLog in the Event of a SharePoint Farm Failover
- Install the CardioLog Analytics Tracking Agent Feature on the backup farm as detailed here
- Verify that the CardioLog user account has read permissions to the SharePoint databases and a TEMPLATE folder on the backup farm.
- In case of a failover,
- Go to Administration > System Configuration > SharePoint Tree Adaptor > click on your SharePoint farm
- In the SharePoint Tree Adaptor dialog, fill out the following fields for the backup farm:
- Database Server - The SharePoint database instance name.
- SharePoint Configuration Database Name - The SharePoint configuration database name. eg,. "SharePoint_Config"
- Authentication - Database authentication type (Windows Integrated or SQL Authentication).
- SharePoint TEMPLATE Directory - This is the full path for the SharePoint TEMPLATE directory. eg,. "\\<sharepoint server name>\C$\Program Files\Common Files\Microsoft Shared\Web Server Extensions\XX\TEMPLATE\" (Where XX is 12 for MOSS 2007; 14 for SharePoint 2010; 15 for SharePoint 2013) - Click Save.
SharePoint Adaptor System Configuration Preference Window
In versions lower than 2.0.8.0,
- Install the CardioLog Analytics Tracking Agent Feature as detailed here OR manually add the Tracking Agent JavaScript Code (located in the [CardioLog Installation Folder]\CardioLogAgent\sp_js_tracking_code.txt file) to each SharePoint WFE. The tracking code should be placed in a SharePoint common .js file.
Edit the [ca.src] and [script.src] values (copy the values from your current code):
[ca.src]:
ca.src='http://[server name]:[port]/CardioLogAgent/ca.aspx?_random='+Math.random();
[script.src]:
tt.src='http://[server name]:[port]/CardioLogAgent/AgentEmbed.aspx?env=[SharePoint version]&r='+Math.random()*100000;http://[server name]:[port]/: 'http://cardiolog/server name:port/'
[SharePoint version]: MOSS2007, SP2010 or SP2013 - Verify that the CardioLog user account has read permissions to the SharePoint databases and the TEMPLATE folder on the backup farm.
- Keep an alternate Web.config file for the CardioLog [SP20XXTree] web application (where XX is 07 for MOSS 2007; 10 for SharePoint 2010; 13 for SharePoint 2013), which includes the proper configuration settings for connecting to the SharePoint backup farm servers:
- Edit the SharePoint database connection string in the web.config file accordingly:
<connectionStrings>
<add name="configDB" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=[SharePoint Configuration Database Name];Data Source=
[SharePoint Database Server Name]" />
<add name="contentDB" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog={0};Data Source={1}" />
</connectionStrings>
[SharePoint Configuration Database Name] - edit the SharePoint config database name
[SharePoint Database Server Name] - edit the SharePoint database server name - Edit the following keys in the web.config file:
<add key="includedWebApps" value="[SharePoint web application root URL]" /><add key="SharePointTemplatePath" value="[SharePoint TEMPLATE path]" />
[SharePoint web application root URL] - A '*' separated list of the monitored SharePoint web applications in the farm
[SharePoint TEMPLATE path] - Edit the SharePoint TEMPLATE folder path:
\\SharePoint WFE server name\C$\Program Files\Common Files\Microsoft Shared\Web Server Extensions\XX\TEMPLATE\ (Where XX is 12 for MOSS 2007; 14 for SharePoint 2010; 15 for SharePoint 2013) - Edit the SharePoint database connection string in the web.config file accordingly:
- Test the configuration of the alternate Web.config file by dropping the file to the [SP20XXTree] directory and browsing to http:// [CardioLog server name]/[SP20XXTree]/default.aspx and verify that you get an XML response displaying the portal tree structure.
- In case of a failover, drop the alternate Web.config file into the [SP20XXTree] directory.
[SP20XXTree] - Where XX is 12 for MOSS 2007; 14 for SharePoint 2010; 15 for SharePoint 2013