Changes for page Configuring a VPS machine from scratch
Last modified by Alexandru Pentilescu on 2024/07/22 21:37
From version 10.1
edited by Alexandru Pentilescu
on 2024/07/22 21:05
on 2024/07/22 21:05
Change comment:
There is no comment for this version
To version 11.1
edited by Alexandru Pentilescu
on 2024/07/22 21:24
on 2024/07/22 21:24
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -163,6 +163,125 @@ 163 163 wget https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.gz 164 164 {{/code}} 165 165 166 +Once this is done, extract the contents of the archive: 167 + 168 +{{code language="bash"}} 169 +tar -xf node_exporter-0.15.2.linux-amd64.tar.gz 170 +{{/code}} 171 + 172 +We will be running this as its own user. In order to avoid having to create a home directory for that user, it's best if we move the utilities that just got extracted to the root directories: 173 + 174 +{{code language="bash"}} 175 +mv node_exporter-0.15.2.linux-amd64/node_exporter /usr/local/bin 176 +{{/code}} 177 + 178 +Create the new user: 179 + 180 +{{code language="bash"}} 181 +useradd -rs /bin/false node_exporter 182 +{{/code}} 183 + 184 +Create a new systemd service file, that will start the node_exporter automatically, after each boot: 185 + 186 +{{code language="systemd"}} 187 +[Unit] 188 +Description=Node Exporter 189 +After=network.target 190 + 191 +[Service] 192 +User=node_exporter 193 +Group=node_exporter 194 +Type=simple 195 +ExecStart=/usr/local/bin/node_exporter 196 + 197 +[Install] 198 +WantedBy=multi-user.target 199 +{{/code}} 200 + 201 +Once this has been done, reload the service files, enable the newly created service and start it: 202 + 203 +{{code language="bash"}} 204 +systemctl daemon-reload 205 +systemctl enable node_exporter 206 +systemctl start node_exporter 207 +{{/code}} 208 + 209 +== Installing Prometheus == 210 +Prometheus will be aggregating all the data that is collected by the node_exporter and allowing for it to be queried with a standardized syntax. 211 + 212 +To install Prometheus, we must first download it: 213 + 214 +{{code language="bash"}} 215 +wget https://github.com/prometheus/prometheus/releases/download/v2.1.0/prometheus-2.1.0.linux-amd64.tar.gz 216 +tar -xf prometheus-2.1.0.linux-amd64.tar.gz 217 +{{/code}} 218 + 219 +Much like with node_exporer above, we will force Prometheus to run as its own user, for security reasons. As such, we should isolate its files to the root filesystem: 220 + 221 +{{code language="bash"}} 222 +mv prometheus-2.1.0.linux-amd64/prometheus prometheus-2.1.0.linux-amd64/promtool /usr/local/bin 223 +{{/code}} 224 + 225 +We should also create new directories to store the relevant data for Prometheus: 226 + 227 +{{code language="bash"}} 228 +mkdir /etc/prometheus /var/lib/prometheus 229 +{{/code}} 230 + 231 +Then move the current directories to the appropriate system-level locations: 232 + 233 +{{code language="bash"}} 234 +mv prometheus-2.1.0.linux-amd64/consoles prometheus-2.1.0.linux-amd64/console_libraries /etc/prometheus 235 +{{/code}} 236 + 237 +== Configuring Prometheus == 238 +Create a new /etc/prometheus/prometheus.yml with the following contents: 239 + 240 +{{code language="yml"}} 241 +global: 242 + scrape_interval: 10s 243 +scrape_configs: 244 + - job_name: 'node' 245 + static_configs: 246 + - targets: ['localhost:9100'] 247 +{{/code}} 248 + 249 +Once the above is done, we should create the new prometheus user: 250 + 251 +{{code language="bash"}} 252 +useradd -rs /bin/false prometheussudo chown -R prometheus: /etc/prometheus /var/lib/prometheus 253 +chown -R prometheus: /etc/prometheus /var/lib/prometheus 254 +{{/code}} 255 + 256 +Then, please create an /etc/systemd/system/prometheus.service file with the following contents: 257 + 258 +{{code language="systemd"}} 259 +[Unit] 260 +Description=Prometheus 261 +After=network.target 262 + 263 +[Service] 264 +User=prometheus 265 +Group=prometheus 266 +Type=simple 267 +ExecStart=/usr/local/bin/prometheus \ 268 + --config.file /etc/prometheus/prometheus.yml \ 269 + --storage.tsdb.path /var/lib/prometheus/ \ 270 + --web.console.templates=/etc/prometheus/consoles \ 271 + --web.console.libraries=/etc/prometheus/console_libraries 272 + 273 +[Install] 274 +WantedBy=multi-user.target 275 +{{/code}} 276 + 277 +Then reload: 278 + 279 +{{code language="bash"}} 280 +systemctl daemon-reload 281 +systemctl enable prometheus 282 +systemctl start prometheus 283 +{{/code}} 284 + 166 166 ))) 167 167 168 168