天天看點

Zabbix監控Haproxy解決方案

在haproxy的global裡添加

stats socket /var/run/haproxy.sock  mode 666 level user

打開haproxy的socket監控

以下為監控的腳本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

<code>#!/bin/bash</code>

<code>[ $1 = </code><code>'http_server'</code> <code>] &amp;&amp; WEBGROUP=$1,FRONTEND || WEBGROUP=$1,BACKEND</code>

<code>case</code> <code>"$2"</code> <code>in</code>

<code>"comp"</code> <code>)</code>

<code>IN=`</code><code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $52}'</code><code>`</code>

<code>OUT=`</code><code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $53}'</code><code>`</code>

<code>echo</code> <code>"scale=4;($IN-$OUT)/$IN*100"</code> <code>| </code><code>bc</code>

<code>;;</code>

<code>"qcur"</code> <code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $3}'</code>

<code>"qmax"</code> <code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $4}'</code>

<code>"scur"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $5}'</code>

<code>"smax"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $6}'</code>

<code>"slim"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $7}'</code>

<code>"stot"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $8}'</code>

<code>"bin"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $9}'</code>

<code>"bout"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $10}'</code>

<code>"dreq"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $11}'</code>

<code>"dresp"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $12}'</code>

<code>"ereq"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $13}'</code>

<code>"econ"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $14}'</code>

<code>"eresp"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $15}'</code>

<code>"eretr"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $16}'</code>

<code>"eredis"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $17}'</code>

<code>"status"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $18}'</code>

<code>"weight"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $19}'</code>

<code>"act"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $20}'</code>

<code>"bck"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $21}'</code>

<code>"chkfail"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $22}'</code>

<code>"chkdown"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $23}'</code>

<code>"lastchg"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $24}'</code>

<code>"downtime"</code><code>)</code>

<code>"qlimit"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $26}'</code>

<code>"pid"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $27}'</code>

<code>"iid"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $28}'</code>

<code>"sid"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $29}'</code>

<code>"throttle"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $30}'</code>

<code>"lbtot"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $31}'</code>

<code>"tracked"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $32}'</code>

<code>"tpye"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $33}'</code>

<code>"rate"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $34}'</code>

<code>"rate_lim"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $35}'</code>

<code>"rate_max"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $36}'</code>

<code>"check_status"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $37}'</code>

<code>"check_code"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $38}'</code>

<code>"check_duration"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $39}'</code>

<code>"hrsp_1xx"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $40}'</code>

<code>"hrsp_2xx"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $41}'</code>

<code>"hrsp_3xx"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $42}'</code>

<code>"hrsp_4xx"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $43}'</code>

<code>"hrsp_5xx"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $44}'</code>

<code>"hrsp_other"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $45}'</code>

<code>"hanafail"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $46}'</code>

<code>"req_rate"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $47}'</code>

<code>"req_rate_max"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $48}'</code>

<code>"req_tot"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $49}'</code>

<code>"cli_abrt"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $50}'</code>

<code>"srv_abrt"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $51}'</code>

<code>"comp_in"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $52}'</code>

<code>"comp_out"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $53}'</code>

<code>"comp_byp"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $54}'</code>

<code>"comp_rsp"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $55}'</code>

<code>"lastsess"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $56}'</code>

<code>"last_chk"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $57}'</code>

<code>"last_agt"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $58}'</code>

<code>"qtime"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $59}'</code>

<code>"ctime"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $60}'</code>

<code>"rtime"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $61}'</code>

<code>"ttime"</code><code>)</code>

<code>/bin/echo</code> <code>"show stat"</code><code>|</code><code>/usr/sbin/socat</code> <code>/var/run/haproxy</code><code>.sock stdio|</code><code>awk</code> <code>-</code><code>v</code> <code>n=$WEBGROUP -F, </code><code>'$0~n{print $62}'</code>

<code>*)</code>

<code>/bin/echo</code> <code>'error'</code>

<code>esac</code>

haproxy的一些名額

pxname  組名

svname  伺服器名

qcur    目前隊列

qmax    最大隊列

scur目前會話使用者

smax最大會話使用者

slim會話限制

stot會話總量

bin入口流量

bout出口流量

dreq拒絕的請求

dresp拒絕的響應

ereq錯誤請求

econ錯誤連結

eresp錯誤響應

wretr警告重試次數

wredis

status伺服器狀态

weight權重

act是否活動Y/N

bck備用

chkfail檢查當機0

chkdown檢查當機0

lastchg最後檢查

downtime當機時間

qlimit隊列限制

pid

iid

sid

throttle

lbtot

tracked

type

rate

rate_lim

rate_max

check_status

check_code

check_duration

hrsp_1xx

hrsp_2xx

hrsp_3xx

hrsp_4xx

hrsp_5xx

hrsp_other

hanafail

req_rate

req_rate_max

req_tot

cli_abrt

srv_abrt

comp_in壓縮入口前大小

comp_out壓縮輸出大小

comp_bypbypass大小

comp_rsp

lastsess

last_chk

last_agt

qtime

ctime

rtime

ttime

本文轉自 rong341233 51CTO部落格,原文連結:http://blog.51cto.com/fengwan/1713806