<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Комментарии: Zabbix для мониторинга состояния tcp-соединений	</title>
	<atom:link href="https://rascal.su/blog/2010/09/11/zabbix-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3%D0%B0-%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F-tcp-%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD/feed/" rel="self" type="application/rss+xml" />
	<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/</link>
	<description>web log</description>
	<lastBuildDate>Fri, 02 Aug 2013 22:10:09 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>
		Автор: andreipak		</title>
		<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/#comment-886</link>

		<dc:creator><![CDATA[andreipak]]></dc:creator>
		<pubDate>Fri, 02 Aug 2013 22:10:09 +0000</pubDate>
		<guid isPermaLink="false">http://rascal.su/?p=204#comment-886</guid>

					<description><![CDATA[Супер, благодарю!

И можно несколько универсальней, ипользуя значения для &lt;em&gt;hostname&lt;/em&gt; и &lt;em&gt;server&lt;/em&gt; из конф. файла.

Тире в данных, подаваемых на стандартный ввод, указывает, что имя узла сети должно быть взято из того же конфигурационного файла. 


&lt;code&gt;
#!/bin/bash

/sbin/ss -ant &#124; awk &quot;{if (NR&#062;1) {state[\$1]++}} END {host = \&quot;-\&quot;; \
   for (i in state) {s=i; \
   sub (/ESTAB/, \&quot;establ\&quot;, s); sub (/LISTEN/, \&quot;listen\&quot;, s); sub (/SYN-SENT/, \&quot;synsent\&quot;, s);  \
   sub (/SYN-RECV/, \&quot;synrecv\&quot;, s); sub (/FIN-WAIT-1/, \&quot;finw1\&quot;, s); sub (/FIN-WAIT-2/, \&quot;finw2\&quot;, s); \
   sub (/CLOSE-WAIT/, \&quot;closew\&quot;, s); sub (/TIME-WAIT/, \&quot;timew\&quot;, s); print host, \&quot;tcp.\&quot;s, state[i]}}&quot; \
   &#124; /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf  -i - 2&#062;&#038;1

echo &quot;1&quot;
exit 0

&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>Супер, благодарю!</p>
<p>И можно несколько универсальней, ипользуя значения для <em>hostname</em> и <em>server</em> из конф. файла.</p>
<p>Тире в данных, подаваемых на стандартный ввод, указывает, что имя узла сети должно быть взято из того же конфигурационного файла. </p>
<p><code><br />
#!/bin/bash</p>
<p>/sbin/ss -ant | awk "{if (NR&gt;1) {state[\$1]++}} END {host = \"-\"; \<br />
   for (i in state) {s=i; \<br />
   sub (/ESTAB/, \"establ\", s); sub (/LISTEN/, \"listen\", s); sub (/SYN-SENT/, \"synsent\", s);  \<br />
   sub (/SYN-RECV/, \"synrecv\", s); sub (/FIN-WAIT-1/, \"finw1\", s); sub (/FIN-WAIT-2/, \"finw2\", s); \<br />
   sub (/CLOSE-WAIT/, \"closew\", s); sub (/TIME-WAIT/, \"timew\", s); print host, \"tcp.\"s, state[i]}}" \<br />
   | /usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf  -i - 2&gt;&amp;1</p>
<p>echo "1"<br />
exit 0</p>
<p></code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Автор: p2n		</title>
		<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/#comment-606</link>

		<dc:creator><![CDATA[p2n]]></dc:creator>
		<pubDate>Wed, 20 Feb 2013 17:34:19 +0000</pubDate>
		<guid isPermaLink="false">http://rascal.su/?p=204#comment-606</guid>

					<description><![CDATA[Как обычно, очевидное то я вовремя не заметил: названия состояний сокетов в выводе ss немного отличаются от таковых у netstat, секция BEGIN тут не нужна вовсе, а в строках-заменителях можно выбросить общую часть &quot;за скобки&quot; для уменьшения размера программы:
&lt;code&gt;
/usr/sbin/ss -ant &#124; awk &quot;{if (NR&#062;1) {state[\$1]++}} END {host = \&quot;${HOST}\&quot;; for (i in state) {s=i; sub (/ESTAB/, \&quot;establ\&quot;, s); sub (/LISTEN/, \&quot;listen\&quot;, s); sub (/SYN-SENT/, \&quot;synsent\&quot;, s); sub (/SYN-RECV/, \&quot;synrecv\&quot;, s); sub (/FIN-WAIT-1/, \&quot;finw1\&quot;, s); sub (/FIN-WAIT-2/, \&quot;finw2\&quot;, s); sub (/CLOSE-WAIT/, \&quot;closew\&quot;, s); sub (/TIME-WAIT/, \&quot;timew\&quot;, s); print host, \&quot;tcp.\&quot;s, state[i]}}&quot; &#124; ~/zabbix/bin/zabbix_sender --zabbix-server ${SERVER} -s ${HOST} --port &#039;10051&#039; -i - &#062;/dev/null 2&#062;&#038;1
&lt;/code&gt;
Как-то так, полагаю, получше должно быть :)]]></description>
			<content:encoded><![CDATA[<p>Как обычно, очевидное то я вовремя не заметил: названия состояний сокетов в выводе ss немного отличаются от таковых у netstat, секция BEGIN тут не нужна вовсе, а в строках-заменителях можно выбросить общую часть &#171;за скобки&#187; для уменьшения размера программы:<br />
<code><br />
/usr/sbin/ss -ant | awk "{if (NR&gt;1) {state[\$1]++}} END {host = \"${HOST}\"; for (i in state) {s=i; sub (/ESTAB/, \"establ\", s); sub (/LISTEN/, \"listen\", s); sub (/SYN-SENT/, \"synsent\", s); sub (/SYN-RECV/, \"synrecv\", s); sub (/FIN-WAIT-1/, \"finw1\", s); sub (/FIN-WAIT-2/, \"finw2\", s); sub (/CLOSE-WAIT/, \"closew\", s); sub (/TIME-WAIT/, \"timew\", s); print host, \"tcp.\"s, state[i]}}" | ~/zabbix/bin/zabbix_sender --zabbix-server ${SERVER} -s ${HOST} --port '10051' -i - &gt;/dev/null 2&gt;&amp;1<br />
</code><br />
Как-то так, полагаю, получше должно быть :)</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Автор: Rascal		</title>
		<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/#comment-605</link>

		<dc:creator><![CDATA[Rascal]]></dc:creator>
		<pubDate>Wed, 20 Feb 2013 15:08:23 +0000</pubDate>
		<guid isPermaLink="false">http://rascal.su/?p=204#comment-605</guid>

					<description><![CDATA[Спасибо, обновил скрипт.]]></description>
			<content:encoded><![CDATA[<p>Спасибо, обновил скрипт.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Автор: p2n		</title>
		<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/#comment-604</link>

		<dc:creator><![CDATA[p2n]]></dc:creator>
		<pubDate>Tue, 19 Feb 2013 20:51:42 +0000</pubDate>
		<guid isPermaLink="false">http://rascal.su/?p=204#comment-604</guid>

					<description><![CDATA[Блин, не увидел вовремя замечание про тэги. Попробую оформить в виде кода этот &quot;ужас&quot; :) Если получится - Раск удали мой предыдущий камент, пожалуйста.

Основную часть можно оптимизировать, возложив всю работу на AWK и избавиться от кучи форков:
&lt;code&gt;
/usr/sbin/ss -ant &#124; awk &quot;BEGIN {host = \&quot;`/bin/hostname`\&quot;} {if (NR&#062;1) {state[\$1]++}} END {for (i in state) {s=i; sub (/ESTAB/, \&quot;tcp.establ\&quot;, s); sub (/LISTEN/, \&quot;tcp.listen\&quot;, s); sub (/SYN_SENT/, \&quot;tcp.synsent\&quot;, s); sub (/SYN_RECV/, \&quot;tcp.synrecv\&quot;, s); sub (/FIN_WAIT1/, \&quot;tcp.finw1\&quot;, s); sub (/FIN_WAIT2/, \&quot;tcp.finw2\&quot;, s); sub (/CLOSE_WAIT/, \&quot;tcp.closew\&quot;, s); sub (/TIME_WAIT/, \&quot;tcp.timew\&quot;, s); print host, s, state[i]}}&quot; &#124; ~/zabbix/bin/zabbix_sender --zabbix-server ${SERVER} -s ${HOST} --port &#039;10051&#039; -i - &#062;/dev/null 2&#062;&#038;1
&lt;/code&gt;]]></description>
			<content:encoded><![CDATA[<p>Блин, не увидел вовремя замечание про тэги. Попробую оформить в виде кода этот &#171;ужас&#187; :) Если получится &#8212; Раск удали мой предыдущий камент, пожалуйста.</p>
<p>Основную часть можно оптимизировать, возложив всю работу на AWK и избавиться от кучи форков:<br />
<code><br />
/usr/sbin/ss -ant | awk "BEGIN {host = \"`/bin/hostname`\"} {if (NR&gt;1) {state[\$1]++}} END {for (i in state) {s=i; sub (/ESTAB/, \"tcp.establ\", s); sub (/LISTEN/, \"tcp.listen\", s); sub (/SYN_SENT/, \"tcp.synsent\", s); sub (/SYN_RECV/, \"tcp.synrecv\", s); sub (/FIN_WAIT1/, \"tcp.finw1\", s); sub (/FIN_WAIT2/, \"tcp.finw2\", s); sub (/CLOSE_WAIT/, \"tcp.closew\", s); sub (/TIME_WAIT/, \"tcp.timew\", s); print host, s, state[i]}}" | ~/zabbix/bin/zabbix_sender --zabbix-server ${SERVER} -s ${HOST} --port '10051' -i - &gt;/dev/null 2&gt;&amp;1<br />
</code></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Автор: miptpatriot		</title>
		<link>https://rascal.su/blog/2010/09/11/zabbix-%d0%b4%d0%bb%d1%8f-%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3%d0%b0-%d1%81%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b8%d1%8f-tcp-%d1%81%d0%be%d0%b5%d0%b4%d0%b8%d0%bd%d0%b5%d0%bd/#comment-503</link>

		<dc:creator><![CDATA[miptpatriot]]></dc:creator>
		<pubDate>Thu, 06 Sep 2012 15:25:09 +0000</pubDate>
		<guid isPermaLink="false">http://rascal.su/?p=204#comment-503</guid>

					<description><![CDATA[Спасибо за готовые скрипты =). Оставлю свой вклад:
netstat достаточно медленно работает. На сервере с 40 тыс. соединений он отдаёт их количество за 30 секунд. Заббикс не дожидается его. Поэтому лучше использовать утилиту ss. Плюс там в скрипте ошибка закралас - &#039;let &quot;closew += 0&quot;&#039; два раза повторяется.

Вот так выглядит средняя часть моего скрипта:

ss -na &#124; awk &#039;{print $1}&#039;&#124; sort &#124;uniq -c &#062;${TMPF}

establ=`cat $TMPF &#124; grep &quot;ESTAB&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;establ += 0&quot;
synsent=`cat $TMPF &#124; grep &quot;SYN-SENT&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;synsent += 0&quot;
synrecv=`cat $TMPF &#124; grep &quot;SYN-RECV&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;synrecv += 0&quot;
finw1=`cat $TMPF &#124; grep &quot;FIN-WAIT-1&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;finw1 += 0&quot;
finw2=`cat $TMPF &#124; grep &quot;FIN-WAIT-2&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;finw2 += 0&quot;
timew=`cat $TMPF &#124; grep &quot;TIME-WAIT&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;timew += 0&quot;
closew=`cat $TMPF &#124; grep &quot;CLOSE-WAIT&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;closew += 0&quot;
listen=`cat $TMPF &#124; grep &quot;LISTEN&quot; &#124;awk &#039;{print $1}&#039;`
let &quot;listen += 0&quot;]]></description>
			<content:encoded><![CDATA[<p>Спасибо за готовые скрипты =). Оставлю свой вклад:<br />
netstat достаточно медленно работает. На сервере с 40 тыс. соединений он отдаёт их количество за 30 секунд. Заббикс не дожидается его. Поэтому лучше использовать утилиту ss. Плюс там в скрипте ошибка закралас &#8212; &#8216;let &#171;closew += 0&#8243;&#8216; два раза повторяется.</p>
<p>Вот так выглядит средняя часть моего скрипта:</p>
<p>ss -na | awk &#8216;{print $1}&#8217;| sort |uniq -c &gt;${TMPF}</p>
<p>establ=`cat $TMPF | grep &#171;ESTAB&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;establ += 0&#187;<br />
synsent=`cat $TMPF | grep &#171;SYN-SENT&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;synsent += 0&#187;<br />
synrecv=`cat $TMPF | grep &#171;SYN-RECV&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;synrecv += 0&#187;<br />
finw1=`cat $TMPF | grep &#171;FIN-WAIT-1&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;finw1 += 0&#187;<br />
finw2=`cat $TMPF | grep &#171;FIN-WAIT-2&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;finw2 += 0&#187;<br />
timew=`cat $TMPF | grep &#171;TIME-WAIT&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;timew += 0&#187;<br />
closew=`cat $TMPF | grep &#171;CLOSE-WAIT&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;closew += 0&#187;<br />
listen=`cat $TMPF | grep &#171;LISTEN&#187; |awk &#8216;{print $1}&#8217;`<br />
let &#171;listen += 0&#187;</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
