Google Cloud Platform Compute Engine
This document describes the Google discovery functionality of PandoraFMS.
- Introduction
- Compatibility matrix
- Prerrequisites
- Parameters and configuration
- Manual execution
- Discovery
- Agents and modules generated by the plugin
Introduction
The purpose of this plugin is to monitor instances and areas of Google Cloud, using key metrics related to the CPU, networks, IOPS and disks that are essential to control and monitor these machines and to guarantee optimal performance, solve problems, plan scaling. , comply with SLAs and improve security.
The plugin connects to the Google API and monitors zones and instances using the aforementioned metrics, generating an agent for each zone and instance via XML that is sent to the Pandora server.
Compatibility matrix
Systems where it has been tested | Rocky linux, Fedora 34 |
Systems where it works | Any linux system |
Prerrequisites
- Connectivity to the google API
The plugin is a binary that contains packaged dependencies so it is not necessary to install any type of dependency for its use. - Privileges
The account used to authenticate when executing the plugin will require the following privileges:
Parameters and configuration
Parameters
--conf | Path to configuration file |
Configuration file (--conf)
agents_group_name = < Name of the target group for the created agents >
threads = < Number of execution threads, each zone/instance will be equally distributed in the number of threads >
interval = < Interval in seconds for agents and for metric analysis >
transfer_mode = < Transfer mode, tentacle or local >
tentacle_ip = < IP of the target machine for the created agents >
tentacle_port = <tentacle port, default: 41121>
tentacle_opts = < Tentacle client additional options >
data_dir = < (Only activated if the transfer_mode is local) Destination path for the XML of each agent, by default "/var/spool/pandora/data_in/" >
advance_monitoring = < Activate with 1 to enable generalized monitoring (these modules will only be created in the agents of the instances that are running) >
cpu_summary = < Enable with 1 to enable CPU monitoring >
iops_summary = < Enable with 1 to enable IOPS monitoring >
disk_summary = < Enable with 1 to enable disk monitoring >
network_summary = < Enable with 1 to enable network monitoring >
stats_agent = < Activate with 1 to enable a global agent that will monitor based on the task created and the parameters used >
stats_agent_name = < Name for the agent that is activated with the "stats_agent" parameter. If you do not use and "stats_agent" is enabled, the agent will be called "Google Cloud Platform" by default >
gcp_zones = < List with the zones to monitor (when a zone is marked for monitoring, it automatically monitors all the instances found within that zone) >
gcp_instances = = < List with the instances to monitor >
creds_b64 = < Base64 credentials in the JSON file to authenticate >
Example
agents_group_name = google
threads = 5
interval = 300
transfer_mode = tentacle
tentacle_ip = 172.42.42.101
tentacle_port = 41121
data_dir = /var/spool/pandora/data_in/
general_monitoring = 1
cpu_summary = 1
iops_summary = 1
disk_summary = 1
network_summary = 1
stats_agent = 1
stats_agent_name = googleCloud
gcp_zones = ["asia-east1-a","asia-east1-b","asia-east1-c","us-west4-b"]
gcp_instances = ["instance-1","instance-2"]
creds_b64 = AFBA0LTM4MjMxMCIgInByb2plY3RfaWQKAFBA0LTM4MjDjdmJDHDHDHDIfa2V5X2lkIjogIjhmOThkOWY2YzUyYjU2OGUzNzMzOTQ3OTVjYzJjYTEzNGQwYjBkYHMhGDHDjDmUiLAogICJwcml2YXRlX2tleSI6ICItLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS1cbk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRRHd6aUQ1OW5rUk9EdmdcbjhsanZ6a1JKakpNcHVXWnFaSjRuMUlyejZzUlpXZ3FQa1FIZW5JUlBGa3MwUTlBYXNhak1yS2FNcm5DNTdpSG5cbncxUUFUa0VLRXdyVDFoMEdZZjE5UWRwU1dMcjRGeVNad3RtTDgrZmhWVTNhdHBJNjBSTnMvMy9EUXZ0MFYrQ2FcblkrK3NNWXZjQ0liMUJadzIzRjZ5WEhyTy9jcjlGV3BPSVE5anVEK3duK01yMzA0Q1Y4dzJLV3hiTlJSVmtCb29cblllK1lSNzBkaWVyc1JZdERuVzR0TFpTRWt6RVA4S2FwcDJ6cHJNRGtJUUcxOFhMelc5d0pqMVl2TlJtUFVCZ2RcbjV5SHA4VnQ0Y3ZMR0Z5UFFHMEMwaS9JUXRZeUUxMHRTT29YMFZOc1h4NXliL3dQRnQ3VDhGLzROaGJ1VEdjZktcblgrQkM1dnQ1QWdNQkFBRUNnZ0VBQUk2Y2RWNGI0MWl5b1hWWWhHMkJEcWI5cnNiRE5TMWswZnhjUnY1WG5YNWNcbi9zb0hvK29EcmJzOXZLOW1WVXZDK3orS1JGSW0wMWZ4SXNxQ2xVSkFSUXNGOHVFRXVQSlg1eVkzdFUzL3huSGpcbkxmanh4WHg3R3pHV3huK3NNcVRoWWRRTVEwVlJITjVodEx6K3BzNFZKbnRZU0ZZc3pXR2x2ZDBuemNlNCtWVElcbndQN2gvZmN6TS9wMWd1SmhYbDlXWGJhUyszZGQrbTduenNZV0FjY2xxbm1QNlRDTGQwa05MeDI2R1pyL3R1OENcblpHSkVRWWF6VkZJK2hKeHFuQWZmZWxoR3A1N1JtTnVYMTV4VFRjSWF6M0tVN0V5Q21SMldwcUEzcG1CdnhKQ0NcblpPMHhQb1JwTk5RcnExNnNKRzQ2ckljTm5OY1dBaTl6S1hvc0d4WStOUUtCZ1FENktGRHdkcjFiYVhiRE1hZ3ZcbmV1UEdMeXE4ZGFFSVlmNk0zZ0l1OCttNnptWDFlZERiZ01EbWl4bWViclozRE1uZEMvcE5BRkN6emRnWVRGMXBcbjJxUDBNY0lrbE9hM0xCd0wyMXRUV1UwNjl1QWZadmw1aGhrclQrUnlKSURTVUNUUTNOY0JyZHowajROaWdjRVBcbmtac1NRU2cyK1ljaS9haXlSMVJtcGk1TGl3S0JnUUQyYmVWRDZtR2tGcnJSOTVLWWhSYm9Ub2ZNaUlpTGNiKzhcbkFnUW1kV29VRzdpRWJPV0F2Q24rcnZwdzJ0YWFqN0liM0piOVVjYlBPdGUrQi9ZdTNnTCszNDZVMlZOa2phVjZcbmRrd0hhMzVDd2JyY3RIYmg4L1V0TC9zNEFIVy83SjlJL3lxMitTTTN1a2tiSkN6S01oc3ZKbTNFS0NVMGQvYUNcbnUrUFRzeWJGaXdLQmdRRDBuWG5RT2Z3ZUtEblcwM2JudnQ1K1RGOFkzRmwwVGdiUkRzTEowUDlzQ1NvUWFXYi9cblRaN1RrWStpcWhaSXdidWZLSGhBMVo4VXc2T2Mxd2U5Vyt4WS9GTWczRzNqRGdINjRpd2lpNytHZWlSYzhKL2dcbjRtMDRPaTVrSXlmSkFFK1A0WE5ways3dFFteXlaYms0bFNRekxIMjdqRE5GMXc4Z0Rib05pbERZMHdLQmdDUUVcbnZnem1OaTFRc1MrOVd1ejJEdm9YZUZ2WjNQTmN4ZVNKK3VkUUpCZ2FVU2J4NzcyWVF4OFpuanRla1IxNFFWVTNcbk1jNkc1R01udTU3bjlRQzJySU5xVTZISC9odGxaTGw0anZaS3JPSy9CRHY4R0tCQUV5YnVxMjV0Q3NqcG9nSitcbllWVHJKMDJlNmM2UXhBY3R1YkZ6a1htcFVIN1J4Zk1uMlUzNUVvS3ZBb0dCQU5oOGNtQ21rTU5KSHl0aHpoNlJcbmVoVEhWVnpoNk00d3I4RzJkTVFTRVlURG9oZU1McFVWNDBYdm5oYy8xcTRPQXo1Z1lJUVR0SVBmdVhJaUg3eHZcbk9FNFRIM2ZEU1F2T2hYSGJNalAySDZFeXVaVktSTnBLRHFiREJHNU5UUEtVVFMyR1hvYnlOeFc3QmtjbXNQRTlcbkcwcGx4eVc0MWttRmlpV0VrM2d6Vlp4cFxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwKICAiY2xpZW50X2VtYWlsIjogInBhbmRvcmFmbXNAY2FwYWJsZS1oYW5nb3V0LTM4MjMxMC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCiAgImNsaWVudF9pZCI6ICIxMDI2NTI4Mzc2NjU3ODA4NDc4OTgiLAogICJhdXRoX3VyaSI6ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCIsCiAgInRva2VuX3VyaSI6ICJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsCiAgImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6ICJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjEvY2VydHMiLAogICJjbGllbnRfeDUwOV9jZXJ0X3VybCI6ICJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9yb2JvdC92MS9tZXRhZGF0YS94NTA5L3BhbmRvcmFmbXMlNDBjYXBhYmxlLWhhbmdvdXQtMzgyMzEwLmlhbS5nc2VydmljZWFjY291bnQuY29tIgp9Cg==
Manual execution
The plugin execution format is as follows:
./pandora_gcp_ce --conf < path to configuration file >
For example:
./pandora_gcp_ce --conf /usr/share/pandora_server/util/plugin/gcp.conf
The execution will return an output in JSON format with information about the execution, and will generate an XML file for each monitored agent that will be sent to the Pandora FMS server by the transfer method indicated in the configuration.
For example:
{"summary": {"Total agents": 35, "Zones agents": 5, "Instances agents": 29}}
Discovery
This plugin can be integrated with Pandora FMS Discovery.
To do this, you must load the ".disco" package that you can download from the Pandora FMS library:
https://pandorafms.com/library/
Once loaded, Google Cloud Platform Compute Engine environments can be monitored by creating Discovery tasks from the Management > Discovery > Cloud section.
For each task, the following minimum data will be requested:
- GCP Credentials: Connection credentials to the Google Cloud Platform API to be used by the task. They must be previously registered in the Pandora FMS credential store.
- Max threads: To optimize the execution time, multiple threads can be configured to monitor the agents of the task. Keep in mind that setting up multiple threads can increase the CPU usage of the task.
- Tentacle IP – Tentacle server IP to send agent data to. Normally this parameter will not be modified.
- Tentacle port: Tentacle server port to send data to. Normally this parameter will not be modified.
- Tentacle extra options: Additional options for sending data through the Tentacle client. Normally this parameter will not be modified.
- Add global stats agent: If activated, a global agent will be generated with task statistics.
- Stats agent name: It will allow you to indicate the name of the agent for global statistics of the task. If no name is provided, the default name of the plugin will be used.
If the credentials provided are correct and the Pandora FMS server is able to connect to the Google Cloud API, you will be able to see a tree with the Google Cloud Platform Compute Engine zones and instances, which can be marked for monitoring.
If a zone is selected, in addition to the zone itself, all the instances it contains will be monitored (both at the time of configuring the task and later if new instances are included).
If specific instances are selected, they will be monitored regardless of whether their zones have not been selected.
Finally, you can adjust the monitoring you want to obtain for each agent:
- Scan and general monitoring: If activated, the task will be enabled to obtain additional monitoring for the agents, described in the following fields.
- CPU performance summary: If activated, the CPU performance modules will be included in the monitoring.
- IOPs Performance summary: If enabled, the IOPs performance modules will be included in the monitoring.
- Disk performance summary: If enabled, the disk performance modules will be included in the monitoring.
- Network performance summary; If enabled, the network performance modules will be included in the monitoring.
Tasks that are successfully completed will have an execution summary with the following information:
- Total agents: Total number of agents generated by the task.
- Zones agents: Total number of zone agents generated by the task.
- Instances agents: Total number of instance agents generated by the task.
The tasks that are not completed successfully will have an execution summary recording the errors produced.
Agents and modules generated by the plugin
Running the plugin will create the following agents and modules:
- global agent
<Name used with the parameter "stats_agent_name" or failing that "Google Cloud Platform" > |
modules
GCP CE Instances count | Number of total instances monitored by the plugin |
- One agent for each monitored area.
<Zone name> |
modules
summary.google.compute engine.CPUUtilization | Average CPU percentage used for instances in this zone |
summary.google.compute engine.DiskReadBytes | Summary of the number of bytes read from disk for each instance in this zone |
summary.google.compute engine.DiskReadOps | Summary of the number of read operations performed on the disk of each instance in this zone |
summary.google.compute engine.diskWriteBytes | Summary of the number of bytes written to disk for each instance in this zone |
summary.google.compute engine.DiskWriteOps | Summary of the number of write operations performed on the disk for each instance in this zone |
summary.google.compute engine.instances | Number of instances monitored in this zone |
summary.google.compute engine.NetworkPacketsIn | Summary of the number of incoming network packets for each instance in this zone |
summary.google.compute engine.NetworkPacketsOut | Summary of the number of outgoing network packets for each instance in this zone |
- One agent for each monitored instance
<Instance name> |
modules
State | State of the machine, in string format |
Instance State (bool) | State of the machine, 1 if it is running, 0 otherwise |
CPUUtilization | Percentage of CPU utilization used |
DiskReadBytes | Number of bytes read from disk |
DiskReadOps | The number of read operations performed on the disk |
DiskWriteBytes | Number of bytes written to disk |
DiskWriteOps | Number of write operations performed on the disk |
NetworkPacketsIn | The number of incoming network packets |
NetworkPacketsOut | The number of outgoing network packets |