Snmpd conf настройка freebsd

3: Настройка агента SNMP

Как правило, в клиент-серверной системе агент не имеет никаких внешних инструментов, необходимых для настройки SNMP. Можно отредактировать некоторые конфигурационные файлы агента, но большая часть настроек все равно выполняется путём подключения менеджера к агенту.

Для начала нужно открыть конфигурационный файл демона на агенте.

Откорректируйте директиву agentAddress; на данный момент она поддерживает только соединения, исходящие с локального компьютера. Нужно закомментировать эту строку и раскомментировать следующую строку, что разрешает все соединения (в дальнейшем доступ будет ограничен).

Затем нужно временно добавить строку createUser. Эта директива обычно не хранится в этом файле, поэтому добавить её нужно только на некоторое время.

Создайте пользователя bootstrap, который будет использоваться в качестве шаблона для создания обычных пользователей. Пакеты SNMP делают это путём клонирования параметров пользователей.

Создавая нового пользователя, укажите тип аутентификации (MD5 или SHA) и пароль (минимум 8 символов). Если вы планируете использовать шифрование для передачи данных, вы также должны указать протокол шифрования (DES или AES) и пароль для него (по желанию). Если вы не выберете пароль для протокола шифрования, вместо него будет использоваться пароль аутентификации.

Теперь новый пользователь добавлен. Выберите уровень доступа для этого пользователя (bootstrap), а также для пользователя, который будет создан позже (он условно называется demo). Передайте им права на чтение и запись при помощи директивы rwuser (права только на чтение передаёт директива rouser).

Чтобы сделать шифрование обязательным, после настроек пользователя добавьте параметр priv.  Чтобы ограничить пользователя определённой частью MIB, нужно указать OID высшего уровня, к которому пользователь должен иметь доступ.

Сохраните и закройте файл.

Перезапустите сервис snmpd:

Теперь можно перейти на сервер 1 (менеджер) и подключиться к агенту, чтобы создать обычного пользователя. Для этого используется инструмент snmpusm. Вам нужно знать IP агента.

Шаг 3 — Настройка сервера агента SNMP

Как элемент настоящей клиент-серверной системы, агент сервер не имеет никаких внешних инструментов, необходимых для собственной настройки SNMP. Вы можете изменить некоторые файлы конфигурации для внесения изменений, но большинство необходимых изменений будут выполнены при подключении к вашему серверу агента из вашего сервера менеджера.

В этом обучающем руководстве вы будете использовать версию 3 протокола SNMP. В отличие от версии 1 и 2 протокола SNMP, в версии 3 каждое сообщение содержит параметры безопасности в зашифрованном виде. На этом шаге вы выполните настройку аутентификации и правил контроля доступа SNMPv3.

Для начала откройте на вашем сервере агента файл конфигурации демона с привилегиями sudo:

Внутри этого файла вам нужно внести несколько изменений. Они будут использоваться главным образом для начальной загрузки вашей конфигурации, чтобы вы могли управлять ей из другого сервера.

Сначала вам нужно изменить директиву . Согласно текущим настройкам, она разрешает только подключение из локального компьютера. Вам нужно будет закомментировать текущую строку и разкомментировать строку ниже, которая разрешает все подключения.

/etc/snmp/snmpd.conf

Примечание. Поскольку разрешение всех подключений, как в этом случае, не является оптимальной практикой, рекомендуется вернуть исходные настройки обратно сразу же после завершения начальной загрузки.

Далее вы выполните временную вставку строки . Эти директивы обычно не хранятся в этом файле; поэтому вы должны будете удалить их снова через какое-то время.

Созданный вами пользователь с именем bootstrap будет использоваться в качестве шаблона, с помощью которого вы создадите вашего первого реального пользователя. Пакет SNMP делает это в процессе клонирования свойств пользователя.

