hzhao

Coresight 系列讨论 - Coresight 安装

Blog Post created by hzhao Employee on Aug 19, 2016

接上一个系列:Coresight 系列讨论 - 在Windows Server核心版安装和配置 ,原文连接为Coresight Squared - Coresight Installation

 

整个系列包括以下3部分:

Coresight 系列讨论 - 在Windows Server核心版安装和配置

PI Coresight安装 << 您现在这里

Kerberos以及更多

 

服务账号

 

在开始安装PI Coresight之前,先准备一个合适的服务账号。为了遵循最小权限的原则,建议准备三个分开的账号:

  1. 运行两个Coresight AppPools的域账号
  2. 运行PI WebAPI Service的域账号
  3. 运行PI Crawler Service的域账号

 

需要的权限:

 

PI Coresight服务账号

- 所有PI Coresight将会需要读取的AF和PI Data Archive内容的读取权限

- 任意PI ProcessBook画面导入文件夹的读取权限

 

PI Crawler 服务账号

- PI Data Archive中PIUSER, PIDBSEC, PIPOINT, PIMAPPINGS 表格的读取权限

- 所有PI Coresight用户将会需要搜索的AF和PI Data Archive内容的读取权限

 

PI Web API 服务账号

- 可以连接任意PI Coresight用到的PI或者AF服务器 (为了 PI Crawler可以成功生成索引)

- AF中事件框架的读取权限(事件框架不被crawler索引, PI Coresight 直接通过PI Web API搜索事件框架)

 

PI Coresight 安装

 

附件中的 setup.ini file (或从pastebin获取)是在Server核心版中安装PI Coresight的钥匙。这个setup 文件已经被修改过了,所以服务器角色和功能的检查已经被跳过了,PI Buffer Subsystem模块也被从安装过程中移除了,因为PI Coresight不需要它。

 

关于 .NET Framework 4.6的重要说明:

考虑到大量关于在安装.Net Framework 4.6过程中报告的缺少前置组件的报告,在安装PI Coresight之前先通过Windows 更新安装,NET Framework 4.6是一个比较好的方案

 

有两种方式完成这一点:

1) 慢:等待Windows更新自动安装

Windows更新是以自动模式运行的(我们在Coresight 系列讨论 - 在Windows Server核心版安装和配置 中已经提到),所以最终所有需要的更新都会被安装。

 

2) 快:在Server核心版上强制执行一个手动更新

要加快这个进程,将Windows Update切换到手动模式,并立刻安装所有可用的更新To speed up the process, switch Windows Update to Manual mode and installed all available Updates immediately:

a) 打开 sconfig > 选择 Option 5 – Windows Update Settings(Windows 升级设置) > 输入 m 切换 Windows Update 到手动模式。

 

b)sconfig 主菜单, 选择 Option 6 – Download and Install Updates(下载和安装更新) > 输入 a 来搜索所有的更新 > 再次输入 a 来安装所有的更新。

有些更新可能需要重启。上述步骤可能需要重复几次直到安装.NET Framework 4.6

 

c) 将Windows 更新切换回到自动模式 (sconfig > 选择 Option 5 – Windows Update Settings (Windows 升级设置)> 输入 a 切换Windows 更新到自动模式)

 

如果您想手动安装,当在Server核心版安装 .NET Framework 4.6 需要使用/q 开关 (静默安装) 。
这样安装将会通过运行 NDP46-KB3045557-x86-x64-AllOS-ENU.exe /q开始。因此,为了以防万一, /q 开关在修改过的 setup.ini 已经包含了

 

按照如下步骤进行操作:

 

1. 替换setup.ini

 

i. 在任意电脑上,运行PI Coresight的安装包,将其解压到一个文件夹(让我们把他叫做installsrc),并且在安装任何组件之前取消安装.

ii. 到 installsrc 路径中用修改过的setup.ini文件替换原有的setup.ini文件。

 

 

2.  将 installsrc 文件夹拷贝到Server核心版的机器上并安装Coresight。

 

使用Robocopy (在命令行中可用) 或者在Windows Explorer当中使用复制粘贴功能。

 

比如,从本地 C:\Temp拷贝Coresight 2016 安装文件夹到一台叫做CORE的远端的机器:

 

robocopy "C:\Temp\Coresight2016" "\\CORES\c$\Coresight2016" /e

 

 

 

使用命令行, 在Server 核心版机器上运行在 installsrc Setup.exe 并按照向导提示安装。PI System Explorer 可以选择不安装,因为它不是必须的,但是他会使得天机PI和AF Server更加容易。不管怎样,PI Coresight到这时已经被安装了。

 

 

3. 用 shutdown /r /t 0 命令重启电脑

 

4. 配置PI Coresight Application Pools让他用一个 service 账户运行

 

