# Настройка сервера Zabbix
Мы будем устанавливать простейшую схему Zabbix(сервер + агенты) в контейнерах Docker с использованием docker-compose.
Наша система будет работать по принципу пассивной системы(но без промежуточного прокси-сервера. То есть сервер будет напрямую опрашивать агентов):

Сервер у нас будет стоять на операционной системе Kali Linux.
1. Обновляем пакеты системы:
``
apt update
apt upgrade
``
2. Устанавливаем docker-compose:
``
apt-get install docker-ce docker-compose
``
3. Клонируем репозиторий с yaml файлом для разворачивания через docker-compose:
``
git clone https://github.com/vanohaker/zabbix-compose
``
:::warning
Вместе с сервером у нас так же поднимается агент(так как в сам сервер не встроена функция мониторинга самого себя, мы должны и на сервере установить и настроить агента), база данных(у нас это postgresql), прокси-сервер(у нас это Nginx, используется для работы веб-интерфейса сервера)
:::
4. Разворачиваем Zabbix-server командой:
``
dcoker-compose -f docker-compose-server-amd64.yaml up -d
``
:::info
Тут мы через -f указываем файл, который необходимо запустить. Через -d указываем, чтобы наш контейнер запустился в режиме демона.
:::
5. Открываем веб-интерфейс zabbix. Для этого переходим по ip-адресу/доменному имени, на котором он у вас развернут. У меня это машина с адресом 192.168.232.164.
:::info
Логин/Пароль по умолчанию - Admin/zabbix
:::
6. Открываем вкладку host, нажимаем на имя и открываем конфигурацию:

7. Изменяем параметр с IP на DNS и записываем DNS-имя agent. Сейчас мы подключаем только мониторинг сервера(то есть самого себя)
:::info
Имя agent используется потому что на сервере помимо сервера так же "крутится" контейнер с агентом, и мы обращаемся по имени сервиса, от которого этот контейнер запущен(можно посмотреть в файле yaml)
:::

8. Нажимаем на имя и переходим на вкладку Graphics. Тут мы можем увидеть данные в графическом виде, пока что только для одного агента:

# Настройка мониторинга на коммутаторе cisco
1. Подключаемся к cisco и запускаем на нем snmp-server:
``
snmp-server community public ro
``
:::info
public - это произвольное имя SNMP-community, ro означает, что у данного коммьюнити есть доступ только на чтение
Community предназначены для идентификации отправителя, на одном snmp сервере не может быть ва идентификатора.
:::
2. Создаем управляющий интерфейс в том же влане, что и наш сервер, и назначаем ему ip-адрес:
``
int vlan 20
ip address 192.168.20.1 255.255.255.0
no shutdown
do wr
``
3. Проверяем доступность коммутатора по SNMP с сервера командой(в линукс):
``
snmpwalk -v2c -c public 192.168.20.1
``
:::info
public - это коммьюнити, с помощью которого мы получаем доступ. IP- это адрес нашего коммутатора. v2c - версия используемого протокола
:::
Вывод этой команды:

4. На zabbix-сервере во вкладке **Host** создаем хост(голубая кнопка **Create Host** в правом верхнем углу). Далее мы видим форму конфигурации:

Тут мы заполняем название нашего хоста, группу хоста, шаблоны и ip-адрес(обязательно выбираем протокол snmp)
5. Во вкладке macros записываем значение нашей переменной **SNMP_COMMUNITY**

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


# Настройка агента на дистрибутиве Linux
1. Обновлеем репозитории:
``
apt update
``
2. Устанавливаем zabbix-agent
``
apt-get install zabbix-agent
``
3. В конфигурации **/etc/zabbix/zabbix-agentd.conf** меняем значение параметра **Server** на ip-адрес нашего Zabbix-сервера. Так же комментируем строку **ServerActive**, чтобы исключить работу активного режима мониторинга.
4. Запускаем агента командой
``
service zabbix-agent start
``
6. На zabbix-сервере во вкладке **Host** создаем хост(голубая кнопка **Create Host** в правом верхнем углу). Далее мы видим форму конфигурации:

Тут мы заполняем название нашего хоста, группу хоста, шаблоны и ip-адрес.
:::warning
На хосте по умолчанию обязательно должен быть открыт 10050
:::
7. Если мы видим зеленую иконку, а так же логи, которые приходят к серверу, значит подключение есть и все настроено верно:

