# Pandora office 365

# Introducción

Está definido como un plugin de servidor, que genera un agente con cada servicio disponible de office 365 y el estado de sus features.

# Matriz de compatibilidad

Desarrollado en python 3.8. Se distribuye el binario compilado que no requiere dependencias extra.

# Pre requisitos

**Sistema**  
Al ser un binario no necesita dependencias específicas para la ejecución del mismo.  
  
**En el entorno de Pandora**  
Se requiere que el plugin server esté habilitado  
  
**Permisos Generales**

<span style="text-decoration: underline;">*General graph para autenticar*</span>

[![image-1652093564003.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/image-1652093564003.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/image-1652093564003.png)

*<span style="text-decoration: underline;">Para acceder al service health y sacar los modulos</span>*

[![image-1652093640523.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/image-1652093640523.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/image-1652093640523.png)

*<span style="text-decoration: underline;">Permisos logs</span>*

[![image-1652093728668.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/image-1652093728668.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/image-1652093728668.png)  
  
Y los siguientes elementos de autenticación:  
● TenentID  
● ClientID  
● Secret

# Configuración

El plugin se ejecuta definiendo los parámetros correspondientes:

```
usage: pandora_o365 [-h] -c CLIENTID -t TENANTID -s SECRET [-a AGENT_NAME]
                    [-p PREFIX] [-g GROUP] [-i INTERVAL] [-d DATA_IN] [-l]
                    [-n] [--tentacle_address TENTACLE_ADDRESS]
                    [--tentacle_port TENTACLE_PORT] [--tmp TMP]

Pandora Office365 Status plugin ver. 3.0

optional arguments:
  -h, --help            show this help message and exit
  -c CLIENTID, --clientid CLIENTID
                        Authentication O365 client id
  -t TENANTID, --tenantid TENANTID
                        Authentication O365 Tenant id
  -s SECRET, --secret SECRET
                        Authentication O365 Secret
  -a AGENT_NAME, --agent_name AGENT_NAME
                        Defined agent_name , default: pandora_o365
  -p PREFIX, --prefix PREFIX
                        Prefix for agent names, default O365
  -g GROUP, --group GROUP
                        Pandora agent group, default unknown
  -i INTERVAL, --interval INTERVAL
                        Agent interval in seconds, default: 300
  -d DATA_IN, --data_in DATA_IN
                        Pandora server datain directory, default:
                        /var/spool/pandora/data_in/
  -l, --logs            Get incidents messages to Pandora log collector
  -n, --nodata          Ignores module data (usefull for log retreaving only)
  --tentacle_address TENTACLE_ADDRESS
                        Define tentacle address for remote execution,
                        Default=none
  --tentacle_port TENTACLE_PORT
                        Define tentacle port for remote execution,
                        Default=41121
  --tmp TMP             Pandora temporary file directory for remote execution
                        only, default: /tmp/
```

Los campos obligatorios son los campos de autenticación: clientid, tenantid y secret.  
  
Si se ejecuta sólo con los campos requeridos se obtendrán los datos de los Agentes/módulos correspondiente a cada servicio.  
Campos Opcionales:

AGENT\_NAME: Nombre del agente que contendrá los módulos de los servicios, por defecto es pandora\_o365.  
  
PREFIX: Prefijo para los agentes generados por la ejecución del plugin por defecto es O365  
  
GROUP: Grupo al que se marcará en los XMls para asignar los agentes en Pandora. Este grupo debe existir en el entorno, de lo contrario los agentes se asignan al grupo por defecto: unknown  
  
INTERVAL: Intervalo definido para cada agente creado por defecto 300 segundos, debe ser igual o superior al intervalo de ejecución del plugin.  
  
DATAIN: Ubicación del directorio data in del entorno de Pandora FMS, por defecto /var/spool/pandora/data\_in  
  
TMP: Directorio temporal donde se almacenan los datos antes de copiarse al data in. Por defecto /tmp  
  
LOGS: Habilita la captura de logs de los mensajes de incidencia de o365 y los envía al colector de logs de pandora. (El colector de logs debe estar configurado en el entorno). Por defecto deshabilitado.  
  
NODATA: Ignora los datos de agentes y módulos, útil si se quiere ejecutar el plugin solo para recolectar los logs. Por defecto deshabilitado

UTF8 : Utiliza utf8, se pone a 0 si el shell no está en valores utf8 será en bytes crudos, por defecto: 1

TENTACLE\_ADRESS: Ip del server de tentacle al que mandar los datos.

TENTACLE\_PORT: Puerto de tentacle, por defecto es el 41121.

# Ejecución manual

Ejecución del plugin:   
  
Versión binaria:

```
./pandora_o365 -c <client-id> -t <tenant-id> -s <secret>
```

Opcionalmente se pueden definir parámetros opcionales como la ubicación del directorio data\_in (-d), un prefijo para el nombre de los agentes generados (-p), el intervalo de tiempo definido para el agente (-i) y el grupo al que se asignan los agentes (-g).

```
./pandora_o365 -c <client-id> -t <tenant-id> -s <secret> -d <data-in directory> -p <prefix> -i <interval> -g <group-game> -l
```

# Módulos generados por el plugin

El plugin creará un agente con el nombre que nosotros configuremos con el nombre que usemos con el parametro "agent\_name", dispondrá de un módulo de **status** y otro de **active** issues por cada servicio. Por defecto : "Pandora\_O365\_" .

Por ejemplo :

<table border="1" id="bkmrk-o365_bookings_active" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_Bookings\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_Bookings\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_cloudappsecurit" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_cloudappsecurity\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_cloudappsecurit-0"><td class="datos " id="bkmrk-o365_cloudappsecurit-1" style="width: 100%;">O365\_cloudappsecurity\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_dynamicsax_acti" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_DynamicsAX\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_DynamicsAX\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_dynamicscrm_act" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_dynamicscrm_act-0"><td class="datos2 " id="bkmrk-o365_dynamicscrm_act-1" style="width: 99.8765%;">O365\_DynamicsCRM\_active\_issues</td></tr><tr><td style="width: 99.8765%;">O365\_DynamicsCRM\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_exchange_active" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_Exchange\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_Exchange\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_forms_active_is" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_Forms\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_Forms\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_intune_active_i" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_Intune\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_Intune\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_kaizalamessagin" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_kaizalamessagingservices\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_kaizalamessagingservices\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_lync_active_iss" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_lync_active_iss-0"><td class="datos2 " id="bkmrk-o365_lync_active_iss-1" style="width: 99.8765%;">O365\_Lync\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_lync_status"><td class="datos " id="bkmrk-o365_lync_status-0" style="width: 99.8765%;">O365\_Lync\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_microsoftflowm3" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_MicrosoftFlowM365\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_MicrosoftFlowM365\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_microsoftflow_a" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_microsoftflow_a-0"><td class="datos2 " id="bkmrk-o365_microsoftflow_a-1" style="width: 99.8765%;">O365\_MicrosoftFlow\_active\_issues</td></tr><tr><td style="width: 99.8765%;">O365\_MicrosoftFlow\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_microsoftteams_" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_microsoftteams_-0"><td class="datos2 " id="bkmrk-o365_microsoftteams_-1" style="width: 99.8765%;">O365\_microsoftteams\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_microsoftteams_-2"><td class="datos " id="bkmrk-o365_microsoftteams_-3" style="width: 99.8765%;">O365\_microsoftteams\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_mobiledeviceman" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_MobileDeviceManagement\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_mobiledeviceman-0"><td class="datos " id="bkmrk-o365_mobiledeviceman-1" style="width: 100%;">O365\_MobileDeviceManagement\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_o365client_acti" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_O365Client\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_O365Client\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_officeonline_ac" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr class="datos2" id="bkmrk-o365_officeonline_ac-0"><td class="datos2 " id="bkmrk-o365_officeonline_ac-1" style="width: 99.8765%;">O365\_officeonline\_active\_issues</td></tr><tr style="height: 29px;"><td style="width: 99.8765%; height: 29px;">O365\_officeonline\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_onedriveforbusi" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_OneDriveForBusiness\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_OneDriveForBusiness\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_orgliveid_activ" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_OrgLiveID\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_OrgLiveID\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_osdpplatform_ac" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_osdpplatform_ac-0"><td class="datos2 " id="bkmrk-o365_osdpplatform_ac-1" style="width: 99.8765%;">O365\_OSDPPlatform\_active\_issues</td></tr><tr><td style="width: 99.8765%;">O365\_OSDPPlatform\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_planner_active_" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">O365\_Planner\_active\_issues</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">O365\_Planner\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_powerappsm365_a" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_powerappsm365_a-0"><td class="datos2 " id="bkmrk-o365_powerappsm365_a-1" style="width: 99.8765%;">O365\_PowerAppsM365\_active\_issues</td></tr><tr><td style="width: 99.8765%;">O365\_PowerAppsM365\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_powerapps_activ" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_PowerApps\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_powerapps_statu"><td class="datos " id="bkmrk-o365_powerapps_statu-0" style="width: 100%;">O365\_PowerApps\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_projectforthewe" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_ProjectForTheWeb\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_ProjectForTheWeb\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_projectonline_a" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_projectonline_a-0"><td class="datos2 " id="bkmrk-o365_projectonline_a-1" style="width: 99.8765%;">O365\_ProjectOnline\_active\_issues</td></tr><tr><td style="width: 99.8765%;">O365\_ProjectOnline\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_rms_active_issu" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_RMS\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_RMS\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_sharepoint_acti" style="border-collapse: collapse; width: 100%; height: 58px;"><tbody><tr style="height: 29px;"><td style="width: 100%; height: 29px;">O365\_SharePoint\_active\_issues</td></tr><tr style="height: 29px;"><td style="width: 100%; height: 29px;">O365\_SharePoint\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_staffhub_active" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_StaffHub\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_StaffHub\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_stream_active_i" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_Stream\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_Stream\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_swayenterprise_" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_SwayEnterprise\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_SwayEnterprise\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_viva_active_iss" style="border-collapse: collapse; width: 100%;"><tbody><tr class="datos2" id="bkmrk-o365_viva_active_iss-0"><td class="datos2 " id="bkmrk-o365_viva_active_iss-1" style="width: 99.8765%;">O365\_Viva\_active\_issues</td></tr><tr class="datos" id="bkmrk-o365_viva_status"><td class="datos " id="bkmrk-o365_viva_status-0" style="width: 99.8765%;">O365\_Viva\_status</td></tr></tbody></table>

<table border="1" id="bkmrk-o365_yammer_active_i" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 100%;">O365\_yammer\_active\_issues</td></tr><tr><td style="width: 100%;">O365\_yammer\_status</td></tr></tbody></table>