天天看点

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