Coveo for Sitecore v5 is now available!

Troubleshooting Guide - On-Premises Issues

Sitecore and Coveo are made of several elements that must be able to communicate with one another. You need to open ports to let through communication between your front-end and back-end services. In a secured environment, most problems are caused by one of these elements being unable to establish communication with other parts of the setup. This topic is intended for developers and administrators who need an in-depth view of the interactions occurring between the services involved with Coveo for Sitecore when deployed in an on-premises environment.

Topology of Services and Components

As Coveo Enterprise Search (CES) is the deepest service behind the firewall, it is often a good strategy to validate the connectivity starting with the components near CES and then validate the interactions initiated by Sitecore.

Validating Services and Components Individually

Validating the Admin Service

Step 1 - Validate that the Windows service is running

  1. On the Admin Service server, open the Windows Services window.
  2. Validate that the Coveo Admin Service service is Running.
    1. If the service is not running, check the Admin Service log files. They are located in C:\Program Files\Coveo Enterprise Search 7\bin and named AdminService_yyyyMMdd.log.
  3. Validate that the service is running with the same identity as the Coveo Enterprise Search 7 x64 service.
    1. If the service is running under a different identity, update the identity and restart the service.

Step 2 - Validate that the Admin Service web service is responding

  1. On the Admin Service server, open a web browser on http://localhost/AdminService?wsdl.

    If the Admin Service is secure, use this address: https://localhost/AdminService?wsdl

  2. You should get an XML output similar to this one:

Validating CES

Step 1 - Validate that the Windows service is running

  1. On the CES server, open the Windows Services window.
  2. Validate that the Coveo Enterprise Search 7 x64 service is running.
    1. If the service is not running, check the CES  system log files. They are located under C:\CES7\Log and are named System_yyyy-MM-dd.log.

Step 2 - Validate that the Admin Tool is responding

  1. On the CES server, open a web browser and access http://localhost:8081.
  2. You should see the Admin Tool dashboard.

Step 3 - Validate that the Search Service is responding

  1. On the CES server, open a web browser and access https://localhost:52810/7.0/CoveoSearchService?wsdl.
  2. You should get a security warning similar to this one:

  3. Click the Proceed to localhost (unsafe) link. You should then see an XML output similar to this one:

Step 4 - Validate Security Protocols and Ciphers

  1. Ensure that TLS 1.1 and 1.2 protocols are enabled on the server. See SSL/TLS Support.

Validating RabbitMQ

Step 1 - Validate that the Windows service is running

  1. On the RabbitMQ server, open the Windows Services window.
  2. Validate that the RabbitMQ for Coveo service is running.

Step 2 - Validate that the RabbitMQ Management Tool is responding

  1. On the RabbitMQ server, open a web browser and access http://localhost:15672.
  2. You should see a login prompt similar to this one:

Step 3 - Validate that the service is responding

  1. On the RabbitMQ server, open a command-line prompt and type this command.

    netstat -baon

    The command above may output lots of information. It is handy to dump the command output into a file.

    netstat -baon > netstat.log

    In this particular case, the output will be saved in the netstat.log file in the current directory.

  2. The command output should contain this line:

     TCP    0.0.0.0:5682           0.0.0.0:0              LISTENING
     [erl.exe]
    

Validating the Search API

Step 1 - Validate that the Windows service is running

  1. On the Search API server, open the Windows Services window.
  2. Validate that the Coveo Search API service is running.
    1. If the service is not running, check the log files. They are located under C:\Program Files\Coveo Search API 8\logs and named CoveoSearchAPI.yyyy-MM-dd.log.

Step 2 - Validate that the service is responding

  1. On the Search API server, open a web browser and access http://localhost:8080.
  2. You should see a page similar to this one:

Validating the Sitecore Instance

  1. Validate that the Sitecore instance is up and running.
  2. For Sitecore 7.5+, validate that the MongoDB server is also running.

Validating the Interactions Between the Services and Components

Validating route #1 (from CES to RabbitMQ)

Source: CES

Destination: RabbitMQ

Protocol: TCP

