Страница 1 из 1
Считать трафик на 3306 порту
Добавлено: 2010-02-02 19:10:37
100matolog
Мне нужно вывести значение вход выход на 3306 порту ( на мускульном - дабы видеть сколько кило- мегабайт уехало и сколько вьехало). Как правильнее всего это сделать. Мне нужно банально вывести текущее значение в консоль дабы передать его потом в Cacti.
З.Ы.
00301 401 56019 count ip from any to any dst-port 3306 in via em0
00302 810 62370 count ip from any to any dst-port 3306 out via em0
00400 68349178 19894947817 allow ip from any to any
хм..но ведь что получается -это ведь суммарное количство байт переданное ..тоесть график у мну будет расти постоянно..
cacеi может принимать счетчики а не абсолютные значения.
либо делать "ipfw zero 301" после того , как снимаю данные.
как правильнее сделать.
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 20:05:43
milleroff
100matolog писал(а):хм..но ведь что получается -это ведь суммарное количство байт переданное ..тоесть график у мну будет расти постоянно..
Не будут расти если в Cacti выставить "Data Source Type" в "Counter" ...
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 20:29:32
100matolog
milleroff писал(а):100matolog писал(а):хм..но ведь что получается -это ведь суммарное количство байт переданное ..тоесть график у мну будет расти постоянно..
Не будут расти если в Cacti выставить "Data Source Type" в "Counter" ...
все верно
только вот как блин разрешить задачку
нарисовал скрипт
Код: Выделить всё
<?php
$Mysql_in = exec("ipfw show 301 | awk {'print $3'}");
$Mysql_out = exec("ipfw show 302 | awk {'print $3'}");
echo "Mysql_in:$Mysql_in, Mysql_out:$Mysql_out";
?>
локально - там где и движок какти работает - скрипт выполняется
Но как отдать результаты работы этого скрипта с других серверов.
Попробывал отдать через апач - тоесть
положил в вебдиректорию скрипт и вызвал его через хттп запрос -> http://мойсервер/скрипт.php
всьо ок - но вот беда - ipfw вызывается только из под рута.
Это уже ближе к вечеру дотумкал.
Может както через судо вызвать скрипт апачем.
Или может есть другой метод передачи результата скрипта какти?
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 21:28:46
milleroff
Я использую встроенный демон bsnmpd + установленный к нему модуль bsnmp-ucd из портов.
В конфиге bsnmpd можно создавать свои OIDы. Например кусок моего:
Код: Выделить всё
>cat /etc/snmpd.config
..................................................
# bsnmp-ucd
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"
%ucd
extNames.0 = "MDOUT"
extCommand.0 = "/home/max/bin/getoid.sh 64000"
extNames.1 = "MDIN"
extCommand.1 = "/home/max/bin/getoid.sh 64100"
extNames.2 = "EXOUT"
extCommand.2 = "/home/max/bin/getoid.sh 64200"
extNames.3 = "EXIN"
extCommand.3 = "/home/max/bin/getoid.sh 64300"
extNames.4 = "NGS"
extCommand.4 = "/home/max/bin/getngs.sh"
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"
getoid.sh - скрипт который выводит количество байт пройденных через правило с номером который передается ему параметром.
Код: Выделить всё
> cat /home/max/bin/getoid.sh
#!/bin/sh
ipfw show | grep $1 | awk '{print $3}'
getngs.sh - скрипт который выводит количество ng интерфейсов (по сути подключенных по РРРоЕ клиентов).
все эти значения доступны через SNMP по OIDу 1.3.6.1.4.1.2021.8.1.101.х где х это номер после параметров extNames.x и extCommand.x в /etc/snmpd.config.
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 22:32:17
100matolog
milleroff писал(а):Я использую встроенный демон bsnmpd + установленный к нему модуль bsnmp-ucd из портов.
В конфиге bsnmpd можно создавать свои OIDы. Например кусок моего:
Код: Выделить всё
>cat /etc/snmpd.config
..................................................
# bsnmp-ucd
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"
%ucd
extNames.0 = "MDOUT"
extCommand.0 = "/home/max/bin/getoid.sh 64000"
extNames.1 = "MDIN"
extCommand.1 = "/home/max/bin/getoid.sh 64100"
extNames.2 = "EXOUT"
extCommand.2 = "/home/max/bin/getoid.sh 64200"
extNames.3 = "EXIN"
extCommand.3 = "/home/max/bin/getoid.sh 64300"
extNames.4 = "NGS"
extCommand.4 = "/home/max/bin/getngs.sh"
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"
getoid.sh - скрипт который выводит количество байт пройденных через правило с номером который передается ему параметром.
Код: Выделить всё
> cat /home/max/bin/getoid.sh
#!/bin/sh
ipfw show | grep $1 | awk '{print $3}'
getngs.sh - скрипт который выводит количество ng интерфейсов (по сути подключенных по РРРоЕ клиентов).
все эти значения доступны через SNMP по OIDу 1.3.6.1.4.1.2021.8.1.101.х где х это номер после параметров extNames.x и extCommand.x в /etc/snmpd.config.
угу...тоесть я могу вызвать свой скрипт 3306.php snmpd сервисом, так? Только я не понимаю почему у вас так много в конфиге вызовов своего скрипта.. И что означает цифры после скрипта
Код: Выделить всё
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"
Кстати -а OID в данном случае жестко задан или его можно мануально задать?
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 22:42:32
milleroff
100matolog писал(а):угу...тоесть я могу вызвать свой скрипт 3306.php snmpd сервисом, так? Только я не понимаю почему у вас так много в конфиге вызовов своего скрипта.. И что означает цифры после скрипта
Код: Выделить всё
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"
Читайте внимательнее выше .. У меня в файрволле есть много счетчиков которые считают трафик по разным направлениям (локальный, MD-IX, внешний). У этих счетчиков соответственно есть номера в файрволле. Скрипт предназначен для того чтоб возвращал количество байт пройденных через данный счетчик. Соответсвенно 65000, 63000, 63100 это номера правил в ipfw.
Кстати -а OID в данном случае жестко задан или его можно мануально задать?
А зачем его менять ?
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:00:36
100matolog
milleroff писал(а):100matolog писал(а):угу...тоесть я могу вызвать свой скрипт 3306.php snmpd сервисом, так? Только я не понимаю почему у вас так много в конфиге вызовов своего скрипта.. И что означает цифры после скрипта
Код: Выделить всё
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"
Читайте внимательнее выше .. У меня в файрволле есть много счетчиков которые считают трафик по разным направлениям (локальный, MD-IX, внешний). У этих счетчиков соответственно есть номера в файрволле. Скрипт предназначен для того чтоб возвращал количество байт пройденных через данный счетчик. Соответсвенно 65000, 63000, 63100 это номера правил в ipfw.
Кстати -а OID в данном случае жестко задан или его можно мануально задать?
А зачем его менять ?
ок..Тоесть в моем случае достаточно обойтись двумя позициями
Код: Выделить всё
extNames.1 = "MYSQLIN"
extCommand.1 = "/home/maxim/3306.php"
extNames.2 = "MYSQLOUT"
extCommand.2 = "/home/maxim/3306.php"
А насчет менять - ну я так - перестраховатся решил..Вдруг у мну что другое окажется.
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:10:24
100matolog
кстати. А этот демон bsnmpd - его в rc.conf надо както прописывать или это он же крутится у мну в системе
Код: Выделить всё
[root@d4 /usr/ports/net-mgmt/bsnmp-ucd]# ps ax | grep snmp
706 ?? S 13:59.29 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
51972 p2 R+ 0:00.00 grep snmp
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:11:36
milleroff
Да, теперь осталось в cacti создать "Data Template"-ы для этих OIDов ...
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:16:02
milleroff
100matolog писал(а):кстати. А этот демон bsnmpd - его в rc.conf надо както прописывать или это он же крутится у мну в системе
Код: Выделить всё
[root@d4 /usr/ports/net-mgmt/bsnmp-ucd]# ps ax | grep snmp
706 ?? S 13:59.29 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
51972 p2 R+ 0:00.00 grep snmp
В /etc/rc.conf надо прописать bsnmpd_enable="YES" ... Потом выполнить /etc/rc.d/bsnmpd start ... Но придется отказаться от демона SNMP который вы используете на данный момент ...
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:18:35
100matolog
milleroff писал(а):100matolog писал(а):кстати. А этот демон bsnmpd - его в rc.conf надо както прописывать или это он же крутится у мну в системе
Код: Выделить всё
[root@d4 /usr/ports/net-mgmt/bsnmp-ucd]# ps ax | grep snmp
706 ?? S 13:59.29 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
51972 p2 R+ 0:00.00 grep snmp
В /etc/rc.conf надо прописать bsnmpd_enable="YES" ... Потом выполнить /etc/rc.d/bsnmpd start ... Но придется отказаться от демона SNMP который вы используете на данный момент ...
Угу..А это наверно чревато тем, что какти не сможет вытягивать инфу по снмп по старым датасорсам ?
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-03 23:25:56
milleroff
100matolog писал(а):
Угу..А это наверно чревато тем, что какти не сможет вытягивать инфу по снмп по старым датасорсам ?
Вы отключаете один демон и включаете другой ....
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 9:32:23
100matolog
milleroff писал(а):100matolog писал(а):
Угу..А это наверно чревато тем, что какти не сможет вытягивать инфу по снмп по старым датасорсам ?
Вы отключаете один демон и включаете другой ....
ок. попробую )) спасибо за инфу
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 14:22:37
100matolog
milleroff писал(а):100matolog писал(а):
Угу..А это наверно чревато тем, что какти не сможет вытягивать инфу по снмп по старым датасорсам ?
Вы отключаете один демон и включаете другой ....
отключил snmpd включил bsnmp
графики перестали строится
snmpwalk не может достучатся к моему серверу и снять данные
конфиг
Код: Выделить всё
host := d3.server
location := "d3.server"
contact := "admin@server"
system := 1 # FreeBSD
traphost := localhost
trapport := 162
read := "secret-string"
write := "another-secret-string"
trap := "localhost"
%snmpd
begemotSnmpdDebugDumpPdus = 2
begemotSnmpdDebugSyslogPri = 7
begemotSnmpdCommunityString.0.1 = $(read)
begemotSnmpdCommunityDisable = 1
begemotSnmpdPortStatus.[$(host)].161 = 1
begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1
begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4
sysContact = $(contact)
sysLocation = $(location)
sysObjectId = 1.3.6.1.4.1.12325.1.1.2.1.$(system)
snmpEnableAuthenTraps = 2
begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so"
begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
begemotSnmpdModulePath."atm" = "/usr/lib/snmp_atm.so"
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"
До этого - в /usr/local/share/snmp/snmpd.conf указывал
Код: Выделить всё
syslocation " Office"
sysservices 76
rocommunity cacti d3.server
и дата снималась
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 14:43:07
milleroff
Код: Выделить всё
#
30 # Set the read and write communities.
31 #
32 # The default value of the community strings is NULL (note, that this is
33 # different from the empty string). This disables both read and write access.
34 # To enable read access only the read community string must be set. Setting
35 # the write community string enables both read and write access with that
36 # string.
37 #
38 # Be sure to understand the security implications of SNMPv2 - the community
39 # strings are readable on the wire!
40 #
41 begemotSnmpdCommunityString.0.1 = $(read)
42 # begemotSnmpdCommunityString.0.2 = $(write)
43 begemotSnmpdCommunityDisable = 1
У вас нету строки:
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 15:04:23
100matolog
milleroff писал(а):Код: Выделить всё
#
30 # Set the read and write communities.
31 #
32 # The default value of the community strings is NULL (note, that this is
33 # different from the empty string). This disables both read and write access.
34 # To enable read access only the read community string must be set. Setting
35 # the write community string enables both read and write access with that
36 # string.
37 #
38 # Be sure to understand the security implications of SNMPv2 - the community
39 # strings are readable on the wire!
40 #
41 begemotSnmpdCommunityString.0.1 = $(read)
42 # begemotSnmpdCommunityString.0.2 = $(write)
43 begemotSnmpdCommunityDisable = 1
У вас нету строки:
Хм...Такая строка присутствует в моем конфиге.
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 15:15:41
milleroff
100matolog писал(а):Хм...Такая строка присутствует в моем конфиге.
Тогда приведите полный конфиг ...
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 16:01:33
100matolog
milleroff писал(а):100matolog писал(а):Хм...Такая строка присутствует в моем конфиге.
Тогда приведите полный конфиг ...
Код: Выделить всё
[root@d3 ~]# cat /etc/snmpd.config
host := d3.server
location := "d3.server"
contact := "admin@server"
system := 1 # FreeBSD
traphost := localhost
trapport := 162
read := "secret-string"
write := "another-secret-string"
trap := "localhost"
%snmpd
begemotSnmpdDebugDumpPdus = 2
begemotSnmpdDebugSyslogPri = 7
begemotSnmpdCommunityString.0.1 = $(read)
begemotSnmpdCommunityDisable = 1
begemotSnmpdPortStatus.[$(host)].161 = 1
begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1
begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4
sysContact = $(contact)
sysLocation = $(location)
sysObjectId = 1.3.6.1.4.1.12325.1.1.2.1.$(system)
snmpEnableAuthenTraps = 2
begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so"
begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
begemotSnmpdModulePath."atm" = "/usr/lib/snmp_atm.so"
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 16:13:53
milleroff
А этот параметр откуда ?
У вас так:
а у меня так:
Я проверил на FreeBSD 7.2 и FreeBSD 8.0, нету там такого как у вас ....
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 16:26:45
100matolog
milleroff писал(а):
А этот параметр откуда ?
это я делал по статье Алексея
http://www.lissyara.su/articles/freebsd ... mp_daemon/
У вас так:
а у меня так:
Я проверил на FreeBSD 7.2 и FreeBSD 8.0, нету там такого как у вас ....
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 16:40:21
milleroff
Тогда смотрите в /var/log/messages насчет ошибок. Но я посоветовал бы использовать дефолтные значения, а не из статьи ..
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 16:44:33
100matolog
milleroff писал(а):Тогда смотрите в /var/log/messages насчет ошибок. Но я посоветовал бы использовать дефолтные значения, а не из статьи ..
у меня не было дефолтных значений..
а можно попросить ваш конфиг?
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 17:00:54
milleroff
Берите отсюда: /usr/share/examples/etc/snmpd.config
Re: Считать трафик на 3306 порту
Добавлено: 2010-02-04 17:14:41
milleroff
Вот мой:
Код: Выделить всё
# $FreeBSD: src/etc/snmpd.config,v 1.9.8.1 2009/04/15 03:14:26 kensmith Exp $
#
# Example configuration file for bsnmpd(1).
#
#
# Set some common variables
#
location := "Data Center"
contact := "admin@provider.md"
system := 1 # FreeBSD
traphost := localhost
trapport := 162
# Change this!
read := "read_pass"
# Uncomment begemotSnmpdCommunityString.0.2 below that sets the community
# string to enable write access.
write := "write_pass"
trap := "trap_pass"
#
# Configuration
#
%snmpd
begemotSnmpdDebugDumpPdus = 2
begemotSnmpdDebugSyslogPri = 7
#
# Set the read and write communities.
#
# The default value of the community strings is NULL (note, that this is
# different from the empty string). This disables both read and write access.
# To enable read access only the read community string must be set. Setting
# the write community string enables both read and write access with that
# string.
#
# Be sure to understand the security implications of SNMPv2 - the community
# strings are readable on the wire!
#
begemotSnmpdCommunityString.0.1 = $(read)
#begemotSnmpdCommunityString.0.2 = $(write)
begemotSnmpdCommunityDisable = 1
# open standard SNMP ports
begemotSnmpdPortStatus.0.0.0.0.161 = 1
# open a unix domain socket
begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1
begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4
# send traps to the traphost
begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4
begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2
begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap)
sysContact = $(contact)
sysLocation = $(location)
sysObjectId = 1.3.6.1.4.1.12325.1.1.2.1.$(system)
snmpEnableAuthenTraps = 2
#
# Load MIB-2 module
#
begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so"
# Force a polling rate for the 64-bit interface counters in case
# the automatic computation is wrong (which may be the case if an interface
# announces the wrong bit rate via its MIB).
#%mibII
#begemotIfForcePoll = 2000
#
# Netgraph module
#
#begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
#
#%netgraph
#begemotNgControlNodeName = "snmpd"
#
# pf(4) module
#
#begemotSnmpdModulePath."pf" = "/usr/lib/snmp_pf.so"
#
# Host resources module
# This requires the mibII module.
#
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"
#
# Bridge module
# This requires the mibII module.
#
#begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so"
# bsnmp-ucd
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"
%ucd
extNames.0 = "MDOUT"
extCommand.0 = "/home/max/bin/getoid.sh 64000"
extNames.1 = "MDIN"
extCommand.1 = "/home/max/bin/getoid.sh 64100"
extNames.2 = "EXOUT"
extCommand.2 = "/home/max/bin/getoid.sh 64200"
extNames.3 = "EXIN"
extCommand.3 = "/home/max/bin/getoid.sh 64300"
extNames.4 = "NGS"
extCommand.4 = "/home/max/bin/getngs.sh"
extNames.5 = "ALL"
extCommand.5 = "/home/max/bin/getoid.sh 65000"
extNames.6 = "LOCIN"
extCommand.6 = "/home/max/bin/getoid.sh 63000"
extNames.7 = "LOCOUT"
extCommand.7 = "/home/max/bin/getoid.sh 63100"