При определении нового пользователя необходимо указать тип аутентификации (MD5 или SHA), а также предоставить фразу-пароль, которая должна быть длиной не менее восьми символов. Если вы планируете использовать шифрование при передаче, как в данном руководстве, вы должны указать протокол конфиденциальности (DES или AES) и по желанию фразу-пароль протокола конфиденциальности. Если фраза-пароль протокола конфиденциальности не будет предоставлена, фраза-пароль аутентификации также будет использоваться для протокола конфиденциальности.

Добавьте строку в конце файла:

/etc/snmp/snmpd.conf

Теперь, когда у вас есть новый пользователь, вы можете установить уровень доступа для данного пользователя. В этом обучающем руководстве вы выполните настройку вашего пользователя bootstrap, а также нового пользователя с именем demo, которого вы создадите. Вы предоставите права на чтение и запись с помощью директивы (альтернативой является для предоставления исключительно права на чтение).

Также вы примените использование шифрования, добавив после вашего пользователя. Если вы хотите ограничить пользователя конкретной частью MIB, вы можете указать самого высокого уровня, к которому будет иметь доступ пользователь, в конце строки.

В рамках данного обучающего руководства обе строки будут выглядеть следующим образом:

/etc/snmp/snmpd.conf

Когда вы закончите внесение изменений, сохраните и закройте файл.

Для вступления этих изменений в силу, перезапустите службу на вашем сервере агента:

Демон SNMP будет прослушивать подключения к порту . Настройте UFW для разрешения подключений с сервера менеджера к этому порту:

Дополнительную информацию о UFW можно получить в статье Настройка брандмауэра с UFW в Ubuntu 18.04.

Теперь, когда сервер агента настроен, вы можете подключиться к вашему серверу агента из сервера менеджера для проверки подключения.

Настройка Zabbix на обработку трапов

Необходимо дописать данный материал

Настроим Zabbix на обработку трапов. Для этого включим ее в конфигурационном файле /etc/zabbix/zabbix_server.conf и укажем путь до файлов логов трап сервера

1
2
3
4
5

StartTrappers=1

SNMPTrapperFile=varlogsnmpttsnmptt.log

StartSNMPTrapper=1

Дополнительная настройка требуется только триггеров, так как в шаблоне Template Net Cisco IOS SNMPv2

По умолчанию данная настройка принимает все трапы и привязывает их к узлу. В шаблоне необходимо скорректировать дату и привести ее к виду – hh:mm:ss yyyy/MM/dd

После этих настроек появляются данные в разделе General – SNMP traps (fallback). Данное условия собирается все трапы. Если необходимо ловить конкретные записис, то в скобках указываем искомое значение.

Создание триггера

Открываем шаблон Template Net Cisco IOS SNMPv2 и создаем новый триггер

Добавим поиск строки, которую необходимо искать в логе. В данном примере указана ошибка авторизации

И сброс аварии по прошествии 600 секунд

Объединив их оператором AND. Должно получиться примерно следующее

Можно воспользоваться шаблоном zbx_export_templates

MIB файл контроллера WLC

Cisco WLC MIB можно загрузить на странице Wireless Downloads (только для зарегистрированных заказчиков).

Чтобы загрузить MIB WLC, выполните следующие действия:

  1. На странице Wireless Downloads нажмите Wireless LAN Controller и выберите платформу котроллера, MIB для которой вам требуются.
  2. Появится страница Software Download для контроллеров. На странице представлены все файлы для WLC, включая MIB.
  3. Загрузите стандартные MIB и MIB, характерные для Cisco. Должны быть загружены и содержать MIB следующие два файла. Имена файлов похожи на данные в примере:

    1
    2
    3
    4

    Standard-MIBS-Cisco-WLC4400-2000-XXXXXX.zip

    Cisco-WLC-MIBS-XXXX.zip

Cisco 3560: Port 1

Где 10.3.1.10 — IP адрес утсройства, pub — community, 10101 — номер первого порта в дереве SNMP.

Как я узнал, что 10101 это первй порт ? Запускаем:

