From b656906971b52fa34171c50f5d4f6574d4505b8e Mon Sep 17 00:00:00 2001 From: Konano Date: Thu, 24 Oct 2024 01:41:11 +0800 Subject: [PATCH] feat: add configure_node_exporter --- configure_priv.sh | 39 +++++++++++++++++++++++++++++++++++++ files/iptables-load | 1 + files/node_exporter.crt | 22 +++++++++++++++++++++ files/node_exporter.key | 28 ++++++++++++++++++++++++++ files/node_exporter.service | 13 +++++++++++++ files/node_exporter.yml | 6 ++++++ 6 files changed, 109 insertions(+) create mode 100644 files/node_exporter.crt create mode 100644 files/node_exporter.key create mode 100644 files/node_exporter.service create mode 100644 files/node_exporter.yml diff --git a/configure_priv.sh b/configure_priv.sh index e0618d9..2857ceb 100755 --- a/configure_priv.sh +++ b/configure_priv.sh @@ -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 diff --git a/files/iptables-load b/files/iptables-load index cff9446..9c995f2 100644 --- a/files/iptables-load +++ b/files/iptables-load @@ -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 # ==================== diff --git a/files/node_exporter.crt b/files/node_exporter.crt new file mode 100644 index 0000000..bce46f6 --- /dev/null +++ b/files/node_exporter.crt @@ -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----- diff --git a/files/node_exporter.key b/files/node_exporter.key new file mode 100644 index 0000000..6daed85 --- /dev/null +++ b/files/node_exporter.key @@ -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----- diff --git a/files/node_exporter.service b/files/node_exporter.service new file mode 100644 index 0000000..140d3cd --- /dev/null +++ b/files/node_exporter.service @@ -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 diff --git a/files/node_exporter.yml b/files/node_exporter.yml new file mode 100644 index 0000000..76a8586 --- /dev/null +++ b/files/node_exporter.yml @@ -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