Port: 5682

  1. Using the ping utility, ensure that CES can connect to the RabbitMQ service.

Validating route #2 (from CES to Sitecore)

Source: CES

Destination: Sitecore

Protocol: HTTP

Port: 80

  1. On the CES server, open a web browser and access http://sitecoreServer/sitecore modules/web/coveo/webservice/SitecoreWebService.asmx?wsdl where http://sitecoreServer is the <serverUrl> set in the config.

  2. You should get an XML output similar to this one:

Validating route #3 (from Admin Service to CES)

Source: Search API

Destination: CES

Protocol: HTTP

Port: 52810

The Admin Service must be installed on the same server as CES. Firewalls are not an issue usually.

  1. Open a command-line prompt and type this command:

    netstat -baon

  2. In the command output, look for this line:

     TCP    0.0.0.0:52800          0.0.0.0:0              LISTENING
     [CESService7.exe]
    
    1. If CES is not listening on the port, review the step Validating CES.

Validating route #4 (from Search API to CES)

Source: Search API

Destination: CES

Protocol: HTTP

Port: 52810

Step 1 - Validate that the Search API server can reach the CES Search Service

  1. On the Search API server, open a web browser and access https://cesServer:52810/7.0/CoveoSearchService?wsdl.
  2. You should get  a security warning similar to this one:

  3. Click the Proceed to cesServer (unsafe) link.
  4. You should get an XML output similar to this one:

Step 2 - Validate that the Search API service can return CES data

  1. On the Search API server, open a web browser (with an Active Directory identity having rights to connect to CES) and access http://localhost:8080/rest/search.
  2. You should get a JSON output similar to this one:

    1. If you get an infinite loop of authentication prompt, CES is probably not available. Review step Validating CES.

Validating route #5 (from Sitecore to Admin Service)

Source: Sitecore

Destination: Admin Service

Protocol: HTTP

Port: 80

  1. On the Sitecore server, open a web browser and access http://adminServiceServer/AdminService?wsdl.

    If the Admin Service is secure, access https://adminServiceServer/AdminService?wsdl.

  2. You should get an XML output similar to this one:

Validating Route #6 (from Sitecore to RabbitMQ)

Source: Sitecore

Destination: RabbitMQ

Protocol: TCP

Port: 5682

There is no easy way to validate that a message is sent correctly from the Sitecore server to RabbitMQ without using Coveo for Sitecore and the Sitecore instance.

  1. Using the ping utility, validate that the Sitecore server can access the RabbitMQ server.
  2. Validate that the firewalls are not blocking the communication.

Validating Route #7 (from Sitecore to Search API)

Source: Sitecore

Destination: Search API

Protocol: HTTP

Port: 8080

Step 1 - Validate that the Sitecore server can reach the Search API service

  1. On the Sitecore server, open a web browser and access http://searchApiServer:8080.

  2. You should get an output similar to this:

Step 2 - Validate that the Coveo for Sitecore REST endpoint can return the Search API data

  1. On the Sitecore server, open a web browser and access http://sitecoreServer/coveo/rest.
  2. You should get a JSON output similar to this one:

Validating Route #8 (from Sitecore to Sitecore through Load Balancer)

Source: Sitecore

Destination: Load Balancer

Protocol: HTTP

Port: 80

If Sitecore is secure, the protocol is HTTPS, and port is 443.

  1. From the Sitecore server, open a web browser and access http://sitecoreLoadBalancer/coveo/rest.
  2. You should get an output similar to this:

Validating Route #9 (from Sitecore to platform.cloud.coveo.com)

Source: Sitecore

Destination: platform.cloud.coveo.com

Protocol: HTTPS

Port: 443

  1. On the Sitecore server, open a web browser and access https://platform.cloud.coveo.com.
  2. You should get the Coveo Cloud login page.

Validating Route #10 (from Sitecore to usageanalytics.coveo.com)

Source: Sitecore

Destination: usageanalytics.coveo.com

Protocol: HTTPS

Port: 443

  1. On the Sitecore server, open a web browser and access https://usageanalytics.coveo.com.
  2. You should get the Coveo Usage Analytics homepage.
People also viewed