Jenkins Health Advisor by CloudBees

4 minute read

Jenkins Health Advisor by CloudBees (formerly known as "CloudBees Jenkins Advisor") proactively notifies you of problems with your Jenkins-based environment. Jenkins Health Advisor by CloudBees identifies numerous issues before they affect your users, including security vulnerabilities, performance problems, and plugin version issues. Best of all, Jenkins Health Advisor by CloudBees is constantly being improved by the CloudBees Support and Engineering teams to cover the most recent identified issues.

By default, you’ll receive a summary email whenever a new problem is identified in your Jenkins instance. You can configure the email address Jenkins Health Advisor by CloudBees uses in the Configuration section.

Initially, Jenkins Health Advisor by CloudBees sends an initial report that lists everything it detects in your system. Subsequent reports will only report changes from the initial report. It’s important to note that Jenkins Health Advisor by CloudBees only emails you if it finds something wrong: if it doesn’t find any problem in your system, it won’t send you email.

Jenkins Health Advisor by CloudBees identifies problems by scanning a Support Bundle from your Jenkins controller. The Support Bundle is generated on a daily basis and submitted to servers hosted by CloudBees by the Jenkins Health Advisor plugin.

Installation Requirements

The requirements for installing and using Jenkins Health Advisor by CloudBees are:

  • A Jenkins LTS instance of version 2.138.4 or newer.

  • CloudBees Jenkins Instances must be on version 2.138.4.3 or newer to install the Jenkins Health Advisor by CloudBees.

    • If you are using an older version than those listed and you are a CloudBees Subscriber, you can use the Assisted Update process by submitting a ticket to CloudBees Support. For more information, see the Required Data: Assisted Update article.

  • A Support Bundles generated from your controller must be less than 500MB to successfully send the report.

  • An Internet connection is required for the Advisor plugin to send Support Bundles from your controller. For more information, see the Network Configuration section.

Install Process

Jenkins Health Advisor by CloudBees should be installed on all controllers in your instance.

To install Jenkins Health Advisor by CloudBees on many controllers in a CloudBees CI or operations center environment, see Installing on controllers in an operations center cluster for instructions.
Jenkins Health Advisor by CloudBees is installed by default in CloudBees Jenkins Distribution instances. If you are using a CloudBees Jenkins Distribution instance you can directly configure the plugin.
  1. Ensure that you are signed in to the operations center as a user with the Administer permission.

  2. From the operations center dashboard, in the left pane, select Manage Jenkins.

    Manage Jenkins option
  3. Select Manage Plugins.

  4. On the Available tab, type Health Advisor by Cloudbees.

  5. Select Install in the column to the left of the plugin’s name.

  6. Scroll down, and select Install without restart.

Configuration

To configure your system to use Jenkins Health Advisor by CloudBees:

  1. Ensure that you are signed in to the operations center as a user with the Administer permission.

  2. From the operations center dashboard, in the left pane, select Manage Jenkins.

    Manage Jenkins option
  3. Under Troubleshooting, select Manage Jenkins Health Advisor by CloudBees.

    Manage Jenkins Health Advisor by Cloudbees opton
  4. Accept the Terms and Conditions.

  5. Enter a valid email address in the Email Recipients section. You can add additional email addresses to receive the report as a carbon copy (Cc).

    You will have to designate at least one email address to receive emails from the Advisor service. Check your email filters to ensure your email service can accept email from advisor-support@cloudbees.com.
  6. (Optional) Select Send a test email to verify that your Jenkins instance can reach the server and send you back an email.

  7. (Optional) Select Configure Data to configure what information is sent to the CloudBees server for analysis.

    Configure analyzed data
  8. (Optional) Select Supress the reminder to configure Jenkins Health Advisor by Cloudbees to disable the reminder message to configure Jenkins Health Advisor by Cloudbees. You may want to disable the reminder if your system is configured so that you cannot access the server from your instance.

  9. Select Save.

    After the plugin is properly configured, your Jenkins instance will be connected to the Advisor service. You will begin receiving reports to your defined email within 24 hours, if you used the default settings.

Configuration as Code Support

Version 3.0 of Jenkins Health Advisor by CloudBees includes support for Jenkins Configuration as Code. Here is a configuration sample:

advisor:
  acceptToS: true
  email: "jdoe@example.com"
  ccs:
    - "list1@example.com"
    - "list2@example.com"
  excludedComponents:
    - "ItemsContent"
    - "GCLogs"
    - "Agents"
    - "AgentsConfigFile"
    - "ConfigFileComponent"
    - "RootCAs"
    - "OtherConfigFilesComponent"
    - "HeapUsageHistogram"
  nagDisabled: false

Network Configuration

The servers infrastructure used for Jenkins Health Advisor by CloudBees is hosted on Amazon Web Services (us-east-1 region). The Jenkins instance must be able to connect to the server at insights.cloudbees.com on port 443 (https). Refer to AWS IP address ranges if a more specific IP address range definition is required.

Installing on controllers in an operations center cluster

To install, configure and update Jenkins Health Advisor by CloudBees on multiple CloudBees Jenkins controllers managed by a CloudBees operations center, you can use a Cluster Operation.

To create and configure a cluster operation:

  1. In Target managed controllers, add the controllers upon which you want to install or configure Jenkins Health Advisor by CloudBees. Make sure you’ve taken care of the prerequisites!

  2. Add the following steps:

    1. An Install plugin step with the plugin ID set to cloudbees-jenkins-advisor and no version: using no version instructs the system to use the most recent plugin available for the given controller.

    2. An Execute Groovy Script on Controller step using the following script (replacing the test@email.com email with your preferred email address):

      1. If you deploy a version of the plugin >= 3.0:

        import com.cloudbees.jenkins.plugins.advisor.*
        import com.cloudbees.jenkins.plugins.advisor.client.model.*
        
        println "Configuration of Advisor ..."
        
        def config = AdvisorGlobalConfiguration.instance
        
        config.acceptToS = true
        config.email = "test@email.com"
        config.ccs = [new Recipient("list1@acme.com"),new Recipient("list2@acme.com")] // optional
        config.nagDisabled = true // optional
        
        config.save()
        println "Configuration of Advisor done."
      2. If you deploy a version of the plugin < 3.0:

        import com.cloudbees.jenkins.plugins.advisor.*
        
        println "Configuration of Advisor ..."
        
        def config = AdvisorGlobalConfiguration.instance
        
        config.acceptToS = true
        config.isValid = true
        config.email = "jdoe@acme.com"
        config.cc = "list1@acme.com,list2@acme.com" // optional
        config.nagDisabled = true // optional
        
        config.save()
        println "Configuration of Advisor done."

Your controllers are now configured to use Advisor. You will receive the first report within 24 hours.