BCM Agent
更新时间:2025-09-25
概述
BCM-Agent用于采集云服务器上的监控数据,自动安装在您所购买的云服务器中,提供绝大多数的BEC 实例监控指标。
安装BCM Agent
安装组件
1.执行以下操作
Plain Text
1#!/usr/bin/env bash
2
3if pgrep -u 0 '^bcm-agent.upgra$' >/dev/null;then
4 echo "bcm-agent already running, exit"
5 exit
6else
7 echo "bcm-agent not detected, installing"
8fi
9
10Contain=$(uname -a | grep -E "Ubuntu|Debian" | wc -L)
11if [ $Contain -gt 0 ]; then
12 if wget -O /tmp/avalokita.deb http://169.254.169.253/download/bcm-agent/x86_64/avalokita_1.0.1.2-1_amd64.deb >/dev/null 2>&1;then
13 echo "download avalokita.deb success"
14 else
15 echo "download avalokita fail, check network, exit"
16 exit
17 fi
18 apt install /tmp/avalokita.deb -y >/dev/null 2>&1
19 rm -f /tmp/avalokita.deb
20else
21 if wget -O /tmp/avalokita.rpm http://169.254.169.253/download/bcm-agent/x86_64/avalokita-1.0.1.2-1.x86_64.rpm >/dev/null 2>&1;then
22 echo "download avalokita.rpm success"
23 else
24 echo "download avalokita fail, check network, exit"
25 exit
26 fi
27 rpm -i /tmp/avalokita.rpm >/dev/null 2>&1
28 rm -f /tmp/avalokita.rpm
29fi
30
31BCMDESTDIR=/opt/bcm-agent/var/lib/bcm-agent/
32mkdir -p $BCMDESTDIR
33cd $BCMDESTDIR
34cat > $BCMDESTDIR/cert.pem<< EOF
35-----BEGIN CERTIFICATE-----
36MIID5zCCAs+gAwIBAgIJAI9fdlHzDhIYMA0GCSqGSIb3DQEBBQUAMIGJMQswCQYD
37VQQGEwJjbjEQMA4GA1UECAwHQmVpamluZzEQMA4GA1UEBwwHQmVpamluZzEOMAwG
38A1UECgwFQmFpZHUxDjAMBgNVBAsMBUJhaWR1MQ4wDAYDVQQDDAVCYWlkdTEmMCQG
39CSqGSIb3DQEJARYXbWlhb3hpYW9ndWFuZ0BiYWlkdS5jb20wHhcNMTQxMTEzMDky
40OTU2WhcNMTQxMjEzMDkyOTU2WjCBiTELMAkGA1UEBhMCY24xEDAOBgNVBAgMB0Jl
41aWppbmcxEDAOBgNVBAcMB0JlaWppbmcxDjAMBgNVBAoMBUJhaWR1MQ4wDAYDVQQL
42DAVCYWlkdTEOMAwGA1UEAwwFQmFpZHUxJjAkBgkqhkiG9w0BCQEWF21pYW94aWFv
43Z3VhbmdAYmFpZHUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
44yo/h2G/OX9wWpihNy+cw0PLbRB3thG+eOmLwT+ABPr4VjXpVfXCetxdAg6K7DiRo
45FnuYB+JAXjXpTe6ww9FpGrVNZd1o2l0VR/ptcelR1dNU+FfunLy16267hfPo8J7R
46aldy9agKjZ+zPphsajZ/TxEdkmvovtaJpsyvGZkPLYYS0QcY2AxXIp6oAwZWcpb1
47Fp2NT79HjNT2iAyPlA7piaBa6ltHy7MWCuPgOhIA9rGtjaOzHXGo6LB9NluFGrCv
48/9+Lkc5zUrNCa6CsCPnqzGprbnXM00RilU9KygwQAzsuqqHD031iv49SZCKBm1I2
49BFnsooVLuB1xhxMSC9OkhwIDAQABo1AwTjAdBgNVHQ4EFgQUWGvm1aJxtdY1TWe8
50buhwz1PjnY8wHwYDVR0jBBgwFoAUWGvm1aJxtdY1TWe8buhwz1PjnY8wDAYDVR0T
51BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEARm3S3ck2D33oRiTVSqdPQz0JfqI0
52keo+lc1C6mS/jqx07AdEAVbMm3ciKFiFJoJLYIzQg/i7kbjRnTdnd6KB0ANmKkZS
533TtTRrwxn6Ytvyqe/nC5wfHsXFk62G/ORYFCXfl+7GRyCc68rmvFi52GMEZOpBHT
54OyHBjgbMvyaxJYbAB7Wh/d2LzKpUV/xAP6RcP+z7CDhN1VFfyaFuPSKQt10caEm3
55IGWh8O2uoBeLX3o8PT1ZYW65RbeljOMoxreRsDG+mNKU0C1sQ/i6Aor+5vQjo6ja
56MAgUyAdk3xHfFZVbZ/dp+EqlphEGp5/yjnjVG81z3JX6hGXx8mjvsRWu0w==
57-----END CERTIFICATE-----
58EOF
59
60ln -sf /opt/avalokita/bin/avalokita /opt/bcm-agent/var/lib/bcm-agent/bcm-agent.upgrader
61
62/opt/bcm-agent/var/lib/bcm-agent/bcm-agent.upgrader --update-url=http://169.254.169.254/packages/collectd-bcm-v2-x86_64.sh --signature-url=http://169.254.169.254/packages/collectd-bcm-v2-x86_64.sh.sig --certificate=/opt/bcm-agent/var/lib/bcm-agent/cert.pem --max-executable-size=31457280 /opt/bcm-agent/var/lib/bcm-agent/collectd-bcm-v2-x86_64.sh >/dev/null </dev/null 2>&1 &
63
64sleep 2
65
66BCMSERVICE=/etc/init.d/bcm-agent
67cat > $BCMSERVICE<< "EOF"
68#!/bin/bash
69
70#
71# Init file for Baidu cloud monitor agent
72#
73### BEGIN INIT INFO
74# Provides: bcm-agent
75# Required-Start: $local_fs $syslog
76# Required-Stop: $local_fs $syslog
77# Default-Start: 2 3 4 5
78# Default-Stop: 0 1 6
79# Short-Description: Baidu cloud monitor agent
80# Description: Baidu cloud monitor(BCM) agent which collect system metrics.
81### END INIT INFO
82
83export PATH='/usr/sbin:/usr/bin:/sbin:/bin'
84
85help() {
86 echo "${0} <start|stop|restart|status>"
87 exit 1
88}
89
90die() {
91 echo "[FAILED] $@"
92 exit 1
93}
94
95ok() {
96 echo "[OK] $@"
97}
98
99run() {
100 # 100M
101 ulimit -m 100000
102 ulimit -c 0
103
104 nice_prefix=""
105 type nice >/dev/null && nice_prefix="nice -n 19 "
106
107 core_num="$(cat /proc/cpuinfo | grep processor | wc -l)"
108 last_core="$((${core_num} - 1))"
109 taskset_prefix=""
110 type taskset >/dev/null
111 [ $? -eq 0 -a $core_num -gt 1 ] && taskset_prefix="taskset -c 1-$last_core "
112
113 (eval "$nice_prefix $taskset_prefix $@" >/dev/null </dev/null 2>&1 &)
114}
115
116signal() {
117 pgrep -u 0 '^bcm-agent.upgra$' | xargs kill -9
118 pgrep -u 0 '^bcm-.i$' | xargs kill -9 1>/dev/null 2>&1
119 return $?
120}
121
122check() {
123 pgrep -u 0 '^bcm-agent.upgra$' >/dev/null
124 return $?
125}
126
127start() {
128 [ -x '/opt/avalokita/bin/avalokita' ] || {
129 die 'Please install avalokita first.'
130 }
131
132 [ -d '/opt/bcm-agent/var/lib/bcm-agent' ] || {
133 die 'Please reinstall bcm-agent.'
134 }
135
136 [ -x '/opt/bcm-agent/var/lib/bcm-agent/bcm-agent.upgrader' ] || {
137 ln -sf /opt/avalokita/bin/avalokita /opt/bcm-agent/var/lib/bcm-agent/bcm-agent.upgrader
138 }
139
140 check
141 if [ $? -eq 0 ]; then
142 ok 'Running'
143 return 0
144 fi
145
146 cd /opt/bcm-agent/var/lib/bcm-agent/
147 run "/opt/bcm-agent/var/lib/bcm-agent/bcm-agent.upgrader \
148 --update-url=http://169.254.169.254/packages/collectd-bcm-v2-$(uname -m).sh \
149 --signature-url=http://169.254.169.254/packages/collectd-bcm-v2-$(uname -m).sh.sig \
150 --certificate='/opt/bcm-agent/var/lib/bcm-agent/cert.pem' \
151 --max-executable-size=31457280 \
152 /opt/bcm-agent/var/lib/bcm-agent/collectd-bcm-v2-$(uname -m).sh"
153
154 sleep 1
155 check || die 'start'
156 ok 'start'
157 return 0
158}
159
160stop() {
161 check
162 if [ $? -ne 0 ]; then
163 ok 'Not running'
164 return 0
165 fi
166
167 for i in 1 2 3 4 5 6 7 8; do
168 signal
169 sleep $i
170 check
171 if [ $? -ne 0 ]; then
172 ok 'stop'
173 return 0
174 fi
175 done
176 die 'stop'
177}
178
179restart() {
180 stop
181 start
182 return 0
183}
184
185status() {
186 check
187 if [ $? -eq 0 ]; then
188 echo 'Running'
189 return 0
190 else
191 echo 'Not running'
192 return 1
193 fi
194}
195
196[ "$(id -u)" = 0 ] || {
197 die Please run with root.
198}
199
200case "${1}" in
201start)
202 start
203 ;;
204stop)
205 stop
206 ;;
207restart)
208 restart
209 ;;
210status)
211 status
212 ;;
213*)
214 help
215 ;;
216esac
217EOF
218chmod +x $BCMSERVICE
219if [ $Contain -gt 0 ];then
220 update-rc.d bcm-agent defaults
221else
222 chkconfig --add bcm-agent
223 chkconfig bcm-agent on
224fi
225systemctl daemon-reload
226systemctl start bcm-agent
227systemctl stop bcm-agent
228systemctl start bcm-agent
229
230sleep 1
231
232if systemctl status bcm-agent.service >/dev/null </dev/null;then
233 echo "bcm-agent installed, running!"
234else
235 echo "bcm-agent installed, but not running, check status"
236fi