# ______ _ __ __ # /_ __/(_)____ ___ ___ / /_ ___ ____ _ / /_ # / / / // __ `__ \ / _ \ / __ \ / _ \ / __ `// __/ # / / / // / / / / // __// /_/ // __// /_/ // /_ # /_/ /_//_/ /_/ /_/ \___//_.___/ \___/ \__,_/ \__/ ################### Timebeat Configuration AREA ######################### timebeat: # Location of license key file for premium features license.keyfile: '/etc/timebeat/timebeat.lic' # Configuration for clock synchronisation clock_sync: # Clocksync # Default is true enabling clock synchronisation, setting to false for monitoring purposes only (false will not adjust the clock) adjust_clock: true # To remove step limit restrictions comment out the below, this will allow the clock to be stepped indefinitely step_limit: 15m # "s", "h" "d" can be used to denominate seconds, hours or days for step limit. primary_clocks: # PTP Config example - protocol: ptp domain: 0 #serve_unicast: true # (Enterprise Feature) #serve_multicast: true # (Enterprise Feature) #server_only: true # (Enterprise Feature) announce_interval: 1 sync_interval: 0 delayrequest_interval: 0 #unicast_master_table: ['1.2.3.4','2.3.4.5', '3.4.5.6'] #delay_strategy: e2e # other options which can be used are: 'p2p' #hybrid_e2e: false # Send delay requests as unicast (enterprise profile) #priority1: 128 #priority2: 128 #monitor_only: false #use_layer2: false # Use ptp over ethernet instead of IP/UDP #interface: enp2s0 #profile: 'G.8275.2' # other options which can be used are: 'G.8275.1', 'G.8265.1' and 'enterprise-draft' #logsource: 'Grandmaster Clock in NY4' # configurable name for source included in all logging records for source #asymmetry_compensation: 0 # In nanoseconds. Static compensation for know asymmetry (+/- as the case maybe) # PTP Config example #- protocol: ptp # domain: 10 # serve_unicast: true # serve_multicast: true # server_only: true # announce_interval: 1 # sync_interval: 0 # delayrequest_interval: 0 # unicast_master_table: ['1.2.3.4','2.3.4.5', '3.4.5.6'] # delay_strategy: e2e # priority1: 128 # priority2: 128 # monitor_only: false # interface: enp2s0 # NTP Config example #- protocol: ntp # ip: '1.2.3.4' # You can also use name formate e.g: time.server.com # pollinterval: 4s # Values tested: 500ms, 1s, 2s, 4s and 8s # 4s is recommended for public NTP servers # monitor_only: false # Pulse-per-second input config example (ENTERPRISE FEATURE) PPS can be configured using Timebeat CLI #- protocol: pps # interface: ens3 # pin: 0 # index: 0 # cable_delay: 0 # Cable delay in nanoseconds (odds are ~5 ns per meter is a good value) # monitor_only: false # Secondary clocks. When all primary sources are unavailable the below will activate (ENTERPRISE FEATURE) secondary_clocks: # PTP Config example #- protocol: ptp # domain: 0 # serve_unicast: true # (Enterprise Feature) # serve_multicast: true # (Enterprise Feature) # server_only: true # (Enterprise Feature) # announce_interval: 1 # sync_interval: 0 # delayrequest_interval: 0 # unicast_master_table: ['1.2.3.4','2.3.4.5', '3.4.5.6'] # delay_strategy: e2e # (Enterprise Feature) - other options which can be used are: 'p2p' # priority1: 128 # (Enterprise Feature) # priority2: 128 # (Enterprise Feature) # monitor_only: false # interface: enp2s0 # PTP Config example #- protocol: ptp # domain: 10 # serve_unicast: true # serve_multicast: true # server_only: true # announce_interval: 1 # sync_interval: 0 # delayrequest_interval: 0 # unicast_master_table: ['1.2.3.4','2.3.4.5', '3.4.5.6'] # delay_strategy: e2e # priority1: 128 # priority2: 128 # monitor_only: false # interface: enp2s0 # NTP Config example #- protocol: ntp # ip: '1.2.3.4' # You can also use name formate e.g: ntp.time.server.com # pollinterval: 4s # Values tested: 500ms, 1s, 2s, 4s and 8s # 4s is recommended for public NTP servers # monitor_only: false # NMEA-GNSS input config example (can provide majortime for PPS sources) # Eight data bits, no parity bit, and one stop bit (8N1) is assumed # (It is not recommended to configure a NMEA source if you have an alternative secondary source) (ENTERPRISE FEATURE) #- protocol: nmea # device: '/dev/ttyS0' # baud: 9600 # monitor_only: false # Timebeat can monitor external devices - currently Arista switches acting as boundary clocks # using the eAPI and the Orolia/Spectracom SecureSync grandmaster clocks using its REST API external_devices: #- vendor: arista_eos # host: 10.101.101.47 # port: 443 # transport: https # username: admin # password: 12345678 #- vendor: orolia_securesync # host: 10.101.101.48 # port: 80 # transport: http # username: spadmin # password: 12345678 ptpsquared: # Enable PTPSquared functionality # enable: false # discovery: # mdns: true # dht: false # dht_seed_list: ["/ip4/10.101.101.23/tcp/65107/p2p/16Uiu2HAmJiQvJQbja8pf5dKAZsSYxWmcDCxZaoYbMUL5X7GnXej9"] # keypath: "/etc/timebeat/ptp2key.private" # domains: [115,116] # interface: ens5f0 # seats_to_offer: 4 # Number of seats available to consume time from this node # seats_to_fill: 3 # Number of seats this node seeks to fill from other nodes to consume time # concurrent_sources: 1 # Number of concurrent PTP sources used to steer our clock(s) # active_sync_interval: -3 # sync interval for active sources # active_delayrequest_interval: -3 # delay request interval for active sources # monitor_sync_interval: 0 # sync interval for sources we monitor # monitor_delayrequest_interval: 0 # delay request interval for sources we monitor # capabilities: ["hqosc-1500"] # high-quality oscillator 1.5us drift per 24 hours # preference_score: 0 # Used when requesting capacity from reservations # reservations: ["1500:50%:115,116", "750:25%"] # List containing client seat reservations: # : # : # # debug: false # debug logging specifically for ptpsquared # advanced: # asymmetry_compensation: 0 # In nanoseconds. Static compensation for know asymmetry (+/- as the case maybe). All interfaces # is_better_factor: 1.4 # How much "better" does a source need to be to be selected instead of a current source # eos_weight: 1.0 # Weight attributed to error of source std dev calculation in determining hop cost # All costs below default to zero which infers that cumulative error of source is the only factor # determining the cost of a particular time source path # base_hop_cost: 0.0 # The default cost of a single hop to downstream peers # swts_cost: 0.0 # The cost of using software timestamping # hwts_cost: 0.0 # The cost of using hardware timestamping # In nanoseconds. Static compensation for know asymmetry (+/- as the case maybe). All interfaces # latency_analysis_enable: false # # _______________________________________ # / Below are the advanced configurations \ # | change at own risk, please refer to | # \ documentation guides for detail / # --------------------------------------- # \ ^ /^ # \ / \ // \ # \ |\___/| / \// .\ # \ /O O \__ / // | \ \ *----* # / / \/_/ // | \ \ \ | # @___@` \/_ // | \ \ \/\ \ # 0/0/| \/_ // | \ \ \ \ # 0/0/0/0/| \/// | \ \ | | # 0/0/0/0/0/_|_ / ( // | \ _\ | / # 0/0/0/0/0/0/`/,_ _ _/ ) ; -. | _ _\.-~ / / # ,-} _ *-.|.-~-. .~ ~ # \ \__/ `/\ / ~-. _ .-~ / # \____(oo) *. } { / # ( (--) .----~-.\ \-` .~ # //__\\ \__ Ack! ///.----..< \ _ -~ # // \\ ///-._ _ _ _ _ _ _{^ - - - - ~ # #(THE BELOW ADVANCED OPTIONS ARE ENTERPRISE FEATURES) advanced: # Steering Algorithm Options steering: # Several algorithms are available : # # alpha, beta, gamma, rho & sigma # Most likely you will want the sigma algo in a reasonably noise # free (low jitter / low network congestion) environment. In a less than # ideal environment with hardware timestamping rho may be better depending # on the circumstances. If your servers don't support hardware timestamping, # then go for the sigma algo as well. # # algo: sigma # Log steering algo constituents # algo_logging: false # Enable the external outlier filter # outlier_filter_enabled: true # Several outlier filter types are available # "strict", "moderate" and "relaxed" # outlier_filter_type: strict # Allow offset arrival based servo # servo_offset_arrival_driven: true # In the event an alternative system adjusts the clock, timebeat will cease active operation and transition into monitoring mode. # period of time defined in the value below interference_monitor: backoff_timer: 5m # Slewing is active only when the offset is less than the step boundary, # If the offset is less than the step limit but greater than the step boundary time will be stepped and not slewed, # The step boundary cannot exceed the step limit, it is able to be equal to, # If the offset is greater than both step limit and step boundary the clock will not be synchronised, neither stepping or slewing will take place, # Any change to the below configuration will overide the default/configured limits above. extended_step_limits: #forward: #boundary: 500ms #limit: 15m #backward: #boundary: 500ms #limit: 15m windows_specific: # Default is true, setting configuration to false will alter the Windows Timer Resolution, Default of true sets the Timer Resolution to a fine value. # disable_os_relax: true linux_specific: # Enable hardware timestamping on Linux SOF_TIMESTAMPING_(R|T)X_HARDWARE # (setting this to false will also disable steering based on PPS) # hardware_timestamping: true # Enable external software timestamping on Linux SOF_TIMESTAMPING_(R|T)X_SOFTWARE # external_software_timestamping: true # Synchronise non-master PHC (nic) clocks on Linux # sync_nic_slaves: false # Don't synchronise these clocks on Linux # disable_adjustment: ['system', 'ens1', 'enp2s0'] # Fixed PHC offset strategy (default order of preference is 1st: precise, 2nd: extended, # 3rd: pps, 4th: basic). List of ":" # phc_offset_strategy: ["ens1:pps"] # PHC smoothing mechanism. Defaults to "minimum". Other option is "median". List of ":" # phc_smoothing_strategy: ["ens1:median"] # Enable the internal modified lucky packet PHC outlier filter # phc_lp_filter_enabled: false # Enable the internal none-Gausian PHC outlier filter # phc_ng_filter_enabled: false # Interface specific PHC samples to determine offset from system clock (default is 15: list of ":") # phc_samples: ["ens5f0np0:5"] ptp_tuning: # Enable PTP sockets that bind to all interfaces. If disabled interface parameter # must be specified in the time source configuration # enable_ptp_global_sockets: true # Randomly delay DELAY_REQ packets by 200-800ms from receipt of SYNC packets # (this option will be forced true for multicast sources irrespective of the value below) # relax_delay_requests: true # When auto discover is enabled, ptp multicast sources will automatically be configured # as secondary sources based on received announce messages if no explicit configuration # in the domain exist. # auto_discover_enabled: true cli: # Enable the SSH based CLI interface. I.e. to access: ssh -p 65129 admin@127.0.0.1 # enable: false # bind_port: 65129 # bind_host: 127.0.0.1 # Server SSH key. If path specified key will be loaded or generated. Otherwise key will be random on startup # server_key: "/etc/timebeat/cli_id_rsa" # Authorised SSH keys (yes... with an s not a z....) # authorised_keys: "/etc/timebeat/authorised_keys" # CLI username and password # username: "admin" # password: "password" # ================================== General =================================== # The name of the shipper that publishes the network data. It can be used to group # all the transactions sent by a single shipper in the web interface. #name: # The tags of the shipper are included in their own field with each # transaction published. #tags: ["service-X", "web-tier"] # Optional fields that you can specify to add additional information to the # output. #fields: # env: staging # ================================= Dashboards ================================= # These settings control loading the sample dashboards to the Kibana index. Loading # the dashboards is disabled by default and can be enabled either by setting the # options here or by using the `setup` command. setup.dashboards.enabled: false # The URL from where to download the dashboards archive. By default this URL # has a value which is computed based on the Beat name and version. For released # versions, this URL points to the dashboard archive on the artifacts.elastic.co # website. #setup.dashboards.url: #windows directory path: #setup.dashboards.directory: ${path.home}\kibana #Linux directory path: #setup.dashboards.directory: ${path.home}/kibana # ================================== Outputs =================================== # Configure what output to use when sending the data collected by the beat. # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch: # Array of hosts to connect to. hosts: ['localhost:9200'] # insert ip address of your elastic server # hosts: ['elastic.customer.timebeat.app:9200'] # host format when using timebeat cloud # Protocol - either `http` (default) or `https` (https is required for timebeat cloud). #protocol: 'https' # Authentication credentials - either API key or username/password. Must match your elastic details, only applicable if configured in elastic. #api_key: 'id:api_key' #username: 'elastic' #password: 'changeme' # Timebeat Cloud PKI connectivity details # ssl.certificate_authorities: ['/etc/timebeat/pki/ca.crt'] # ssl.certificate: '/etc/timebeat/pki/timebeat.crt' # ssl.key: '/etc/timebeat/pki/timebeat.key' # ssl.verification_mode: "certificate" # setup.ilm.rollover_alias: "timebeat" # ================================== Logging =================================== # There are four options for the log output: file, stderr, syslog, eventlog # The file output is the default. # Sets log level. The default log level is info. # Available log levels are: error, warning, info, debug #logging.level: info # If enabled, Timebeat periodically logs its internal metrics that have changed # in the last period. For each metric that changed, the delta from the value at # the beginning of the period is logged. Also, the total values for # all non-zero internal metrics are logged on shutdown. The default is true. #logging.metrics.enabled: true # The period after which to log the internal metrics. The default is 30s. #logging.metrics.period: 30s # Logging to rotating files. Set logging.to_files to false to disable logging to # files. logging.to_files: true logging.files: # Configure the path where the logs are written. The default is the logs directory # under the home path (the binary location). path: /var/log/timebeat # The name of the files where the logs are written to. name: timebeat # Configure log file size limit. If limit is reached, log file will be # automatically rotated rotateeverybytes: 10485760 # = 10MB # Number of rotated log files to keep. Oldest files will be deleted first. keepfiles: 7 # The permissions mask to apply when rotating log files. The default value is 0600. # Must be a valid Unix-style file permissions mask expressed in octal notation. permissions: 0600 # Enable log file rotation on time intervals in addition to size-based rotation. # Intervals must be at least 1s. Values of 1m, 1h, 24h, 7*24h, 30*24h, and 365*24h # are boundary-aligned with minutes, hours, days, weeks, months, and years as # reported by the local system clock. All other intervals are calculated from the # Unix epoch. Defaults to disabled. #interval: 0 # Rotate existing logs on startup rather than appending to the existing # file. Defaults to true. # rotateonstartup: true # ============================== Process Security ============================== # Disable the filtering of syscalls as we require system clock access seccomp.enabled: false # ============================= X-Pack Monitoring ============================== # Timebeat can export internal metrics to a central Elasticsearch monitoring # cluster. This requires xpack monitoring to be enabled in Elasticsearch. The # reporting is disabled by default. # Set to true to enable the monitoring reporter. monitoring.enabled: true # Sets the UUID of the Elasticsearch cluster under which monitoring data for this # Timebeat instance will appear in the Stack Monitoring UI. If output.elasticsearch # is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch. #monitoring.cluster_uuid: # Uncomment to send the metrics to Elasticsearch. Most settings from the # Elasticsearch output are accepted here as well. # Note that the settings should point to your Elasticsearch *monitoring* cluster. # Any setting that is not set is automatically inherited from the Elasticsearch # output configuration, so if you have the Elasticsearch output configured such # that it is pointing to your Elasticsearch monitoring cluster, you can simply # uncomment the following line. monitoring.elasticsearch: