最終更新 1 month ago

Лекия скрипт за Node Exporter в другите контейнери!

install-node-exporter.sh Raw
1#!/bin/bash
2
3# Цветове
4GREEN='\033[0;32m'
5YELLOW='\033[1;33m'
6RED='\033[0;31m'
7NC='\033[0m'
8
9echo -e "${GREEN}================================${NC}"
10echo -e "${GREEN}Node Exporter Quick Install${NC}"
11echo -e "${GREEN}За Proxmox LXC контейнери${NC}"
12echo -e "${GREEN}================================${NC}\n"
13
14# Проверка за root
15if [[ $EUID -ne 0 ]]; then
16 echo -e "${RED}Този скрипт трябва да се изпълни като root!${NC}"
17 exit 1
18fi
19
20# Актуализация
21echo -e "${YELLOW}[1/4] Актуализация на системата...${NC}"
22apt-get update -qq > /dev/null 2>&1
23apt-get install -y wget tar > /dev/null 2>&1
24
25# Създаване на потребител
26echo -e "${YELLOW}[2/4] Създаване на node_exporter потребител...${NC}"
27useradd --no-create-home --shell /bin/false node_exporter 2>/dev/null || true
28
29# Инсталация на Node Exporter
30echo -e "${YELLOW}[3/4] Инсталация на Node Exporter...${NC}"
31NODE_VERSION="1.6.1"
32wget -q https://github.com/prometheus/node_exporter/releases/download/v${NODE_VERSION}/node_exporter-${NODE_VERSION}.linux-amd64.tar.gz
33
34if [ $? -ne 0 ]; then
35 echo -e "${RED}Грешка при изтеглянето на Node Exporter!${NC}"
36 exit 1
37fi
38
39tar xzf node_exporter-${NODE_VERSION}.linux-amd64.tar.gz
40cp node_exporter-${NODE_VERSION}.linux-amd64/node_exporter /usr/local/bin/
41chown node_exporter:node_exporter /usr/local/bin/node_exporter
42rm -rf node_exporter-${NODE_VERSION}.linux-amd64*
43
44# Systemd service
45cat > /etc/systemd/system/node_exporter.service <<EOF
46[Unit]
47Description=Node Exporter
48Wants=network-online.target
49After=network-online.target
50
51[Service]
52User=node_exporter
53Group=node_exporter
54Type=simple
55ExecStart=/usr/local/bin/node_exporter
56
57[Install]
58WantedBy=multi-user.target
59EOF
60
61# Стартиране
62echo -e "${YELLOW}[4/4] Стартиране на Node Exporter...${NC}"
63systemctl daemon-reload
64systemctl enable node_exporter > /dev/null 2>&1
65systemctl start node_exporter
66
67# Проверка
68sleep 2
69if systemctl is-active --quiet node_exporter; then
70 echo -e "\n${GREEN}✓ Node Exporter е инсталиран успешно!${NC}"
71
72 CONTAINER_IP=$(hostname -I | awk '{print $1}')
73 CONTAINER_NAME=$(hostname)
74
75 echo -e "\n${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
76 echo -e "${GREEN}Информация за контейнера:${NC}"
77 echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
78 echo -e " Hostname: ${GREEN}${CONTAINER_NAME}${NC}"
79 echo -e " IP Address: ${GREEN}${CONTAINER_IP}${NC}"
80 echo -e " Port: ${GREEN}9100${NC}"
81 echo -e " Metrics URL: ${GREEN}http://${CONTAINER_IP}:9100/metrics${NC}"
82
83 echo -e "\n${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
84 echo -e "${GREEN}Следващи стъпки:${NC}"
85 echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
86 echo -e "1. Отвори SSH към ${GREEN}мониторинг контейнера${NC}"
87 echo -e "2. Изпълни:\n"
88 echo -e " ${GREEN}add-lxc-container ${CONTAINER_IP} '${CONTAINER_NAME}'${NC}\n"
89 echo -e " или ръчно редактирай: ${GREEN}/etc/prometheus/prometheus.yml${NC}"
90 echo -e " и добави:"
91 echo -e " ${YELLOW} - targets: ['${CONTAINER_IP}:9100']${NC}"
92 echo -e " ${YELLOW} labels:${NC}"
93 echo -e " ${YELLOW} alias: '${CONTAINER_NAME}'${NC}"
94 echo -e " ${YELLOW} type: 'lxc-container'${NC}\n"
95 echo -e "3. Рестартирай Prometheus: ${GREEN}systemctl restart prometheus${NC}"
96 echo -e "${YELLOW}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}\n"
97
98 exit 0
99else
100 echo -e "\n${RED}✗ Node Exporter не успя да стартира!${NC}"
101 echo -e "${YELLOW}Провери логовете: journalctl -u node_exporter -f${NC}\n"
102 exit 1
103fi