{"id":744,"date":"2017-06-27T23:33:41","date_gmt":"2017-06-27T15:33:41","guid":{"rendered":"http:\/\/www.ipcpu.com\/?p=744"},"modified":"2017-06-27T23:33:41","modified_gmt":"2017-06-27T15:33:41","slug":"zabbix-python-haproxy","status":"publish","type":"post","link":"https:\/\/c.ipcpu.com\/2017\/06\/zabbix-python-haproxy\/","title":{"rendered":"Zabbix\u4f7f\u7528Python\u68c0\u67e5Haproxy\u72b6\u6001\u9875\u9762"},"content":{"rendered":"

Zabbix\u4f7f\u7528Python\u68c0\u67e5Haproxy\u72b6\u6001\u9875\u9762.md<\/p>\n

\u6982\u8ff0<\/h2>\n

\u7f51\u4e0a\u6709\u5f88\u591a\u4f7f\u7528zabbix\u76d1\u63a7haproxy\u7684\u811a\u672c\uff0c\u4f46\u5927\u591a\u6570\u90fd\u4f7f\u7528\u7684socket\u65b9\u5f0f\uff0c\u800chaproxy\u7684stats\u9875\u9762\u9875\u9762\u6211\u4eec\u7ecf\u5e38\u9700\u8981\u8bbf\u95ee\u7684\uff0c\u6240\u4ee5\u6211\u4eec\u8fd9\u6b21\u4f7f\u7528python\u6765\u6293\u53d6haproxy\u7684stats\u9875\u9762\u3002<\/p>\n

haproxy\u7684stats\u9875\u9762\u5206\u6790<\/h2>\n

haproxy\u7684stats\u9875\u9762\u5982\u4e0b
\n<\/p>\n

\u5f53backend\u51fa\u73b0\u95ee\u9898\u65f6\uff0c\u4f1a\u663e\u793a\u7ea2\u8272\uff0cHTML\u4ee3\u7801\u4e3a\uff1a<\/p>\n

  1. <tr<\/span> <\/span>class<\/span>=<\/span>\"active0\"<\/span>><td<\/span> <\/span>class<\/span>=<\/span>ac<\/span>><a<\/span> <\/span>name<\/span>=<\/span>\"app_push\/push496\"<\/span>><\/span><\/code><\/li><\/ol><\/pre>\n

    \u5c14\u5f53backend\u6b63\u5e38\u65f6\uff0c\u4f1a\u663e\u793a\u7eff\u8272.<\/p>\n

    1. <tr<\/span> <\/span>class<\/span>=<\/span>\"active4\"<\/span>><td<\/span> <\/span>class<\/span>=<\/span>ac<\/span>><a<\/span> <\/span>name<\/span>=<\/span>\"app_push\/push096\"<\/span>><\/span><\/code><\/li><\/ol><\/pre>\n

      \u4e2d\u95f4\u4f1a\u6709\u9ec4\u8272\u7684\u60c5\u51b5\uff0cbackend\u53cd\u590d\u6545\u969c\u6062\u590d\u65f6\u4f1a\u4ea7\u751f\u3002<\/p>\n

      Python\u811a\u672c\u6293\u53d6<\/h2>\n
      1. #!\/usr\/bin\/env python<\/span><\/code><\/li>
      2. #coding=utf-8<\/span><\/code><\/li>
      3. #Debug in Python2.7<\/span><\/code><\/li>
      4. <\/code><\/li>
      5. import<\/span> urllib2<\/span><\/code><\/li>
      6. import<\/span> sys<\/span><\/code><\/li>
      7. import<\/span> re<\/span><\/code><\/li>
      8. <\/code><\/li>
      9. url <\/span>=<\/span> sys<\/span>.<\/span>argv<\/span>[<\/span>1<\/span>]<\/span><\/code><\/li>
      10. #url = 'http:\/\/10.100.18.78:8888\/status'<\/span><\/code><\/li>
      11. try<\/span>:<\/span><\/code><\/li>
      12. response <\/span>=<\/span> urllib2<\/span>.<\/span>urlopen<\/span>(<\/span>url<\/span>,<\/span>timeout<\/span>=<\/span>5<\/span>).<\/span>read<\/span>();<\/span><\/code><\/li>
      13. except<\/span>:<\/span><\/code><\/li>
      14. <\/span>print<\/span> <\/span>'error to connect haproxy.'<\/span><\/code><\/li>
      15. sys<\/span>.<\/span>exit<\/span>(<\/span>0<\/span>)<\/span><\/code><\/li>
      16. <\/code><\/li>
      17. pattern <\/span>=<\/span> re<\/span>.<\/span>compile<\/span>(<\/span>'<tr class=\"active0\"><td class=ac><a name=\"(.*?)\"><\/a>'<\/span>)<\/span><\/code><\/li>
      18. items <\/span>=<\/span> re<\/span>.<\/span>findall<\/span>(<\/span>pattern<\/span>,<\/span> response<\/span>)<\/span><\/code><\/li>
      19. <\/code><\/li>
      20. data <\/span>=<\/span> <\/span>[]<\/span><\/code><\/li>
      21. for<\/span> item <\/span>in<\/span> items<\/span>:<\/span><\/code><\/li>
      22. <\/span>#print item<\/span><\/code><\/li>
      23. data<\/span>.<\/span>append<\/span>(<\/span>item<\/span>)<\/span><\/code><\/li>
      24. <\/code><\/li>
      25. if<\/span> len<\/span>(<\/span>data<\/span>):<\/span><\/code><\/li>
      26. <\/span>print<\/span> data<\/span><\/code><\/li>
      27. else<\/span>:<\/span><\/code><\/li>
      28. <\/span>print<\/span> <\/span>'ok'<\/span><\/code><\/li><\/ol><\/pre>\n

        \u5f53haproxy\u6709backend\u6545\u969c\u65f6\uff0c\u4f1a\u6253\u5370\u6545\u969c\u670d\u52a1\u5668\uff0c\u6ca1\u6709\u6545\u969c\u65f6\u663e\u793aOK\uff0c\u670d\u52a1\u5668\u65e0\u6cd5\u8fde\u63a5\uff0c\u663e\u793a\u2019error to connect haproxy.\u2019<\/p>\n

        \u6545\u969c\u663e\u793a\u5982\u4e0b<\/p>\n

        1. [<\/span>'app_push\/push496'<\/span>,<\/span> <\/span>'app_push\/push092'<\/span>]<\/span><\/code><\/li><\/ol><\/pre>\n

          Zabbix\u4e2d\u6dfb\u52a0\u76d1\u63a7\u9879<\/h2>\n

          \u9700\u8981zabbix\u5ba2\u6237\u7aef\u81ea\u5b9a\u4e49\u4e00\u4e2akey\u6765\u5173\u8054\u68c0\u67e5\u811a\u672c\u3002\u7136\u540ezabbix\u670d\u52a1\u5668\u7aef\u8bbe\u7f6e\u6a21\u677f\u3002\u8fd9\u91cc\u6211\u662f\u7528\u7684\u5b57\u7b26\u4e32\u5339\u914d\u3002<\/p>\n

          <\/p>\n

          \u62a5\u8b66\u5b9e\u4f8b<\/h2>\n

          <\/p>\n

          \u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def<\/a> » Zabbix\u4f7f\u7528Python\u68c0\u67e5Haproxy\u72b6\u6001\u9875\u9762<\/a><\/p>","protected":false},"excerpt":{"rendered":"

          Zabbix\u4f7f\u7528Python\u68c0\u67e5Haproxy\u72b6\u6001\u9875\u9762.md \u6982\u8ff0 \u7f51\u4e0a\u6709\u5f88\u591a\u4f7f\u7528zabbix\u76d1\u63a7haproxy\u7684\u811a\u672c\uff0c\u4f46\u5927\u591a\u6570\u90fd\u4f7f\u7528\u7684socket\u65b9\u5f0f\uff0c\u800chaproxy\u7684stats\u9875\u9762\u9875\u9762\u6211\u4eec\u7ecf\u5e38\u9700\u8981\u8bbf\u95ee\u7684\uff0c\u6240\u4ee5\u6211\u4eec\u8fd9\u6b21\u4f7f\u7528python\u6765\u6293\u53d6haproxy\u7684stats\u9875\u9762\u3002 haproxy\u7684stats\u9875\u9762\u5206\u6790 haproxy\u7684stats\u9875\u9762\u5982\u4e0b \u5f53backend\u51fa\u73b0\u95ee\u9898\u65f6\uff0c\u4f1a\u663e\u793a\u7ea2\u8272\uff0cHTML\u4ee3\u7801\u4e3a\uff1a <tr class=”active0″><td class=ac><a name=”app_push\/push496″> \u5c14\u5f53backend\u6b63\u5e38\u65f6\uff0c\u4f1a\u663e\u793a\u7eff\u8272. <tr class=”active4″><td class=ac><a name=”app_push\/push096″> \u4e2d\u95f4\u4f1a\u6709\u9ec4\u8272\u7684\u60c5\u51b5\uff0cbackend\u53cd\u590d\u6545\u969c\u6062\u590d\u65f6\u4f1a\u4ea7\u751f\u3002 Python\u811a\u672c\u6293\u53d6 #!\/usr\/bin\/env python#coding=utf-8#Debug in Python2.7import urllib2import sysimport reurl = sys.argv[1]#url = ‘http:\/\/10.100.18.78:8888\/status’try: response = urllib2.urlopen(url,timeout=5).read();except: print ‘error to connect haproxy.’ sys.exit(0)pattern = re.compile(‘<tr class=”active0″><td class=ac><a name=”(.*?)”><\/a>’)items = re.findall(pattern, response)data = []for item in items: #print item data.append(item)if len(data): print […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[13],"tags":[120,59,57],"_links":{"self":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/744"}],"collection":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/comments?post=744"}],"version-history":[{"count":0,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/744\/revisions"}],"wp:attachment":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/media?parent=744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/categories?post=744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/tags?post=744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}