====== Distributed monitoring with Satellite server ====== {{indexmenu_n>5}} ===== Introduction ===== {{:wiki:icono-modulo-enterprise.png |Versión Enterprise.}} The Satellite Server is used for [[https://pandorafms.com/blog/satellite-server/|network and remote system both monitoring and discovery]]. It can discover network elements (routers, switches, etc) using SNMP or ICMP, or MS Windows® servers (using WMI) and Linux® servers (using SNMP). This is no "ordinary" server, it can be considered to be an agent in [[:en:documentation:pandorafms:monitoring:02_operations|broker mode]] with extended features. It is particularly useful to monitor inaccessible remote networks where a software agent is not even an option from Pandora FMS server. {{ :wiki:esquema-satellite.png?700 }} The Satellite server can be used in Windows® and GNU/Linux® (recommended OS) alike, and it has some features that make it more special, highly recommended in certain environments. * It can execute network tests (ICMP, Latency and SNMP v1 and v2) at an extremely high pace (500 checks per second). For SNMP v3 [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|configure the access credentials]] and due to data encryption the pace of the test will not be that fast. * It only sends information to the server every N seconds (300 seconds by default), but it can execute latency, ICMP and SNMP tests within a smaller interval (30 seconds for example). That way, it can warn Pandora FMS Server almost instantly when there is a status change. These status changes must have been previously defined if the module type is not ''*_proc'' (network interfaces or general network connectivity for instance). * It does not require connection to the database, rather **it is autonomous**. It sends all files in XML format the same way as an independent server, similar to a broker agent or an export server. * It has an auto-discovery system for SNMP and WMI. It creates detected agents (by IP address), it detects dynamic elements (network interfaces, storage) and monitors them automatically. * In Windows® systems, it can detect hard drives, CPUs, and memories. * In systems with SNMP, it can detect interface status, inbound and outbound traffic for each interface and the name of the system. * Auto-genarated modules can be modified, like every other module, managing the agent from the console as if it was an ordinary agent (in **//Mass operations menu//** > **//Satellite//** ). * **Agents can be created manually** by creating an agent configuration file in the Satellite server directory for agent configuration files (explained later on). 759 NG version or later. * Since version 759 NG, both the Satellite server and the Enterprise Network Server support IPv6 in all its advanced functionalities. High-performance code that was previously only supported in IPv4 now also applies to IPv6, enhancing existing polling capabilities. ==== Capacity ==== The maximum capacity of the **Satellite server** depends entirely on the server hardware where it runs and the type of checks you want to perform. In the test environment, 500 checks ICMP/SNMP per second have been made, but that depends a lot on the response times of remote devices (it is not the same a device which answers in 0.5ms than one that takes 2 seconds to answer back). Under ideal conditions, an amount of 150,000 checks could be monitored with a single **Satellite server**. In real conditions, it has been tested in controlled environments (LAN) made of about 50,000 modules with a single Satellite server in a low-end computer hardware (Intel i5, 2GZ, 4GB RAM). **If there are many critical modules, performance will be affected**. Take into account the configured **timeout**, since there is only one check for each critical monitor for **timeout**. If there are 1000 critical modules and the **timeout** is configured to 4 seconds, it will take 4000 seconds to execute all the checks with only one thread. ===== Installation ===== The Satellite Server is distributed as **tarball** (GNU/Linux® or ''.exe'' (Windows®), so there is no need to install Perl nor any additional library. It works the same in Windows® or Linux® versions. In Windows® systems, it is installed as a service, and in Linux® systems, it is installed as a daemon. The configuration file and specifications in both cases are the same. {{ :wiki:pfms-satellite-server-installation.png?nolink& }} **Satellite server** Linux® version depends on external packages that are specified in the corresponding version of this documentation. ==== Online installation tool ==== \\ {{:wiki:icono-modulo-enterprise.png?23x23 |Versión Enterprise}}This is a special Pandora FMS feature. **An Enterprise license is required for its use**. In any case, the mandatory installation parameter is the IP address or FQDN of a Pandora FMS Enterprise server. Please contact the sales team, ask for a quotation or solve your doubts about licenses [[https://pandorafms.com/en/contact/|in this link]]. \\ This tool is compatible with Rocky Linux 8.x, AlmaLinux 8.x and RHEL 8.x. **Requirements for the use of the online installation tool:** * Internet access. * Have **curl** installed (comes by default in most distributions). * Meet minimum [[:en:documentation:pandorafms:installation:01_installing#minimum_hardware_requirements|hardware requirements]]. * Be **root** administrator user. * To have a supported OS. * In the case of using RHEL 8, it will be necessary to be previously activated with a license and subscribed to the standard repositories. To use the online installation tool, just access the command line as provided by your Cloud provider as **root** administrator user and run: export PANDORA_SERVER_IP='' && curl -Ls https://pfms.me/satellite-ent-deploy| bash **Custom installation using the online installation tool:** * ''PANDORA_SERVER_IP'': IP address or FQDN of Pandora FMS Enterprise server to which the Satellite server will point. Mandatory parameter. * ''TZ'': Satellite server time zone. Optional parameter. * ''SATELLITE_SERVER_PACKAGE'': Custom URL of Satellite server installation tarball package. Optional parameter. * ''SATELLITE_KEY'': Satellite server license to be activated automatically. Optional parameter. * ''REMOTE_CONFIG'': Remote configuration. Optional parameter, enabled by default (value ''1''). * ''INSTALL_AGENT'': Optional parameter, enabled by default (value ''1''), allows you to install the Software Agent (you may use all the configuration variables of the [[:en:documentation:pandorafms:installation:01_installing#pandora_fms_software_agent|agent's online installer]]). * ''VMWARE_DEPENDENCIES'': Optional, it allows to install VMware® plugin dependencies, disabled by default (''0''). * ''ORACLE_DEPENDENCIES'': Optional, it allows to install Oracle® plugin dependencies, disabled by default (''0''). * ''MSSQL_DEPENDENCIES'': Optional, it allows to install MS SQL Server® plugin dependencies, disabled by default (''0''). * ''SKIP_KERNEL_OPTIMIZATIONS'': Disable the recommended kernel optimization, disabled by default (''0''). Example: env TZ='Europe/Madrid' \ SATELLITE_KEY='SOPORTEDEV00RS0REB3M2T7ZHISO51IIQH52JISJ47VGHIRM...'\ PANDORA_SERVER_IP='192.168.10.10' \ REMOTE_CONFIG=1 \ INSTALL_AGENT=1 \ VMWARE_DEPENDENCIES=1 \ ORACLE_DEPENDENCIES=1 \ MSSQL_DEPENDENCIES=1 \ SKIP_KERNEL_OPTIMIZATIONS=0 \ sh -c "$(curl -fsSL https://pfms.me/satellite-ent-deploy)" ==== Satellite Server Installation in Linux Systems ==== **The recommended GNU/Linux operating system is RedHat Enterprise (RHEL) 8 / Rocky Linux 8.** You need to install **Fping**, **Nmap** and **libnsl** independently and you must first configure the EPEL repository, visit the following link: https://docs.fedoraproject.org/en-US/epel/#_quickstart and select the operating system. If Rocky Linux 8 is used: dnf config-manager --set-enabled powertools dnf install epel-release Install Perl with the following command: dnf install perl Satellite Server core dependencies: **PandoraWMIC** (version 762 and later), **Fping**, **Nmap** and **libnsl**. The **Braa** and **PandoraWMIC** dependencies are attached to the installer. dnf install fping nmap libnsl Once the binary that contains the Satellite server is downloaded, go to the download directory with **root** privileges and unzip the binary: tar -xvzf pandorafms_satellite_server_X.XNG.XXX_x86_64.tar.gz Then, a folder called ''satellite_server'' will be created. Go there typing: cd satellite_server/ To install the Satellite Server, execute the installing command: ./satellite_server_installer --install {{ :wiki:instalacion_linux_nuevo.png }} Once finished, edit the satellite_server.conf file located at: /etc/pandora/satellite_server.conf In versions prior to 761, the license must be entered manually in the ''pandora_license'' option. With a text editor like [[https://www.youtube.com/watch?v=8USl2vnVGsA|VIM edit]] the file, look for this token and proceed to uncomment it. Enter Pandora FMS Enterprise [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#pandora_license_xxxxxxx|server license]]. \\ Search for the [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#server_ip|server_ip]] token and indicate there the IP address or domain of Pandora FMS Enterprise server to which the Satellite server will connect. After that, save the file and activate the service, executing the following: sudo /etc/init.d/satellite_serverd start In case of failure, take a look at the log file at: /var/log/satellite_server.log ==== Windows Installation ==== Run the digitally signed installer (version 762 and later), click Yes: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_01.png }} Choose the installation language: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_02.png }} Click Next: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_03.png }} Choose where to install the program: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_04.png }} **WinPCap** installation is required. The installation window will appear at this step of the installation process: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_05.png }} Configure WinPCap to start when the system starts. {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_06.png }} Once WinPCap installation is finished, this window will appear: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_07.png }} Enter Pandora FMS license number to continue the installation: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_08.png }} Then, set Pandora FMS server address to send data. Define the network recon rules for the Satellite server: {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_09.png }} Restart the machine so that all changes are applied. {{ :wiki:pandorafms_satellite_server_7.0ng.762_x86_64_signed_10.png }} Once ther process is finished, start and stop Pandora FMS Satellite server from the MS Windows® Start menu. \\ Depending on the year of your MS Windows version you will need to install some of these libraries: \\ Microsoft Visual C++ Redistributable (latest supported downloads): * Visual Studio 2015, 2017, 2019, and 2022. * Visual Studio 2013 (VC++ 12.0). * Visual Studio 2012 (VC++ 11.0) Update 4. * Visual Studio 2010 (VC++ 10.0) SP1 (no longer supported). * Visual Studio 2008 (VC++ 9.0) SP1 (no longer supportes). They are available for both 32-bit (**X86**) 64-bit (**X64**) and **ARM64** processors at the following link: [[https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170&viewFallbackFrom=msvc-170|https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170&viewFallbackFrom=msvc-170]] === WMI module operation in some Windows versions === For Windows® security reasons, some versions have limited users who can carry out remote WMI queries. If these queries were not carried out, the solution would be to run the Satellite server service as an **Administrator** user. The process to follow is: Open the services: {{ :wiki:pfms-satellite-server-ms-windows-services-01.png }} Right click on the service and go to **Properties**: {{ :wiki:pfms-satellite-server-ms-windows-services-02.png }} On the **Log On** window, select an account with Administrator permissions and apply changes: {{ :wiki:pfms-satellite-server-ms-windows-services-03.png }} Finally, restart the service to apply the changes. ===== Configuration ===== All parameters that require a timeout or some time are specified in seconds, (for example 300 = 5 minutes). It is important to keep in mind that the latency and snmp intervals are specific for the status change. In case of Boolean checks (port or machine status) the threshold that defines the status change is automatic. For numerical values (latency, network traffic in an interface, disk space, CPU, etc), it is based on a threshold that must be defined in each module. ==== agent_interval ==== agent_interval xxx 300 seconds by default (5 minutes). After that time, information is sent to the server, //regardless of checks done by the network server having a lower interval//. If necessary and by default, it creates agents in the corresponding Pandora FMS server according to the specified time. If the collected data is different compared to the previous one, it sends it right away. If it is the same, it will send it when the agent interval says so. It is useful to perform intensive checks and notify **only in case of status change**. ==== agent_threads ==== agent_threads xxx Number of threads used for sending XML data files. ==== log_file ==== log_file It indicates the file where the Satellite server log is written, by default the path is''/var/log/satellite_server.log''. ==== recon_task ==== recon_task xxxxx[,yyyy] IP networks and addresses for autodiscovery separated by commas, for example: 192.168.50.0/24,10.0.1.0/22,192.168.70.64/26 ==== server_ip ==== server_ip IP address or DNS name of Pandora FMS Server where the information is sent. It is done using the [[:en:documentation:pandorafms:technical_reference:09_tentacle|Tentacle ]]protocol, so communication with the system must be possible through Tentacle port ''41121/tcp''. ==== recon_mode ==== recon_mode Autodiscovery mode (''''). The system will use the following protocols to discover systems: * ''icmp'': It will just check whether the host is alive (**ping**) and measure latency time. * ''snmp'': If it is capable of communicating by SNMP (only v1 and v2), it will look for all the interfaces and get its trafic from all of them, as well as its operative status and device name and location. It will try [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#recon_community|different communities provided in the configuration file]] to connect. To use SNMPv3 whose recognition is required, check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. * ''wmi'': Similar to the previous case, but in this case showing CPU usage, memory and hard drives (all available ones). ==== recon_community ==== recon_community ,,... It states a list of SNMP '''' communities to be used in SNMP discovery, separated by commas. It will use this list in SNMP exploration: for each IP found, it will try to see whether it responds to any of these communities. ==== wmi_auth ==== wmi_auth Administrator%password[,user%pass] It specifies a list of user credential pairs, each of them in **%**format and separated by commas. For example: ''admin%1234,super%qwerty''.It will use this list for WMI exploration. For each IP found, it will try to see whether it responds to any of the combinations. ==== wmi_ntlmv2 ==== wmi_ntlmv2 [0|1] It enables (1) or disables (0) authentication with [[https://en.wikipedia.org/wiki/NT_LAN_Manager#NTLMv2|protocol NTLMv2]] for WMI. ==== agent_conf_dir ==== agent_conf_dir Path ( '''') to the directory automatically created and stored by the configuration files of each agent created by the Sattellite server. By default ''/etc/pandora/conf''. Said agents can also be [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#manual_agent_creation|created manually]]. ==== group ==== group It specifies the default group name '''' for agents created by the Satellite Server. For instance: "Servers". ==== daemon ==== daemon [1|0] When set to 1, it starts the daemon in the background (value by default). ==== host_file ==== host_file It is an alternative/complementary method for network scanning. A file ( ''< path_filename >'' ) is provided with an adress in each line. It can include the hostname followed by the IP address as well, so that the agent created bears that name and uses that IP for modules (e.g. ''193.168.0.2 hostname''). It must be possible to send and **fping** to those addresses for them to be valid. ==== pandora_license_key ==== NG 765 version or later. # Encryption key for the Pandora FMS license. # pandora_license_key For safe license transmission to the Satellite server, you will need to configure in the [[:en:documentation:pandorafms:management_and_operation:12_console_setup#license|Web Console]] or [[:en:documentation:pandorafms:command_center:03_installation#license|Metaconsole]] the same encryption key that you will place in this token. See also the ''[[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#server_ip|server_ip]]'' token. ==== pandora_license ==== Since version 761 and later the licensing of the Satellite server is done automatically and this token becomes obsolete. pandora_license xxxxxxx Type in store Pandora FMS Enterprise server license, as shown in the section ►**Setup** → **License** from Pandora FMS console. {{ :wiki:pfms-setup-license.png }} You may use the same license in as many Satellite servers as you need, since the total of agents that use the license is verified in Pandora FMS server not the Satellite server. ==== remote_config ==== remote_config [1|0] It enables remote configuration in detected agents by default. It is mandatory if you wish yo manage them from the console after detecting them. It also activates Satellite server remote configuration. To find out more, see [[:en:documentation:pandorafms:monitoring:02_operations|Remote configuration]]. ==== temporal_min_size ==== temporal_min_size xxx If the free space (in MB) in the partition where the temporary directory is located is smaller than this value, data packages are not generated anymore. It prevents the disk from becoming full if the connection with the server is lost during an extended interval for some reason. ==== xml_buffer ==== xml_buffer [0|1] The default value is 0. If set to 1, the agent will save any XML data files that could not be sent to retry it later on. In a safe UNIX environment, consider changing the temporal directory, since ''/tmp ''gives writting permissions to all users. ==== snmp_version ==== snmp_version xx SNMP version to use by default (only 1 and 2c are supported). 1 by default. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. Some modules could stop working if you change this value. ==== braa ==== braa Path ('''') to the braa binary. Value ''/usr/bin/braa'' by default. ==== fping ==== fping Path ('''') to the Fping binary. Value by default ''/usr/sbin/fping''. ==== fsnmp ==== fsnmp Path ('')'' to the Fsnmp binary (SNMPv3). Value by default ''/usr/bin/pandorafsnmp''. ==== latency_packets ==== latency_packets xxx Number of ''xxx'' ICMP packages sent by latency request. ==== nmap ==== nmap Path ('')'' to the Nmap binary. Value by default ''/usr/bin/nmap''. ==== nmap_timing_template ==== nmap_timing_template x A value ''x'' that specifies the level of agressiveness of Nmap, from 1 to 5. 1 means slower but more reliable, 5 means faster but less reliable. Default value: 2. ==== ping_packets ==== ping_packets xxx Number of ICMP packages sent for each ping. ==== recon_enabled ==== recon_enabled [0|1] It enables (''1'') or disables (''0'') equipment autodiscovery. ==== recon_timing_template ==== recon_timing_template xxx Like [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#nmap_timing_template|nmap_timing_template]] but applied to network scanning. ==== server_port ==== server_port xxxxx Tentacle server port number. ==== server_name ==== server_name xxxxx Name of the Satellite server (by default it takes the machine's //hostname//). ==== server_path ==== server_path Path '''' where XML files are copied if [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#transfer_mode_xxx|transfer_mode]] is in local (by default ''/var/spool/pandora/data_in''). ==== server_opts ==== Server parameters sent to Tentacle. ==== transfer_mode ==== transfer_mode [tentacle|local] File transfer mode. It can be ''tentacle'' or ''local'' (by default ''tentacle''). ==== snmp_verify ==== snmp_verify [0|1] It enables (''1'') or disables (''0'') the verification of SNMPv1 modules that make braa fail in real time. These modules will be discarded and stop being executed. See both [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp2_verify|snmp2_verify]] and [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp3_verify|snmp3_verify]]. ==== snmp2_verify ==== snmp2_verify [0|1] It enables (1) or disables (0) the verification of SNMPv2 module that make braa fail in real time. These modules will be discarded and stop being executed. See both [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp2_verify|snmp2_verify]] and [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp3_verify|snmp3_verify]]. Verifying SNMP version 2 modules can take lots of time! ==== snmp3_verify ==== snmp3_verify [0|1] It enables (1) or disables (0) the verification of SNMPv3 modules that make **braa** fail in real time. These modules will be discarded and stop being executed. See both [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp2_verify|snmp2_verify]] and [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmp3_verify|snmp3_verify]]. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_seclevel ==== Security level used for SNMPv3 messages (''noauth'', ''authnopriv'' or ''authpriv''). To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_secname ==== Security name used for SNMPv3 messages. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_authproto ==== Authentication protocol (''md5'' or ''sha'') for authenticated SNMPv3 requests. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_authpass ==== Authentication password for authenticated SNMPv3 request. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_privproto ==== Privacy protocol (''des'' or ''aes'') for encrypted SNMPv3 requests. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== snmp3_privpass ==== Privacy password for encrypted SNMPv3 messages. To use SNMP v3 check [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#snmpv3|this link]] on how to configure the known access credentials. ==== startup_delay ==== startup_delay xxx It waits xxx seconds before sending XML data files for the first time. ==== temporal ==== temporal Temporal directory where XML files are created, ''/tmp'' by default. ==== tentacle_client ==== tentacle_client Full '''' to the Tentacle client (''/usr/bin/tentacle_client'' by default). ==== wmi_client ==== wmi_client Full '''' to the wmic. By default ''/usr/bin/wmi''. {{ :wiki:pfms-wmic--usage.png }} ==== snmp_blacklist ==== snmp_blacklist Path ('''') to the SNMP module blacklist file (''/etc/pandora/satellite_server.blacklist'' by default). ==== add_host ==== add_host [agent_name] It adds the given host to the list of monitored agents. The name for the agent can be specified after the IP address. Multiple hosts may be added, one per line. For example: add_host 192.168.0.1 add_host 192.168.0.2 localhost.localdomain ==== ignore_host ==== ignore_host It removes the given host from the list of monitored agents, even if it is found in a network scan by a recon task. The host must be identified by agent name. Multiple hosts may be ignored, one per line. For example: ignore_host 192.168.0.1 ignore_host localhost.localdomain ==== delete_host ==== delete_host It permanently removes the given host from the list of monitored Agents by deleting its configuration file. The host must be identified by the Agent name. Multiple hosts can be deleted, one per line. //For example//: delete_host 192.168.0.1 delete_host localhost.localdomain ==== keepalive ==== keepalive xxx Satellite Server reports its status and checks remote configuration changes (from agents and its own) every ''xxx'' seconds. It is 30 seconds by default. ==== credential_pass ==== credential_pass xxx Password used to encrypt credential box passwords. It must match the one defined in Pandora FMS console. The hostname is used by default. ==== timeout_bin ==== timeout_bin If defined, the **timeout** program (usually ''/usr/bin/timeout'') will be used to call the Tentacle client. ==== timeout_seconds ==== timeout_seconds xxx Timeout in seconds for the **timeout** command. The [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#timeout_bin_path_to_timeout|timeout_bin]] parameter must be configured. ==== proxy_traps_to ==== proxy_traps_to It redirects SNMP traps received by the Satellite server to the given address (and port). Port 162 is used by default. ==== proxy_tentacle_from ==== proxy_tentacle_from It redirects data received by Tentacle server from the specified address and port. Port 41121 is used by default. ==== proxy_tentacle_to ==== proxy_tentacle_to It redirects Tentacle client requests received by the Satellite Server to the given address (and port). Port 41121 is used by default. This option may be in conflict with remote agent configuration. This happens if the Satellite server is intended to be used as proxy for some software agents and monitor them remotely from the Satellite server itself (ICMP, SNMP, etc.) and remote configuration is enabled in both cases. In this situation, it is necessary to either use different agents for the performed checks (i.e. with different ''agent_name''), or leave the remote configuration enabled only on one of them (Satellite Server or software agents). ==== dynamic_inc ==== dynamic_inc [0|1] When set to 1, it moves dynamic auto-discovered modules (SNMP, WMI…) to separate files so that they do not interfere with remote agent configuration. ==== vlan_cache_enabled ==== vlan_cache_enabled [0|1] It enables (1) or disables (0) the VLAN cache in the auto-discovered hosts. ==== verbosity ==== verbosity <0-10> Detail log level, where 10 is the highest information detail level. ==== agents_blacklist_icmp ==== Version NG 713 or later. agents_blacklist_icmp 10.0.0.0/24[,8.8.8.8/30] ICMP check blacklist. This field can be configured with a list of IPs, using CIDR notation to prevent ICMP-type modules from running. To specify multiple subnets, separating them with commas. ==== agents_blacklist_snmp ==== Version NG 713 or later. agents_blacklist_snmp 10.0.0.0/24[,8.8.8.8/30] SNMP check blacklist. This field can be configured with a list of IPs, using CIDR notation to prevent SNMP-type modules from running. You may specify multiple subnets separating them with commas. ==== agents_blacklist_wmi ==== Version NG 713 or later. agents_blacklist_wmi 10.0.0.0/24[,8.8.8.8/30] WMI Check blacklist. This field can be configured with a list of IPs, using the CIDR notation to prevent WMI-type modules from running. You may specify multiple subnets by separating them with commas. ==== general_gis_exec ==== Versión NG 734 o later. general_gis_exec xxx By enabling this option, a GIS positioning script will be used for all agents detected by the Satellite server. The script must have running permissions and must print on screen the coordinates with the format **,,[]**. The third parameter, altitude, is optional. ==== forced_add ==== force_add [0|1] If set to ''1'', hosts added manually (via [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#host_file|host_file]] or [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#add_host|add_host]]) will always be created, even if they do not respond to **ping**, with a configuration file without modules. ==== agent_block ==== agent_block XX Number of XML data files sent in a single call to the Tentacle client, by default ''50''. ==== conf_interval ==== conf_interval XXX Remote configuration check interval, by default ''300'' seconds. ==== exec_interval ==== exec_interval XXX Time between exec checks, by default ''300'' seconds. ==== exec_threads ==== exec_threads X Number of threads used for exec modules, ''5'' by default . It depends on the capacity (CPU and RAM) of the machine. The higher the threads, the higher the load on the machine but the processing capacity will be higher. The performance may become poor when exceeding 20 threads, depending on each system. ==== latency_block ==== latency_block XXX Number of hosts processed in a single call to nmap (latency), ''400'' by default. It forces the server to execute checks into blocks of ''XXX'' checks. The higher the number (500 tops) the more capacity it will have, but at the expense of an increased latency. Sometimes, it might be recommended to lower that number. ==== latency_interval ==== latency_interval XXX Time between latency checks, ''180'' seconds by default. ==== latency_retries ==== latency_retries X Number of retries for latency modules, ''2'' by default. ==== latency_threads ==== latency_threads X Number of threads used for latency checks, ''4'' by default. ==== latency_timeout ==== latency_timeout X Timeout for latency checks in seconds, ''1'' by default. ==== ping_block ==== ping_block XXX Number of hosts processed in a single call to **nmap** (ping), ''400'' by default. It forces the server to execute checks into blocks of ''XXX'' checks. The higher the number (500 tops) the more capacity it will have, but at the expense of an increased latency. Sometimes, it might be recommended to lower that number. ==== ping_interval ==== ping_interval XXX Time between ping checks, ''120'' seconds by default. ==== ping_retries ==== ping_retries X Number of retries for latency modules, ''2'' by default. ==== ping_threads ==== ping_threads X Number of threads used for ping checks, ''4'' by default. ==== ping_timeout ==== ping_timeout 1 Timeout for ping checks in seconds, ''1'' by default. ==== plugin_interval ==== plugin_interval XXX Time between plugin checks, ''300'' by default. ==== plugin_threads ==== plugin_threads X Number of threads used for plugin checks, ''2'' by default. ==== plugin_timeout ==== plugin_timeout XX Timeout for plugin checks in seconds, ''10'' by default. ==== recon_interval ==== recon_interval XXXXXX Time between network scans in seconds, ''604800'' by default. ==== snmp2_block ==== snmp2_block XX Number of hosts processed in a single call to braa (SNMPv2c), ''50'' by default. ==== snmp2_interval ==== snmp2_interval XXX Time between SNMP checks (SNMPv2c), ''180'' seconds by default. ==== snmp2_retries ==== snmp2_retries X Number of retries for SNMP modules (SNMPv2c), 2 by default. ==== snmp2_threads ==== snmp2_threads X Number of threads used for SNMP checks (SNMPv2c), ''8'' by default. ==== snmp2_timeout ==== snmp2_timeout X Timeout for SNMP (SNMPv2c) checks in seconds, ''5'' by default. ==== snmp3_block ==== snmp3_block XX Number of hosts processed in a single call to braa (SNMPv3), ''50'' by default. ==== snmp3_interval ==== snmp3_interval XXX Time between SNMP checks (SNMPv3), ''180'' by default. ==== snmp3_retries ==== snmp3_retries X Number of retries for SNMP modules (SNMPv3), ''2'' by default. ==== snmp3_threads ==== snmp3_threads X Number of threads used for SNMP checks (SNMPv3), ''4'' by default. ==== snmp3_timeout ==== snmp3_timeout X Timeout for SNMP (SNMPv3) checks in seconds, ''5'' by default. ==== snmp_block ==== snmp_block XX Number of hosts processed in a single call to braa (SNMPv1), ''50'' by default. ==== snmp_interval ==== snmp_interval XXX Time between SNMP checks (SNMPv1), ''180'' seconds by default. ==== snmp_retries ==== snmp_retries X Number of retries for SNMP modules (SNMPv1), ''2'' by default. ==== ssh_interval ==== ssh_interval XXX Time between SSH checks, ''300'' seconds by default. ==== ssh_threads ==== ssh_threads X Number of threads used for SSH modules, ''5'' by default. ==== ssh_timeout ==== ssh_timeout X Timeout for SSH checks in seconds, ''2'' by default. ==== tcp_interval ==== tcp_interval XXX Time between TCP checks, ''300'' seconds by default. ==== tcp_threads ==== tcp_threads X Threads dedicated to TCP checks, ''5'' by default. ==== tcp_timeout ==== tcp_timeout X Timeout for TCP checks in seconds, ''1'' by default. ==== snmp_threads ==== snmp_threads X Number of threads used for SNMP checks (SNMPv1), ''8'' by default. ==== snmp_timeout ==== snmp_timeout X Timeout for snmp checks in seconds (SNMPv1), ''5'' by default. ==== wmi_interval ==== wmi_interval XXX Time between WMI checks, ''300'' seconds by default. ==== wmi_threads ==== wmi_threads X Threads dedicated to WMI polling, ''5'' by default. ==== ipam_task ==== ipam_task , Comma-separated list of networks (in SLASH notation) to scan for IPAM. It must be preceded by the ID of the IPAM task in Pandora FMS (the Discovery server field should be left **unassigned** and then assigned to a Satellite server). E.g. ''1,192.168.0.0/24'' . ==== ipam_interval ==== ipam_interval XXXXXX Time between IPAM scans in seconds. ==== Secondary Server ==== secondary_mode [on_error|always] An special kind of general configuration parameter is the definition of a secondary server. This allows defining a server to send data to, in a complementary way to the server defined the standard way. The secondary server mode works in two different ways: * **on_error**: It sends data to the secondary server only when it cannot send them to the primary one. * **always**: It always sends data to the secondary server, both if it can contact the main server or not. Configuration example: secondary_server_ip 192.168.1.123 secondary_server_path /var/spool/pandora/data_in secondary_mode on_error secondary_transfer_mode tentacle secondary_server_port 41121 ==== Remote configuration ==== === Remote file configuration === You may access the advanced editor for remote configuration of the Satellite server on the PFMS Enterprise server the Satellite server belongs to through the menu ►**Servers** → **Manage servers**. Once you have loaded the page in your web browser, click on the **Remote configuration** icon. {{ :wiki:pfms-manage_servers-satellite_server-remote_configuration.png }} Then click on the **Advanced editor** icon: {{ :wiki:pfms-manage_servers-satellite_server-remote_configuration-advanced_editor.png }} In the text box corresponding to·**Configuration** you may edit and/or add each of the tokens described in previous sections. Once you are finished editing, save the changes by clicking **♦Update** at the end of the page. New token synchronization and loading will take some time. Please wait a few seconds for the changes to propagate. === Remote configuration graphical interface === NG 764 version or later. You will be able to access the graphic interface on PFMS Enterprise server to which the Satellite server belongs, remotely, by means of the menu **Servers** → **Manage servers** and then click on the **Remote configuration** icon. {{ :wiki:pfms-manage_servers-satellite_server-remote_configuration.png }} Use the·**Dynamic search **to enter key text (one letter or more) and search for a specific token. {{ :wiki:pfms-manage_servers-satellite_server-remote_configuration-dynamic_search.png }} Some tokens only accept two values (''ON'' /''OFF''): use the first button to change this value. If you enable or disable the corresponding token with the second button, the Satellite server will take the default value assigned to it (''1'' or ''0'') //regardless of the value set by the first button.// {{ :wiki:pfms-manage_servers-satellite_server-remote_configuration-on_off_token.png }} Once you have made all the changes click **Update** to save your preferences. ===== Agent creation in Satellite Server ===== There are three ways of creating an agent in the Satellite server: **Recon Task**, **Satellite_hosts.txt** file, or **manually** creating the .conf of the agents to monitor. ==== Agent creation through Recon Task ==== The creation of agents through Recon Task is the most used by Pandora FMS users. To be able to do it, go to the Satellite server configuration file and set the following parameters: * **recon_community**: Specify a list of SNMP communities to use in SNMP discovery separated by commas (in case of performing a recon of the SNMP type). * **recon_enabled**: It must be set to 1 to enable the recon task of the Satellite server. * **recon_interval**: Time interval where a certain network is scanned, in seconds (604800 seconds by default, 7 days). * **recon_mode**:Recon task mode (snmp,icmp,wmi) separated by commas. * **recon_task**: List of networks to be recognized, separated by commas. * **recon_timing_template**: A value that specifies how aggressive nmap must be, from 1 to 5. 1 means slower but more reliable, 5 means faster but less reliable (3 by default). An example of Recon Task would be: recon_community public recon_enabled 1 recon_interval 604800 recon_mode icmp,snmp,wmi recon_task 192.168.0.0/24,192.168.1.0/24 recon_timing_template 3 Once the data has been configured, run the satellite server using the command: /etc/init.d/satellite_serverd start Agents without modules in their configuration files will be ignored by the Satellite Server. ==== Agent creation through a file ==== First, in order to create an agent through the satellite_hosts.txt file, go to the configuration file of the Satellite server and uncomment the line: host_file /etc/pandora/satellite_hosts.txt Secondly, create the file satellite_hosts.txt with the IP of the host that you wish to create by entering IP and name of the agent to create: 192.168.10.5 Server5 192.168.10.6 Server6 192.168.10.7 Server7 In order for these IPs to be created, it is necessary to be able to make the fping call to each one of the IPs in the list, otherwise it will not be created. Once the data has been configured, run the satellite server using the command: /etc/init.d/satellite_serverd start The reading of the indicated file is done every recon_interval seconds. ==== Manual Agent Creation ==== Firstly, look at the configuration file of the Satellite server in the ''/etc/pandora/conf'' directory, which is where the new agent configuration files are created. Open a terminal and go to that folder: cd /etc/pandora/conf Once this path is located, create a ''.conf'' for example “archivo.conf”. Fill in the following fields: * **agent_name**: Agent name. * **agent_alias**: Agent alias. * **address**: IP of the element to monitor. * **group**: Group to assign the agent to. * **gis_exec**: Positioning script (optional). It overwrites the [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#general_gis_exec|general_gis_exec]] location of the Satellite server. * Modules to be monitored by the agent. An example would be: agent_name Example agent_alias This is an example address 127.0.0.1 group Servers module_begin module_name Ping module_ping module_end module_begin module_name Latency module_latency module_end Once the data has been configured, run the Satellite server using the command: /etc/init.d/satellite_serverd start ===== Agent removal in Satellite Server ===== You may fully remove the agents or delete them partially. First back up the folders and their files before proceeding. For agent **total removal**, take into account the method used in agent creation. * **Manual**: First remove the''.conf ''files from the agents created in the''/etc/pandora/conf ''folder and then remove the agents from the console. * **Satellite_hosts.txt file**: Delete the file as well as the''.conf ''that have been created in the folder ''/etc/pandora/conf'' and later delete the agents from the console. * **Recon_task**: Deconfigure the''recon_task'' from the ''.conf'' file of the Satellite server, then remove the ''.conf'' created in the folder ''/etc/pandora/conf'' and then remove the agents from the console. For agent **partial removal** also take into account the method used in the agent creation. * **Manual**: First of all, remove the ''.conf'' files from the agents you wish to delete in the ''/etc/pandora/conf'' folder and then remove the agents from the console. * **Satellite_hosts.txt file**: Delete the lines of the IPs from the file as well as the ''.conf'' that have been created in the folder ''/etc/pandora/conf'' with those IPs and then delete the agents from the console. * **Recon_task**: Configure the blacklist of the ''recon_task'' in the conf file of the Satellite server, then remove the ''.conf'' created in the folder ''/etc/pandora/conf'' with those IPs and then remove the agents from the console. ===== Custom settings by agent ===== In addition to "automatic" modules, all kinds of available TCP, SNMP or WMI tests can be added, using a similar syntax to the local modules in [[:en:documentation:pandorafms:monitoring:02_operations#monitoring_with_software_agents|software agents]]. Here are some module examples valid for Satellite server, just as they are autogenerated after being detected by the system. ==== ICMP/TCP queries ==== Conectivity to a machine (using PING): module_begin module_name ping module_type generic_data module_ping 192.168.70.225 module_end Port check (using TCP): module_begin module_name Port 80 module_type generic_proc module_tcp module_port 80 module_end ==== WMI queries ==== CPU WMI usage check (percentage): module_begin module_name CPU module_type generic_data module_wmicpu 192.168.30.3 module_wmiauth admin%none module_end Memory free WMI check (percentage): module_begin module_name FreeMemory module_type generic_data module_wmimem 192.168.30.3 module_wmiauth admin%none module_end General WMI query: module_begin module_name GenericWMI module_type generic_data_string module_wmi 192.168.30.3 module_wmiquery SELECT Name FROM Win32_ComputerSystem module_wmiauth admin%none module_end ==== SNMPv1 and SNMPv2 queries ==== Make sure OIDs **start with a dot**, otherwise SNMP modules will not work! Interface status through SNMP. The Satellite server detects automatically each interface: module_begin module_name if eth1 OperStatus module_description IP address N/A. Description: The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed. module_type generic_data_string module_snmp 192.168.70.225 module_oid .1.3.6.1.2.1.2.2.1.8.3 module_community artica06 module_end To force the module to use SNMP version 2c, add the line: module_version 2c To force the module to use SNMP version 1, add the line: module_version 1 For example: module_begin module_name if eth1 OperStatus module_description IP address N/A. Description: The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed. module_type generic_data_string module_snmp 192.168.70.225 module_version 2c module_oid .1.3.6.1.2.1.2.2.1.8.3 module_community artica06 module_end General SNMP check. In this case, the server retrieves automatically the traffic from each interface with its"real" descriptive name: module_begin module_name if eth0 OutOctets module_description The total number of octets transmitted out of the interface, including framing characters. module_type generic_data_inc module_snmp 192.168.70.225 module_oid .1.3.6.1.2.1.2.2.1.16.2 module_community public module_end ==== SNMPv3 ==== To configure an SNMPv3 module, set [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#custom_settings_by_agent|module_version]] to 3 and specify * ''module_seclevel'': Security level ( ''noauth'', ''authnopriv'' or ''authpriv'' ). * ''module_secname'': Security name. * ''module_authproto'': Authentication protocol ( ''md5'' or ''sha'' ). * ''module_authpass'': Authentication password. * ''module_privproto'': Security protocol ( ''aes'' or ''des'' ). * ''module_privpass'': Privacy password, if needed. For example: module_begin module_name snmp_noauth module_type generic_data_string module_snmp 127.0.0.1 module_version 3 module_oid .1.3.6.1.2.1.1.1.0 module_seclevel noauth module_secname snmpuser module_end module_begin module_name snmp_authnopriv module_type generic_data_string module_snmp 127.0.0.1 module_version 3 module_oid .1.3.6.1.2.1.1.2.0 module_seclevel authnopriv module_secname snmpuser module_authproto md5 module_authpass 12345678 module_end module_begin module_name snmp_authpriv module_type generic_data_string module_snmp 127.0.0.1 module_version 3 module_oid .1.3.6.1.2.1.1.2.0 module_seclevel authpriv module_secname snmpuser module_authproto sha module_authpass 12345678 module_privproto aes module_privpass 12345678 module_end SNMPv3 specific configuration can be shared between modules by placing it outside the module declaration, in case it is the same for all of them (it can also be shared between agents by moving it to the Satellite's configuration file): agent_name snmp address 127.0.0.1 seclevel authpriv secname snmpuser authproto md5 authpass 12345678 privproto des privpass 12345678 module_begin module_name snmp_authpriv_1 module_type generic_data_string module_snmp module_version 3 module_oid .1.3.6.1.2.1.1.1.0 module_end module_begin module_name snmp_authpriv_2 module_type generic_data_string module_snmp module_version 3 module_oid .1.3.6.1.2.1.1.2.0 module_end For the creation of SNMP modules (including SNMPv3) via PFMS Web Console [[https://www.youtube.com/watch?v=XHHG7FQe8DU|visit this video]]. For the creation of component groups (including SNMPv3) see "[[:en:documentation:pandorafms:management_and_operation:03_templates_and_components#snmp_plugin_execution|SNMP wizard]]". **Default Satellite Server configuration file for SNMPv3:** You will need to put in your own values and/or credentials, as well as change any necessary protocols or encryption methods. You will need to restart the PFMS server for the new configuration values to be read and put into memory. # Security level used for SNMPv3 messages (noauth, authnopriv or authpriv). #snmp3_seclevel authpriv # Security name used for SNMPv3 messages. #snmp3_secname # Authentication protocol (md5 or sha) for authenticated SNMPv3 requests. #snmp3_authproto sha # Authentication password for authenticated SNMPv3 request. #snmp3_authpass # Privacy protocol (des or aes) for encrypted SNMPv3 requests. #snmp3_privproto des # Privacy password for encrypted SNMPv3 messages. #snmp3_privpass ==== SSH queries ==== SSH queries on Satellite servers installed on MS Windows® is still under implementation. The PFMS development team is working on it. Generic SSH command: module_begin module_name GenericSSH module_type generic_data module_ssh 192.168.30.3 module_command ls /tmp | wc -l module_end To add a threshold, do it both in the module's text definition and threshold definition in the web interface (''module_min_warning'', ''module_min_critical''). For example: module_begin module_name Latency module_type generic_data module_latency 192.168.70.225 module_min_warning 80 module_min_critical 120 module_end Execution modules can be created manually. The scripts or commands executed by the Satellite server must be previously established and available for the server to use. It works the same as an agent ''module_exec''. Bear in mid that the use of ''module_exec'' can make the performance of the Satellite server to become poor: module_begin module_name Sample_Remote_Exec module_type generic_data module_exec /usr/share/test/test.sh 192.168.50.20 module_min_warning 90 module_min_critical 95 module_end ==== Plugins queries ==== From Pandora FMS version 7 on, plugins can be added. Like those, note that the plugins will run on the machine where the Satellite server is running. **Therefore, it will be necessary to implement in these plugins some method to connect to the remote computer you wish to monitor**. The advantage over the previous ones is their great flexibility. That way, preconditions and other mechanisms for which a ''module_exec'' falls short can be implemented. The syntax is the same as that of the agents. An example of using a plugin might be as follows: module_plugin /usr/share/pandora/remote_advanced_checks.sh 192.168.0.1 ==== Credential boxes ==== Unless key-based authentication is configured with private and public keys, SSH modules require a username ('''') and a password ( '''' ) in order to work. These are configured in the main configuration file, ''satellite_server.conf'', using credential boxes (''credential_box'' ) with the following format: **network/mask,username,password** **network/mask,username,[[encrypted password|]]** SSH queries on Satellite servers installed on MS Windows® is still under implementation. The PFMS development team is working on it. For example: credential_box 192.168.1.1/32,, credential_box 192.168.1.0/24,, Credential boxes are searched from more restrictive to less restrictive masks. Passwords can be encrypted using Blowfish in ECB mode. Make sure [[:en:documentation:pandorafms:complex_environments_and_optimization:05_satellite#credential_pass|credential_pass]] is defined, otherwise the hostname will be used as the default encryption password. The hexadecimal representation of the ciphertext should be enclosed in double brackets: credential_box 192.168.1.0/24,,[[80b51b60786b3de2|]] ===== General view of all agents in the console ===== If the configuration of the satellite server is correct, you should an aent view similar to this one: {{ :wiki:seleccion_146.png?direct& }} Generally, in all machines ICMP (Ping and Latency) modules will be created, but in some machines SNMP and WMI modules can be created. In machines where WMI is enabled, the following modules will be generated if available: {{ :wiki:modulos.png?700 }} In machines with SNMP enabled, the following modules will be generated if available: {{ :wiki:modulos1.png?700 }} In the massive operations menu of Pandora FMS console, there is a specific section for the Satellite server where different edition and deletion actions can be performed on agents and modules massively. {{ :wiki:operacion_massivas.png?direct& }} NG 763 version or later. {{ :wiki:pfms-satellite_server-agent-web_console.png }} ===== SNMP blacklist ===== When monitoring big networks, SNMP modules that return invalid data may affect the performance of the Satellite server and many modules may become Unknown. To avoid that, the Satellite Server can read a blacklist of SNMP modules that will be discarded at startup before execution. To create a new blacklist, edit the ''/etc/pandora/satellite_server.conf'' configuration file and make sure ''snmp_blacklist'' is uncommented and configured with the path of the file where blacklist modules are saved. Then run: satellite_server -v /etc/pandora/satellite_server.conf Restart the Satellite server. The blacklist can be regenerated as many times as needed. The format of the blacklist file is: agent:OID agent:OID ... For example: 192.168.0.1:.1.3.6.1.4.1.9.9.27 192.168.0.2:.1.3.6.1.4.1.9.9.27 [[:en:documentation:start|Go back to Pandora FMS documentation index]]