{"id":1421,"date":"2017-08-27T06:31:14","date_gmt":"2017-08-27T06:31:14","guid":{"rendered":"https:\/\/www.ipcpu.com\/?p=1421"},"modified":"2021-04-27T06:31:42","modified_gmt":"2021-04-27T06:31:42","slug":"zabbix-port-monitor","status":"publish","type":"post","link":"https:\/\/c.ipcpu.com\/2017\/08\/zabbix-port-monitor\/","title":{"rendered":"zabbix\u7aef\u53e3\u76d1\u63a7-\u81ea\u52a8\u53d1\u73b0\u548c\u6dfb\u52a0\u76d1\u63a7"},"content":{"rendered":"
<\/div>\n

\u5229\u7528zabbix\u7684LLD\u53ef\u4ee5\u5b9e\u73b0\u7aef\u53e3\u7684\u81ea\u52a8\u53d1\u73b0\u548c\u6dfb\u52a0\u76d1\u63a7<\/p>\n

Shell\u811a\u672c\u5982\u4e0b<\/p>\n

\n
#!\/bin\/bash\nportarray=(`sudo netstat -tnlp|egrep -i \"$1\"|awk {'print $4'}|awk -F':' '{if ($NF~\/^[0-9]*$\/) print $NF}'|sort|uniq`)\n#namearray=(`netstat -tnlp|egrep -i \"$1\"|awk {'print $7'}|awk -F'\/' '{if ($NF != \"Address\") print $NF}'|uniq`)\nlength=${#portarray[@]}\nprintf \"{\\n\"\nprintf '\\t'\"\\\"data\\\":[\"\nfor ((i=0;i<$length;i++))\n  do\n     printf '\\n\\t\\t{'\n     printf \"\\\"{#TCP_PORT}\\\":\\\"${portarray[$i]}\\\"}\"\n# printf \"\\\"{#TCP_NAME}\\\":\\\"${namearray[$i]}\\\"}\"\n     if [ $i -lt $[$length-1] ];then\n                printf ','\n     fi\n  done\nprintf \"\\n\\t]\\n\"\nprintf \"}\\n\"<\/code><\/pre>\n<\/div>\n

\u8fd0\u884c\u6548\u679c\u5982\u4e0b
\n
\n\u540e\u6765\u53d1\u73b0\uff0c\u6709\u4e9b\u7aef\u53e3\u6839\u672c\u5c31\u4e0d\u77e5\u9053\u662f\u4ec0\u4e48\u8fdb\u7a0b\uff0c\u6709\u4e9b\u6df7\u4e71\uff0c\u4e8e\u662f\u53c8\u4f7f\u7528python\u7f16\u5199\u4e86\u53ef\u4ee5\u8bfb\u53d6\u8fdb\u7a0b\u540d\u79f0\u548c\u7aef\u53e3\u7684\u811a\u672c\uff0c\u5982\u4e0b<\/p>\n

\n
#!\/usr\/bin\/env python\n#coding=utf-8\n#Debug in Python2.7\n#used for discovery the Listen Port and Process\n\nimport os\nimport json\nimport string\n\nt = os.popen(\"\"\" sudo ss -tunlp |grep LISTEN |sed \"s#::#FF#g\" |grep users |sort |uniq \"\"\")\n\narray = []\nfor port in t.readlines():\n r=port.strip()\n\n #print r\n port = r.split(':')[1].split(' ')[0]\n        try:\n     name = r.split('\\\"')[1]\n        except:\n            name = \"none\"\n\n cluster = {}\n        cluster['{#TCP_PORT}'] = port\n        cluster['{#TCP_NAME}'] = name\n\n        array.append(cluster)\n\n\n#amy = [{k:v} for k,v in dict([list(d.iteritems())[0] for d in array]).iteritems()] \namy = [dict(t) for t in set([tuple(d.items()) for d in array])]\n\nprint json.dumps({'data':amy},sort_keys=True,indent=4,separators=(',',':'))<\/code><\/pre>\n<\/div>\n

\u6548\u679c\u5982\u4e0b
\n
\n\u63a5\u4e0b\u6765\u5c31\u662f\u53bbzabbix\u7cfb\u7edf\u4e2d\u6dfb\u52a0\u81ea\u52a8\u53d1\u73b0\u89c4\u5219\u4e86\u3002<\/p>\n

\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def<\/a> » zabbix\u7aef\u53e3\u76d1\u63a7-\u81ea\u52a8\u53d1\u73b0\u548c\u6dfb\u52a0\u76d1\u63a7<\/a><\/p>","protected":false},"excerpt":{"rendered":"

\u5229\u7528zabbix\u7684LLD\u53ef\u4ee5\u5b9e\u73b0\u7aef\u53e3\u7684\u81ea\u52a8\u53d1\u73b0\u548c\u6dfb\u52a0\u76d1\u63a7 Shell\u811a\u672c\u5982\u4e0b #!\/bin\/bash portarray=(`sudo netstat -tnlp|egrep -i “$1″|awk {‘print $4′}|awk -F’:’ ‘{if ($NF~\/^[0-9]*$\/) print $NF}’|sort|uniq`) #namearray=(`netstat -tnlp|egrep -i “$1″|awk {‘print $7′}|awk -F’\/’ ‘{if ($NF != “Address”) print $NF}’|uniq`) length=${#portarray[@]} printf “{\\n” printf ‘\\t'”\\”data\\”:[” for ((i=0;i<$length;i++)) do printf ‘\\n\\t\\t{‘ printf “\\”{#TCP_PORT}\\”:\\”${portarray[$i]}\\”}” # printf “\\”{#TCP_NAME}\\”:\\”${namearray[$i]}\\”}” if [ $i -lt $[$length-1] ];then printf ‘,’ fi done printf “\\n\\t]\\n” […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[72],"_links":{"self":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1421"}],"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=1421"}],"version-history":[{"count":1,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1421\/revisions"}],"predecessor-version":[{"id":1422,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1421\/revisions\/1422"}],"wp:attachment":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/media?parent=1421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/categories?post=1421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/tags?post=1421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}