master
md 136 lines 4.32 KB
Rendered Raw
1 <!--startmeta
2 custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/collectors/proc.plugin/integrations/entropy.md"
3 meta_yaml: "https://github.com/netdata/netdata/edit/master/src/collectors/proc.plugin/metadata.yaml"
4 sidebar_label: "Entropy"
5 learn_status: "Published"
6 learn_rel_path: "Collecting Metrics/Collectors/Operating Systems"
7 keywords: ['entropy']
8 message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
9 endmeta-->
10
11 # Entropy
12
13
14 <img src="https://netdata.cloud/img/syslog.png" width="150"/>
15
16
17 Plugin: proc.plugin
18 Module: /proc/sys/kernel/random/entropy_avail
19
20 <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
21
22 ## Overview
23
24 Entropy, a measure of the randomness or unpredictability of data.
25
26 In the context of cryptography, entropy is used to generate random numbers or keys that are essential for
27 secure communication and encryption. Without a good source of entropy, cryptographic protocols can become
28 vulnerable to attacks that exploit the predictability of the generated keys.
29
30 In most operating systems, entropy is generated by collecting random events from various sources, such as
31 hardware interrupts, mouse movements, keyboard presses, and disk activity. These events are fed into a pool
32 of entropy, which is then used to generate random numbers when needed.
33
34 The `/dev/random` device in Linux is one such source of entropy, and it provides an interface for programs
35 to access the pool of entropy. When a program requests random numbers, it reads from the `/dev/random` device,
36 which blocks until enough entropy is available to generate the requested numbers. This ensures that the
37 generated numbers are truly random and not predictable.
38
39 However, if the pool of entropy gets depleted, the `/dev/random` device may block indefinitely, causing
40 programs that rely on random numbers to slow down or even freeze. This is especially problematic for
41 cryptographic protocols that require a continuous stream of random numbers, such as SSL/TLS and SSH.
42
43 To avoid this issue, some systems use a hardware random number generator (RNG) to generate high-quality
44 entropy. A hardware RNG generates random numbers by measuring physical phenomena, such as thermal noise or
45 radioactive decay. These sources of randomness are considered to be more reliable and unpredictable than
46 software-based sources.
47
48 One such hardware RNG is the Trusted Platform Module (TPM), which is a dedicated hardware chip that is used
49 for cryptographic operations and secure boot. The TPM contains a built-in hardware RNG that generates
50 high-quality entropy, which can be used to seed the pool of entropy in the operating system.
51
52 Alternatively, software-based solutions such as `Haveged` can be used to generate additional entropy by
53 exploiting sources of randomness in the system, such as CPU utilization and network traffic. These solutions
54 can help to mitigate the risk of entropy depletion, but they may not be as reliable as hardware-based solutions.
55
56
57
58
59 This collector is only supported on the following platforms:
60
61 - linux
62
63 This collector only supports collecting metrics from a single instance of this integration.
64
65
66 ### Default Behavior
67
68 #### Auto-Detection
69
70 This integration doesn't support auto-detection.
71
72 #### Limits
73
74 The default configuration for this integration does not impose any limits on data collection.
75
76 #### Performance Impact
77
78 The default configuration for this integration is not expected to impose a significant performance impact on the system.
79
80 ## Setup
81
82
83 ### Prerequisites
84
85 No action required.
86
87 ### Configuration
88
89 #### Options
90
91
92
93 There are no configuration options.
94
95
96
97 #### via File
98
99 There is no configuration file.
100
101 ##### Examples
102 There are no configuration examples.
103
104
105
106 ## Alerts
107
108
109 The following alerts are available:
110
111 | Alert name | On metric | Description |
112 |:------------|:----------|:------------|
113 | [ lowest_entropy ](https://github.com/netdata/netdata/blob/master/src/health/health.d/entropy.conf) | system.entropy | minimum number of bits of entropy available for the kernel’s random number generator |
114
115
116 ## Metrics
117
118 Metrics grouped by *scope*.
119
120 The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
121
122
123
124 ### Per Entropy instance
125
126
127
128 This scope has no labels.
129
130 Metrics:
131
132 | Metric | Dimensions | Unit |
133 |:------|:----------|:----|
134 | system.entropy | entropy | entropy |
135
136