The io_metricbeat
Puppet module will create Metricbeat module files to monitor PeopleSoft Weblogic domains. Running this module with the DPK will create files to track general health of the domain, the JVM status and health, and the session counts for the PIA application.
-
Clone the repository or add it as a submodule to the DPK.
$ cd <DPK_LOCATION> $ git submodule add https://github.com/psadmin-io/psadminio-io_metricbeat.git modules/io_metricbeat
-
Add the required
io_metricbeat::vars
(See the Reference section.) -
Run the module to test
$ puppet apply --confdir <DPK_LOCATION> -e "contain ::io_metricbeat"
-
(Optional) Include
io_metricbeat
as part of your DPK build by adding it to your DPK role.# pt_tools_midtier.pp if $ensure == present { contain ::pt_profile::pt_tools_preboot_config contain ::pt_profile::pt_domain_boot contain ::pt_profile::pt_tools_postboot_config contain ::pt_profile::pt_password contain ::io_metricbeat Class['::pt_profile::pt_<user>'] -> Class['::pt_profile::pt_tools_deployment'] -> Class['::pt_profile::pt_psft_environment'] -> Class['::pt_profile::pt_appserver'] -> Class['::pt_profile::pt_prcs'] -> Class['::pt_profile::pt_pia'] -> Class['::pt_profile::pt_tools_preboot_config'] -> Class['::pt_profile::pt_domain_boot'] -> Class['::pt_profile::pt_tools_postboot_config'] -> Class['::io_metricbeat'] }
The module will not modify PeopleSoft domains. It only creates modules.d/*.yml
files to be used with Metricbeat for monitoring PeopleSoft WebLogic domains.
Configuration options:
- Service Name: used by Elasticsearch/Opensearch Observability to group different monitors into a application.
- Monitor Location: Where
io_metricbeat
will write the monitor files. - Check Interval: How often to run the monitor (default is
300s
) - Web Port: Specify HTTPS port for the web monitor (default is
8443
). `https://`` is defaulted in the template files. - Fully Qualified Domain Name: The FQDN to use for connecting to the Weblogic Domain (default is
::fqdn
fact) - Hostname: Use for added fields in the Metricbeat data (default is
::hostname
fact) - User: The Weblogic user to connect to the
/management
API - Password: The Weblogic user password to connect to the
/management
API - SSL Verify (boolean): SSL Certificate Validation (default is
true
). Change tofalse
if you want to skip SSL Certificate Validation. - Trust CA (boolean): The monitor files will include a Certificate Authority file to verify HTTPS connections (default
true
- CA File: The Certificate Authority file to use for HTTPS validations (default is
/usr/share/metricbeat/trust.crt
) - Health (boolean): Enable creation of the Health monitor (default is
true
) - Health Fields: the fields to select from the
/serverRuntime
API (default isname,state,activationTime
) - JVM (boolean): Enable the creation of the JVM monitor (default is
true
) - JVM Fields: the fields to select from the
serverRuntime/JVMRuntime
API (default isheapSizeCurrent,heapFreeCurrent,heapFreePercent,heapSizeMax,name,type
) - PIA (boolean): Enable the creation of the PIA monitor (default is
true
) - PIA Fields: the fields to select from the
serverRuntime/applicationRuntimes/peoplesoft/componentRuntimes/PIA_
API (default isopenSessionsCurrentCount,openSessionsHighCount
)
This is the minimal configuration to add to psft_customizations.yaml
to enable io_metricbeat
. This will create monitor files for Metricbeat.
---
io_metricbeat::service_name: "%{hiera('db_name')}"
io_metricbeat::monitor_location: '/psoft/share/metricbeat/'
io_metricbeat::pwd: "%{hiera('webserver_admin_user_pwd')}"
# This can reference a metricbeat keystore value like this: "${WL_ADMIN_PWD}"
io_metricbeat::port: "%{hiera('pia_https_port')}"
io_metricbeat::ssl_verify: false
Here are 3 sample files that are created for Metricbeat:
modules.d/health-hrdev-hostname.yml
- module: http
metricsets:
- json
period: '300s'
hosts: ["https://<fqdn>:<port>/management/weblogic/latest/serverRuntime?fields=name,state,activationTime&links=none"]
ssl.verification_mode: 'none'
namespace: "weblogic"
method: "GET"
username: "<user>"
password: "${WL_ADMIN}"
service:
name: hrdev
fields:
hostname: hostname
id: weblogic-hrdev-hostname
modules.d/jvm-hrdev-hostname.yml
- module: http
metricsets:
- json
period: '300s'
hosts: ["http://<fqdn>:<port>/management/weblogic/latest/serverRuntime/JVMRuntime?fields=heapSizeCurrent,heapFreeCurrent,heapFreePercent,heapSizeMax,name,type&links=none"]
ssl.verification_mode: 'none'
namespace: "jvm"
method: "GET"
username: "<user>"
password: "${WL_ADMIN}"
service:
name: hrdev
fields:
hostname: hostname
id: weblogic-hrdev-hostname
modules.d/pia-hrdev-hostname.yml
- module: http
metricsets:
- json
period: '300s'
hosts: ["http://<fqdn>:<port>/management/weblogic/latest/serverRuntime/applicationRuntimes/peoplesoft/componentRuntimes/PIA_?fields=openSessionsCurrentCount,openSessionsHighCount&links=none"]
ssl.verification_mode: 'none'
namespace: "pia"
method: "GET"
username: "<user>"
password: "${WL_ADMIN}"
service:
name: hrdev
fields:
hostname: hostname
id: weblogic-hrdev-hostname
If you have a self-signed or specific CA file you want to use for verifying HTTPS connections, you can specify that file in configuration. The default is /usr/share/metricbeat/trust.crt
to be used with the docker.elastic.co/beats/metricbeat-oss:7.12.1
container image.
io_metricbeat::ca_file: '/psoft/share/ca/self-signed-trust.crt'
This value will be added to the monitor files like this:
hosts: ["http://<fqdn>:<port>/management/weblogic/latest/serverRuntime/applicationRuntimes/peoplesoft/componentRuntimes/PIA_?fields=openSessionsCurrentCount,openSessionsHighCount&links=none"]
ssl.certificate_authorities: ['/psoft/share/ca/self-signed-trust.crt']
You can also disable HTTP Verification by using the flag ssl_verify
.
io_metricbeat::ssl_verify: false
This will set ssl.verification_mode: 'none'
in your monitor files.