Monitoring and Logging for Artifactory Helm Installation

Monitor Artifactory Helm deployments via JMX MBeans: enable JMX, configure ports, and monitor pools, repositories, and storage.

Artifactory exposes MBeans under the org.jfrog.artifactory domain, which enables you to monitor repositories, executor pools, storage, and HTTP connection pools. To learn more, see Artifactory JMX MBeans.

To enable JMX in your deployment, use the following command.

Artifactory

artifactory:
 javaOpts:
   jmx:
     enabled: true

Artifactory HA

artifactory:
 primary:
   javaOpts:
     jmx:
       enabled: true

This enables JMX access to Artifactory on default port 9010. To use a different port, set artifactory.javaOpts.jmx.port.

To connect to Artifactory using JMX with jconsole or a similar tool, follow these steps.

  1. Enable JMX as described above and change the Artifactory service to be of type LoadBalancer.

    Artifactory

    artifactory:
      service:
       type: LoadBalancer
     javaOpts:
       jmx:
         enabled: true

    Artifactory HA

    artifactory:
      service:
       type: LoadBalancer
     primary:
       javaOpts:
         jmx:
           enabled: true
  2. The default setting for java.rmi.server.hostname is the service name (configurable via artifactory.javaOpts.jmx.host). To connect to Artifactory with jconsole, map the Artifactory Kubernetes service IP to the service name in your host file:

    Artifactory

    <artifactory-service-ip> artifactory-<release-name>

    Artifactory HA

    <artifactory-primary-service-ip>    artifactory-ha-<release-name>-primary
  3. Launch jconsole with the service address and port.

    Artifactory

    jconsole artifactory-<release-name>:<jmx-port>

    Artifactory HA

    jconsole artifactory-ha-<release-name>-primary:<primary-jmx-port>

Artifactory Filebeat Configuration in Helm Installation

To collect logs from your Artifactory installation and send them to a central log collection solution such as ELK, use the following option.

Create a filebeat.yaml file with the following content.

filebeat:
  enabled: true
  logstashUrl: <YOUR_LOGSTASH_URL>
  resources:
    requests:
      memory: "100Mi"
      cpu: "100m"
    limits:
      memory: "100Mi"
      cpu: "100m"

Optionally, customize the filebeat.yaml to send output to a different location and use it with your Helm installation or upgrade.

filebeat:
  enabled: true
  filebeatYml: |
    <YOUR_CUSTOM_FILEBEAT_YML>
helm upgrade --install artifactory -f filebeat.yaml --namespace artifactory jfrog/artifactory
helm upgrade --install artifactory-ha -f filebeat.yaml --namespace artifactory-ha jfrog/artifactory-ha

This sends Artifactory logs to the log aggregator configured in filebeatYml.