如果按照之前的post(Coresight 系列讨论 - 在Windows Server核心版安装和配置远程管理步骤已经完成,配置AppPool会变得容易很多,因为可以通过IIS manager远程操控

 

或者,使用 Powershell. 例如,配置 Coresight AppPools 用 OSI\CoresightSVC:

Import-Module WebAdministration;  
Set-ItemProperty iis:\apppools\coresightserviceapppool -name processModel -value @{userName="OSI\CoresightSVC";password="password";identitytype=3}  
Set-ItemProperty iis:\apppools\coresightadminapppool -name processModel -value @{userName="OSI\CoresightSVC";password="password";identitytype=3} 

 

5. 回收两个Coresight AppPools – 在命令行中运行 iisreset 或者在通过IIS Manager在远端回收AppPool

 

PI Coresight - 安装后工作

 

1. 给PI Coresight 和/或 PI Coresight 管理页面添加权限

 

PI Coresight 应用 - 本地 Windows 用户组 PI Coresight Users 在 PI Coresight 服务器上控制PI Coresight应用的权限。默认情况下经过验证用户组(Authenticated Users group)是其中一个成员。

PI Coresight 管理 - 本地 Windows 用户组 PI Coresight Admins 在 PI Coresight 服务器上控制 PI Coresight 管理的全向。另外一个 PI Coresight 管理员需要是另外一个本地用户组 PI Web API Admins 的成员,以便能允许或者禁用PI Coresight 的PI和AF的来源。默认只用安装Coresight的用户是被加入到这个组当中的.

 

本地用户和组可以从一个工作站上的服务器管理(Server manager)上访问。

 

或者,Poweshell可以被用来添加用户或组到本地用户组当中。比如在CORESIGHTSERVER机器上添加用户 IT.local\AverageJoePI Coresight Admins 本地用户组 ,运行:

$Computer = "CORESIGHTSERVER"  
$Group = "PI Coresight Admins"  
$Domain = "IT.local"  
$UserOrGroup = "AverageJoe"  
([ADSI]"WinNT://$computer/$Group,group").psbase.Invoke("Add",([ADSI]"WinNT://$domain/$userorgroup").path)  

 

Coresight可以配置用任何域或者本地组来运行,具体信息可以参考这篇文档

 

2. 手动创建PI Coresight SQL数据库

 

%pihome64%\Coresight\Admin\SQL 文件夹中所有文件拷贝到一台 SQL Server机器上。

 

使用 robocopy (或者 Windows Explorer复制粘贴功能):

robocopy "C:\Program Files\PIPC\Coresight\Admin\SQL" "\\SQLSERVER\c$\Coresight-SQL" /e  

 

到 SQL Server上,打开一个命令行,导航到含有Coresight SQL文件的文件夹并执行:

GO.BAT DBSERVER DBNAME CoresightAppPoolAccount output.log 

 

比如,在SQL Server MYSQLSERVER上创建一个SQL数据库PICoresight 假设 OSI\CoresightSVC 是运行Coresight AppPools的域账户:

GO.BAT MYSQLSERVER PICoresight OSI\CoresightSVC output.log 

 

对于额外的细节,请参考我们网上的文档

 

最后,连接Coresight应用到Coresight SQL数据库。在网页服务器上,导航到Coresight Admin page > Configuration > PI Coresight Database 并选择合适的SQL Server和SQL数据库

 

注意:因为这个已知的问题, 管理页面会显示Coresight SQL database的连接不健康。要证明这个状况是不是假阳性,到Coresight主页上,创建一个页面并保存,如果这些操作都成功,说明Coresight和SQL Database的连接是没有问题的。

 

3. 在PI Coresight管理页面配置允许的PI和AF数据源

 

额外的PI服务器和AF服务器需要被添加到已知服务器列表(KST)中才能被Coresight使用

 

选项 1) 使用 PI System Explorer (PSE)

 

如果 PSE 在安装AF Client时已经被安装了,可以用它来添加新的PI或者AF服务器。在Server核心版的机器上,使用命令行导航到 %pihome64%\AF (cd /d %pihome64%\AF) 路径下,接着运行AFExplorer.exe.

PSE将会正常打开,在 File > Connections 菜单中可以完成此项工作

 

Option 2) PSE 不可用 - 手动添加PI /AF服务器

 

AF 服务器的信息存储在 AFSDK.config 文件中 (位于 %programdata%\OSIsoft\AF). 在命令行中导航到相应路径,并打开它

cd /d  %programdata%\OSIsoft\AF  
notepad  AFSDK.config  

 

添加一个新的 AF 服务器到 PISystems 集合中:<PISystem name="AFSERVERNAME" host="AFSERVERHOST" protocol="Tcp" port="5457" accountName="" timeout="300" />. Server的唯一 ID 将会在第一次连接时自动生成

 

比如: <PISystem name="CSAFBUILD" host="CSAFBUILD" protocol="Tcp" port="5457" accountName="" timeout="300" /> 将会变成 <PISystem name="CSAFBUILD" id="638f25d4-21ed-44ea-92bb-84305d373578" host="CSAFBUILD" protocol="Tcp" port="5457" accountName="" timeout="300" /> 在第一次连接后

 

 

PI 服务器信息存储在注册表 HKLM\SOFTWARE\PISystem\PI-SDK\1.0\ServerHandles 位置

用Powershell添加新的PI Data Archive - 如果有需要,设置$PI 变量的值。

$PI = "PISERVERNAME"  
$Key = "HKLM:\SOFTWARE\PISystem\PI-SDK\1.0\ServerHandles\" + $PI  
If ( -Not ( Test-Path $Key)){New-Item -Path $Key -ItemType RegistryKey -Force}  
Set-ItemProperty -path $Key -Name "configString" -Type "String" -Value ""  
Set-ItemProperty -path $Key -Name "confirmed" -Type "String" -Value "0"  
Set-ItemProperty -path $Key -Name "defaultServer" -Type "String" -Value "0"  
Set-ItemProperty -path $Key -Name "defaultUser" -Type "String" -Value "pidemo"  
Set-ItemProperty -path $Key -Name "path" -Type "String" -Value $PI  
Set-ItemProperty -path $Key -Name "port" -Type "String" -Value "5450"  
Set-ItemProperty -path $Key -Name "serverID" -Type "String" -Value ""  

 

或者直接在注册表中创建相应的条目

在任何情况下,第一次连接PI Data Archive后ServerID属性会被自动添加。

 

到此为止,PI Coresight + Server 核心版的配置已经全部完成,下一章将介绍 Kerberos配置

Outcomes