feat: add configure_node_exporter

This commit is contained in:
Konano 2024-10-24 01:41:11 +08:00
parent ab05db660f
commit b656906971
6 changed files with 109 additions and 0 deletions

View File

@ -409,6 +409,44 @@ configure_proxychains() {
fi
}
configure_node_exporter() {
[ -f /usr/local/bin/node_exporter ] && return
[ $offline -eq 1 ] && return
if confirm_action "要配置 Node Exporter 吗?" "N"; then
latest_version=$(curl -s "https://api.github.com/repos/prometheus/node_exporter/releases/latest" | grep -o '"tag_name": ".*"' | cut -d'"' -f4)
if [ -z "$latest_version" ]; then
latest_version="v1.8.2"
fi
echo "Latest version of node-exporter is $latest_version"
release="node_exporter-${latest_version#v}.$(uname -s)-$(dpkg --print-architecture).tar.gz"
wget $github/prometheus/node_exporter/releases/download/$latest_version/$release -O $tempdir/node_exporter.tar.gz
tar -xzf $tempdir/node_exporter.tar.gz -C $tempdir
node_exporter_dir=$(find $tempdir -type d -name "node_exporter-*")
sudo cp $node_exporter_dir/node_exporter /usr/local/bin/node_exporter
sudo chmod +x /usr/local/bin/node_exporter
rm $tempdir/node_exporter.tar.gz
rm $node_exporter_dir -r
if [ ! -d "/etc/node_exporter" ]; then
sudo mkdir -p /etc/node_exporter
fi
sudo cp $scriptdir/files/node_exporter.yml /etc/node_exporter/config.yml
sudo cp $scriptdir/files/node_exporter.crt /etc/node_exporter/cert.crt
sudo cp $scriptdir/files/node_exporter.key /etc/node_exporter/cert.key
# Create a systemd service
sudo cp $scriptdir/files/node_exporter.service /etc/systemd/system/node_exporter.service
sudo chmod +x /etc/systemd/system/node_exporter.service
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
fi
}
# configure_nodejs() {
# [ -f /usr/local/bin/node ] && return
# [ $offline -eq 1 ] && return
@ -477,3 +515,4 @@ configure_timedate
configure_bootinfo
configure_oomkiller
# configure_swap
configure_node_exporter

View File

@ -46,5 +46,6 @@ iptables -P INPUT DROP
# allow by default
add_input_tcp_filter 9443 gost-proxy
add_input_tcp_filter 6330 node-exporter
# ====================

22
files/node_exporter.crt Normal file
View File

@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDjzCCAnegAwIBAgIUNYsGqrXga3IuVxLG6KB/rogWTK0wDQYJKoZIhvcNAQEL
BQAwVzELMAkGA1UEBhMCQ04xEDAOBgNVBAgMB0JlaWppbmcxEDAOBgNVBAcMB0Jl
aWppbmcxEDAOBgNVBAoMB25hbm8uYWMxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0y
NDEwMjMxNjQ5MjFaFw0zNDEwMjExNjQ5MjFaMFcxCzAJBgNVBAYTAkNOMRAwDgYD
VQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdCZWlqaW5nMRAwDgYDVQQKDAduYW5vLmFj
MRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDbSen/P/5oN/XysCwr8MMpRTVvYbAQfb7IsVFr3r0r7Csi3sXeGdjiks6t
U1RdmCOHkrC3kCiZO4aozYa9cSQexElBsZlxsFrBwmk5pwjoWkIMkWgvX+olVYau
dKBAI3ERnPFuNER1SCz//HtFYEGb5g9he8mabPX3OjlOaZlEgH+kVCbE6J3lyhKb
/f5hj9XPY2dft/xBIF3YjbtoischR5lrT6wVXTDOyEVeGZwWKMyFpilZRpZpKXrz
7SSKN3Br8tred7Lb69ezRer4AwqXaOf/5fkDSYB4u5DUDqahdGX0IqajfL68eIY5
weS9Elxvg6br4P1rrzkVcylvzD6BAgMBAAGjUzBRMB0GA1UdDgQWBBS93OW9XU0q
13p4PPxGd+WV5pja2TAfBgNVHSMEGDAWgBS93OW9XU0q13p4PPxGd+WV5pja2TAP
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQCYv5X2Xvfa5RHlZcIX
tfTdL4i3qPyGlxJFQY80BOqCinrW4+fYefaONMLethN1+LU6jFvqE/ukGjFlyAq2
a1Y2PddaUbnKoDD0FFtQIVVG+D33zeobmomWnDmk0c18bAW6TMgxc81Ksa2K11JY
5RWb4Pn11lZACK3cZPebgsAXKktnRUVs4UnvKRvnn/hoMIv5ZpGXB2/N/ZotBkUR
iln11RI9c+BeOPWfUuKKk68Vih0yRIgkNjPVHec4EACQCMpWa9uVhHwI1YdebPFp
r9TF5z6Dt/eBsxEI6yZc/7Fo2SReL+Eb+Ji1QTJjQX7WkQwB5AA2bN5Qc5/9u9ti
xdSL
-----END CERTIFICATE-----