snmpwalk -v2c -c pub 10.3.1.10

IF-MIB::ifDescr.10101 = STRING: GigabitEthernet0/1 IF-MIB::ifDescr.10102 = STRING: GigabitEthernet0/2 IF-MIB::ifDescr.10103 = STRING: GigabitEthernet0/3 IF-MIB::ifDescr.10104 = STRING: GigabitEthernet0/4

IF-MIB::ifDescr.10127 = STRING: GigabitEthernet0/27 IF-MIB::ifDescr.10128 = STRING: GigabitEthernet0/28 ………………………….

Таким же образом можно описать в /usr/local/etc/mrtg/ mrtg.conf и остальные порты catalyst`а.

Пример получение загрузки CPU cisco catalyst по snmp.

В /usr/local/etc/mrtg/ mrtg.conf дописываем:

Title: Cisco 3550 CPU Usage Target: 1.3.6.1.4.1.9.2.1.58.0&1.3.6.1.4.1.9.2.1.58.0:pub@10.3.1.10. 2 LegendI: Load CPU LegendO: YLegend: CPU load, % MaxBytes: 100 AbsMax: 100 ShortLegend: % PageTop:

Configuration Files

snmpd checks for the existence of and parses the following files:

/etc/snmp/snmp.conf
Common configuration for the agent and applications. See snmp.conf(5) for details.
/etc/snmp/snmpd.conf
/etc/snmp/snmpd.local.conf
Agent-specific configuration. See (5) for details. These files are optional and may be used to configure access control, trap generation,
subagent protocols and much else besides.
In addition to these two configuration files in /etc/snmp, the agent will read any files with the names snmpd.conf and snmpd.local.conf in a
colon separated path specified in the SNMPCONFPATH environment variable.
/usr/share/snmp/mibs/
The agent will also load all files in this directory as MIBs. It will not, however, load any file that begins with a ‘.’ or descend into
subdirectories.

Настройка snmpd в Ubuntu, Debian, Linux Mint

Файла настроек демона snmpd находиться в «/etc/snmp/snmpd.conf». После установки snmpd, по умолчанию, он должен работать на localhost-е.

1. Проверка работы snmpd с помощю утилиты snmpwalk.

Видно что по snmp отдаються данные с localhost.

Если вам надо опрашивать ваш host с другого адреса (например с удаленного компа) или порта (нестандартного порта), то надо изменить в файле настроек «/etc/snmp/snmpd.conf» строку.

где 192.168.1.100 — ip адрес вашего хоста, 162 — порт на хосте.

2. Изменение параметров «sysLocation» и «sysContact», для более легкой идентификации трапа.

3. Изменение дефолтного значения community.

По умолчанию в качестве community установлено public, это значение можно изменить в файле настроек «/etc/snmp/snmpd.conf».

где «private» — новое значение community. Параметры «default -V systemonly» являються необязательными, я рекомендую их оставить, т.к. без них, хост будет отдавать по snmp огромное количество всякой ненужной информации.

4. Перезапускаем демон snmpd.

Вот и все. Я постарался кратко рассказать о первоначальной настройки демонов snmpd и snmptrapd. Комментируем, подписываемся ну и всем пока:)

1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>

источник

Transport Specific Notes

ssh

The SSH transport, on the server side, is actually just a unix named pipe that can be connected to via a ssh subsystem configured in the main ssh server.
The pipe location (configurable with the sshtosnmpsocket token in snmp.conf) is /var/net-snmp/sshtosnmp. Packets should be submitted to it via the
sshtosnmp application, which also sends the user ID as well when starting the connection. The TSM security model should be used when packets should process
it.

The sshtosnmp command knows how to connect to this pipe and talk to it. It should be configured in the OpenSSH sshd configuration file (which
is normally /etc/ssh/sshd_config using the following configuration line:
Subsystem snmp /usr/local/bin/sshtosnmp
The sshtosnmp command will need read/write access to the /var/net-snmp/sshtosnmp pipe. Although it should be fairly safe to grant access to
the average user since it still requires modifications to the ACM settings before the user can perform operations, paranoid administrators may want to make the
/var/net-snmp directory accessible only by users in a particular group. Use the sshtosnmpsocketperms snmp.conf configure option to set the permissions,
owner and group of the created socket.

Access control can be granted to the user «foo» using the following style of simple snmpd.conf settings:

rouser -s tsm foo authpriv
Note that «authpriv» is acceptable assuming as SSH protects everything that way (assuming you have a non-insane setup). snmpd has no notion of how SSH has
actually protected a packet and thus the snmp agent assumes all packets passed through the SSH transport have been protected at the authpriv level.

dtlsudp

The DTLS protocol, which is based off of TLS, requires both client and server certificates to establish the connection and authenticate both sides. In order
to do this, the client will need to configure the snmp.conf file with the defX509ServerCerts, defX509ClientPriv, and defX509ClientPub
configuration tokens. The server will need to configure the snmp.conf file with the defX509ServerPub, defX509ServerPriv, and defX509ClientCerts
configuration tokens defined.

Access control setup is similar to the ssh transport as the TSM security model should be used to protect the packet.

Output Configuration

logTimestamp (1|yes|true|0|no|false)

Whether the commands should log timestamps with their error/message logging or not. Note that output will not look as pretty with timestamps if the source
code that is doing the logging does incremental logging of messages that are not line buffered before being passed to the logging routines. This option is only
used when file logging is active.
printNumericEnums (1|yes|true|0|no|false)
Equivalent to -Oe.
printNumericOids (1|yes|true|0|no|false)
Equivalent to -On.
dontBreakdownOids (1|yes|true|0|no|false)
Equivalent to -Ob.
escapeQuotes (1|yes|true|0|no|false)
Equivalent to -OE.
quickPrinting (1|yes|true|0|no|false)
Equivalent to -Oq.
printValueOnly (1|yes|true|0|no|false)
Equivalent to -Ov.
dontPrintUnits (1|yes|true|0|no|false)
Equivalent to -OU.
numericTimeticks (1|yes|true|0|no|false)
Equivalent to -Ot.
printHexText (1|yes|true|0|no|false)
Equivalent to -OT.
hexOutputLength integer
Specifies where to break up the output of hexadecimal strings. Set to 0 to disable line breaks. Defaults to 16.
suffixPrinting (0|1|2)
The value 1 is equivalent to -Os and the value 2 is equivalent to -OS.
oidOutputFormat (1|2|3|4|5|6)
Maps -O options as follow: -Os=1, -OS=2, -Of=3, -On=4, -Ou=5. The value 6 has no matching -O option. It suppresses output.
extendedIndex (1|yes|true|0|no|false)
Equivalent to -OX.
noDisplayHint (1|yes|true|0|no|false)
Disables the use of DISPLAY-HINT information when parsing indices and values to set. Equivalent to -Ih.

SNMP и MRTG как способ мониторинга под FreeBSD

SNMP (Simple Network Management Protocol) — простой протокол управления сетью.

Это технология, призванная обеспечить управление и контроль за устройствами и приложениями в сети связи путём обмена управляющей информацией между агентами, располагающимися на сетевых устройствах, и менеджерами, расположенными на станциях управления. В настоящее время SNMP является базовым протоколом управления сети Internet . SNMP определяет сеть как совокупность сетевых управляющих станций и элементов сети (главные машины, шлюзы и маршрутизаторы, терминальные серверы), которые совместно обеспечивают административные связи между сетевыми управляющими станциями и сетевыми агентами.

MRTG (Multi Router Traffic Grapher) — утилита позволяющая осуществлять мониторинг сетевых линков (да и не только их). MRTG на выходе генерирует HTML страницы с графиками в PNG.

Итак вы решили, что пора следить за нагрузкой на сетевых линках в вашей сети.

Что для этого нужно ?

]# cd /usr/ports/net-mgmt/mrtg [root@work /usr/ports/net-mgmt/mrtg]# make install clean

после инсталляции появится: /usr/local/bin/mrtg

]# cd /usr/ports/net-mgmt/net-snmp [root@virus /usr/ports/net-mgmt/net-snmp]# make install clean

после инсталляции появится: /usr/local/sbin/snmpd

Приступаем к настройке:

Если вам необходимо мониторить что либо на другом компьютере/сервере (он будет являться «клиентом»), то после установки на нем snmp выполняем команду:

Запустится утилита которая поможет создать конфигурационный файл для snmp, который должен располагаться в /usr/local/share/snmp/ и называться snmpd.conf .

После запуска выбираем пункт 1 (1: snmpd.conf) , затем пункт 2 (2: Access Control Setup) , а затем пункт 3 ( 3: a SNMPv1/SNMPv2c read-only access community name ).

На вопрос «The community name to add read-only access for:» отвечаем именем community на которое будет отзываться наш сервер, например pub.

На вопрос «The hostname or network address to accept this community name from :» у нас два варианта:

  1. нажать ENTER, но тогда любой хост в сети сможет «снимать» показания по SNMP с этого сервера используя community pub.
  2. четко указать IP-адрес хоста с которого будут приходить запросы. (это может быть и сам хост 127.0.0.1)

На последний вопрос об ограничениях просто жмем ENTER.

На этом конфигурирование для нас закончено, печатаем букву f , жмем ENTER, печатаем f жмем ENTER, печатаем q , жмем ENTER и программа конфигуратор завершает свою работу сообщая:

The following files were created: snmpd.conf installed in /usr/local/share/snmp

Посмотрим как выглядит /usr/local/share/snmp/ snmpd.conf

Это означает что, хост с IP-адресом 127.0.0.1 может только «читать» используя community pub (помним, что по snmp можно и «писать» (управлять)).

Смотрим на месте ли процесс snmp:

]# ps -ax | grep snmp 927 ?? S 0:23.01 /usr/local/sbin/snmpd -p /var/run/snmpd.pid 76815 p0 S+ 0:00.00 grep snmp [root@work

]# sockstat | grep :161 root snmpd 927 13 udp4 *:161 *:*

Все в порядке, процесс на месте и «слушает» порт udp 161.

Проверить доступность «чтения» данных по SNMP c любого устройства можно командой:

snmpwalk -v2c -c pub 127.0.0.1

Где pub это community, а 127.0.0.1 IP-адрес хоста с которого мы хотим получить данные.

Если после запуска snmpwalk вы не получили в ответ:

Timeout: No Response from 127.0.0.1

а «поехали» данные то все ОК, если timeout, то проверьте, что процесс запущен и слушает порт udp 161, а также что IP-адрес хоста, с которого вы пытаетесь получить эти данные, присутвует в /usr/local/share/snmp/ snmpd.conf с запрашиваемым вами community.

Если вам необходимо снимать данные по SNMP с сетевого устройства (коммутатор (свич), маршрутизатор, etc.), который так же будет являться «клиентом», то настройте SNMP на нем, также указав хосты и community на RO (Read Only).

Пример настройки SNMP на Cisco Catalyst:

snmp-server community pub RO snmp-server location server-farm snmp-server contact my-cool-provider snmp-server host 10.3.1.1 pub snmp-server host 10.3.1.2 pub

Пример настройки SNMP на D-link DES 3526:

create snmp group pub v2c read_view CommunityView notify_view CommunityView create snmp community pub view CommunityView read_only create snmp host 10.3.1.1 v2c pub create snmp host 10.3.1.2 v2c pub

Конфигурационные файлы MRTG по умолчанию находятся в /usr/local/etc/mrtg/ .

WorkDir: /usr/local/www/mrtg background: #FBEDD0 Options: Bits Forks: 4

#Пример получения графика по порту №1 cisco catalyst 3560G

Title: Traffic for Cisco 3560 (Port 1) PageTop:

Discovery rules

Name Description Type Key and additional info
CPU discovery

HOST-RESOURCES-MIB::hrProcessorTable discovery

SNMP hrProcessorLoad.discovery
Temperature CPU discovery

MIKROTIK-MIB::mtxrHlProcessorTemperature

Since temperature of CPU is not available on all Mikrotik hardware, this is done to avoid unsupported items.

SNMP mtxrHlProcessorTemperature.discovery
Temperature sensor discovery

MIKROTIK-MIB::mtxrHlTemperature

Since temperature sensor is not available on all Mikrotik hardware,

this is done to avoid unsupported items.

SNMP mtxrHlTemperature.discovery
AP channel discovery

MIKROTIK-MIB::mtxrWlAp

SNMP mtxrWlAp.discovery

Filter:

AND

— A: {#IFTYPE} MATCHES_REGEX

— B: {#IFADMINSTATUS} MATCHES_REGEX

CAPsMAN AP channel discovery

MIKROTIK-MIB::mtxrWlCMChannel

SNMP mtxrWlCMChannel.discovery

Filter:

AND

— A: {#IFTYPE} MATCHES_REGEX

Storage discovery

HOST-RESOURCES-MIB::hrStorage discovery with storage filter

SNMP storage.discovery

Filter:

OR

— B: {#STORAGE_TYPE} MATCHES_REGEX

— A: {#STORAGE_TYPE} MATCHES_REGEX

System Information

System Group

The full contents of the ‘system’ group (with the exception of sysUpTime) can be explicitly configured using:
# Override 'uname -a' and hardcoded system OID - inherently read-only values
sysDescr     Universal Turing Machine mk I
sysObjectID  .1.3.6.1.4.1.8072.3.2.1066

# Override default values from 'configure' - makes these objects read-only
sysContact   Alan.Turing@pre-cs.man.ac.uk
sysName      tortoise.turing.com
sysLocation  An idea in the mind of AT

# Standard end-host behaviour
sysServices  72

Host Resources Group

The list of devices probed for potential inclusion in the hrDiskStorageTable (and hrDeviceTable) can be amended using any of the following
directives:
ignoredisk /dev/rdsk/c0t2d0
which prevents the device /dev/rdsk/c0t2d0 from being scanned,
ignoredisk /dev/rdsk/c0td0
ignoredisk /dev/rdsk/c0td0
either of which prevents all devices /dev/rdsk/c0tXd0 (except …/c0t6d0) from being scanned,
ignoredisk /dev/rdsk/c1*
which prevents all devices whose device names start with /dev/rdsk/c1 from being scanned, or
ignoredisk /dev/rdsk/c?t0d0
which prevents all devices /dev/rdsk/cXt0d0 (where ‘X’ is any single character) from being scanned.

Process Monitoring

The list of services running on a system can be monitored (and provision made for correcting any problems), using:
# At least one web server process must be running at all times
proc    httpd
procfix httpd  /etc/rc.d/init.d/httpd restart

# There should never be more than 10 mail processes running
#    (more implies a probable mail storm, so shut down the mail system)
proc    sendmail   10
procfix sendmail  /etc/rc.d/init.d/sendmail stop

# There should be a single network management agent running
#   ("There can be only one")
proc    snmpd    1  1
Also see the «DisMan Event MIB» section later on.

Disk Usage Monitoring

The state of disk storage can be monitored using:
includeAllDisks 10%
disk /var 20%
disk /usr  3%
#  Keep 100 MB free for crash dumps
disk /mnt/crash  100000

System Load Monitoring

A simple check for an overloaded system might be:
load 10
A more refined check (to allow brief periods of heavy use, but recognise sustained medium-heavy load) might be:
load 30 10 5

Log File Monitoring

TODO
file FILE
logmatch NAME PATH CYCLETIME REGEX
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *