Última atividade 1 month ago

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

urocibg revisou este gist 1 month ago. Ir para a revisão

1 file changed, 103 insertions

install-node-exporter.sh(arquivo criado)

@@ -0,0 +1,103 @@
1 + #!/bin/bash
2 +
3 + # Цветове
4 + GREEN='\033[0;32m'
5 + YELLOW='\033[1;33m'
6 + RED='\033[0;31m'
7 + NC='\033[0m'
8 +
9 + echo -e "${GREEN}================================${NC}"
10 + echo -e "${GREEN}Node Exporter Quick Install${NC}"
11 + echo -e "${GREEN}За Proxmox LXC контейнери${NC}"
12 + echo -e "${GREEN}================================${NC}\n"
13 +
14 + # Проверка за root
15 + if [[ $EUID -ne 0 ]]; then
16 + echo -e "${RED}Този скрипт трябва да се изпълни като root!${NC}"
17 + exit 1
18 + fi
19 +
20 + # Актуализация
21 + echo -e "${YELLOW}[1/4] Актуализация на системата...${NC}"
22 + apt-get update -qq > /dev/null 2>&1
23 + apt-get install -y wget tar > /dev/null 2>&1
24 +
25 + # Създаване на потребител
26 + echo -e "${YELLOW}[2/4] Създаване на node_exporter потребител...${NC}"
27 + useradd --no-create-home --shell /bin/false node_exporter 2>/dev/null || true
28 +
29 + # Инсталация на Node Exporter
30 + echo -e "${YELLOW}[3/4] Инсталация на Node Exporter...${NC}"
31 + NODE_VERSION="1.6.1"
32 + wget -q https://github.com/prometheus/node_exporter/releases/download/v${NODE_VERSION}/node_exporter-${NODE_VERSION}.linux-amd64.tar.gz
33 +
34 + if [ $? -ne 0 ]; then
35 + echo -e "${RED}Грешка при изтеглянето на Node Exporter!${NC}"
36 + exit 1
37 + fi
38 +
39 + tar xzf node_exporter-${NODE_VERSION}.linux-amd64.tar.gz
40 + cp node_exporter-${NODE_VERSION}.linux-amd64/node_exporter /usr/local/bin/
41 + chown node_exporter:node_exporter /usr/local/bin/node_exporter
42 + rm -rf node_exporter-${NODE_VERSION}.linux-amd64*
43 +
44 + # Systemd service
45 + cat > /etc/systemd/system/node_exporter.service <<EOF
46 + [Unit]
47 + Description=Node Exporter
48 + Wants=network-online.target
49 + After=network-online.target
50 +
51 + [Service]
52 + User=node_exporter
53 + Group=node_exporter
54 + Type=simple
55 + ExecStart=/usr/local/bin/node_exporter
56 +
57 + [Install]
58 + WantedBy=multi-user.target
59 + EOF
60 +
61 + # Стартиране
62 + echo -e "${YELLOW}[4/4] Стартиране на Node Exporter...${NC}"
63 + systemctl daemon-reload
64 + systemctl enable node_exporter > /dev/null 2>&1
65 + systemctl start node_exporter
66 +
67 + # Проверка
68 + sleep 2
69 + if 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
99 + else
100 + echo -e "\n${RED}✗ Node Exporter не успя да стартира!${NC}"
101 + echo -e "${YELLOW}Провери логовете: journalctl -u node_exporter -f${NC}\n"
102 + exit 1
103 + fi
Próximo Anterior