28
files/node_exporter.key Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDbSen/P/5oN/Xy
sCwr8MMpRTVvYbAQfb7IsVFr3r0r7Csi3sXeGdjiks6tU1RdmCOHkrC3kCiZO4ao
zYa9cSQexElBsZlxsFrBwmk5pwjoWkIMkWgvX+olVYaudKBAI3ERnPFuNER1SCz/
/HtFYEGb5g9he8mabPX3OjlOaZlEgH+kVCbE6J3lyhKb/f5hj9XPY2dft/xBIF3Y
jbtoischR5lrT6wVXTDOyEVeGZwWKMyFpilZRpZpKXrz7SSKN3Br8tred7Lb69ez
Rer4AwqXaOf/5fkDSYB4u5DUDqahdGX0IqajfL68eIY5weS9Elxvg6br4P1rrzkV
cylvzD6BAgMBAAECggEBAIaM77ridSNVUt+6ISBE9jqYcJULB5DW1v0lb6QUY1ZT
7pPSxO3mRiGfmpjXDGjxNLu20h+PoJmE4LcqhIYwqc0G+zwH0PLlForU0uPBDcIj
v2sevSJ0Y6LMu3rHrJwuIu5/sdPA1lBwHMxlCu4ihZ82pjFWVvkd6j3rx8XJHXXd
j3hqKYZHWPPcY5lOGzarueEmJSTI+Yk2WK5WeIoiNYATFj7LLD0i8Vj7Ld4mPt4L
BE/CrtpPz+gnUwhcfSiCAdFjxXAzn+RkMknp8vCfPHY8vOM8VXQanKATCtpUJhFT
5BQfCfwt4wGOh7p3nFDKa7pbVBWIj9lNdIgCrdrTnVECgYEA9mtyerxITGCMgFhx
OcYxZmW8SdygktJnks5NbwA7HD6r5Z1BD0o062gM6eccHZlXN3/0dQS9lqSggZNx
H4b5FdbD0b85o139S9pAthWgdSMOznCA8LpqOm6hx/wddAWjqYOhOr/CErTyTxvK
xne59WvjnE35BaNMXPd/SeUM6GcCgYEA49BwZCSh2eqOrlDH5P5VMBne5QMQsyPN
8Ui/bVR02Usc7DKvlUeIo/QVvXIgK8Z6HsU5HF+/jnlXeav3QrvLQzWuAwK2/k2M
NW5ymVPX63dMWrMqTjv8hz0B57lQaK/ejf29gWmZhY4l7H+GrCJQQBK7YBjy9cJX
uE3H7yR4cNcCgYAL0VVZK4RwHUU/tn4fnjCqT4C7LhiJUgvjj39JLoKnNR47UdJX
8GAfVgsggJPpm3wCTmGj5wlMmzKTZEXNlESH1pfnjDswaYaHR71IvjrGw1qnbd/R
K6+Cg+HAXIfxE4Ao1gY6cg3VpdXlE1kjMYS6j2UIDvk9WvqDjt8M5S48SwKBgDo7
XX87neOGAVKtc2slV8Ej28XOMsaXsFysq8HWhMfGW25Exnzx/AtsqOHz+iU2ZqDW
6PJHxz8z5RhEzL9SIXLclc5PM1dtmxlNUh2/QMH/jJTilz3IN5SaE5KX2+Xmjozc
/0PFKmjpHOiG8HWvj7PRFfRKbFBFjQafWyvVtrOhAoGATc1PNAlPuvwycDRbM4CH
fI7pOws/4ha76OL7W3BxqDNtGtiBcCy95OxAu/7QSuxUgsJIEYBkEm+QCnvXoj+F
g00cglRphbUVuAEuxMbID0rgKc0f1lKocAVWVU80UekITXxMbnbWA+jGNBEe6yY7
gnybiO6hoE6xdPg0jAtiKkk=
-----END PRIVATE KEY-----

View File

@ -0,0 +1,13 @@
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=nobody
ExecStart=/usr/local/bin/node_exporter \
--web.config=/etc/node_exporter/config.yml \
--web.listen-address=":6330"
Restart=always
[Install]
WantedBy=multi-user.target

6
files/node_exporter.yml Normal file
View File

@ -0,0 +1,6 @@
tls_server_config:
cert_file: /etc/node_exporter/cert.crt
key_file: /etc/node_exporter/cert.key
basic_auth_users:
# pwd: uVaV7z88
nano: $2y$12$aeUMZVQtMslJeho0Hq/76eBG5xMiMI6Q9OImEcuU3l7oPvRnNlx1O