configure script fails to check go compiler presence, make fails with compilation error afterwards.
Steps to reproduce:
- ./bootstrap.sh
- ./configure —enable-agent2
- make install
Result:
configure:
... checking for libevent support... yes checking for go... no checking for javac... javac checking for jar... jar ...
make:
... make[5]: Entering directory '/home/aleksandrs/devel/zabbix/go/src/zabbix/cmd/zabbix_agent2' ... /bin/bash: go: command not found /bin/bash: go: command not found /bin/bash: go: command not found Makefile:527: recipe for target 'build' failed make[5]: *** [build] Error 127
Expected:
configure:
checking for libevent support... yes checking for go... no configure: error: Unable to find "go" executable in path
Solution:
diff --git a/configure.ac b/configure.ac index d92fa4494c0..ace19e6fe92 100644 --- a/configure.ac +++ b/configure.ac @@ -1685,7 +1685,7 @@ SENDER_LIBS="$SENDER_LIBS $TLS_LIBS" if test "x$agent2" = "xyes"; then AC_CHECK_PROGS([GO], [go], [no]) - if test "x$go" = "xno"; then + if test "x$GO" = "xno"; then AC_MSG_ERROR([Unable to find "go" executable in path]) fi fi
В этой статье рассмотрю простую настройку Zabbix сервера для мониторинга небольшого офиса с базовой IT-инфраструктурой и оповещения администратора в случае обнаружения проблем. Попробую этот сервер сделать на Ubuntu 20.04 LTS.
Установку самой ОС Ubuntu я уже пошагово расписывал в другой своей статье про настройку Зимбры:
https://typical-admin.ru/item/86-zimbra-9-0-0
Правда, там была Ubuntu 18.04. Но установка Ubuntu 20.04 абсолютно идентична. Поэтому шаг с установкой ОС я пропущу. Начну с того, у меня уже имеется голая установленная Ubuntu 20.04 LTS. Сразу ставлю последние обновления на ОС, а также ставлю привычные для себя инструменты:
apt update
apt upgrade
apt install mc nano
Затем пропишу своему серверу статический IP-адрес. Нахожу файл /etc/netplan/00-installer-config.yaml и привожу его содержимое к такому виду:
network: ethernets: enp0s3: addresses: - 192.168.0.80/24 gateway4: 192.168.0.1 nameservers: addresses: [192.168.0.200, 8.8.8.8] # dhcp4: true version: 2
Даю команду:
netplan apply
для применения изменений.
Ну и далее иду на официальный сайт Zabbix, там есть подробная инструкция по установке, причём, в разных вариантах. Я буду устанавливать Zabbix+MySQL+Nginx:
https://www.zabbix.com/ru/download?zabbix=6.0&os_distribution=ubuntu&os_version=20.04_focal&db=mysql&ws=nginx
Устанавливаю репозиторий Zabbix:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
apt update
Потом устанавливаю Zabbix сервер, веб-интерфейс и агента:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
Ставлю MySQL-сервер:
apt install mysql-server
Ставлю его в автозагрузку:
systemctl enable mysql
Устанавливаю пароль на root для MySQL:
mysql -u root -p
жму enter при запросе пароля
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password';
quit
где вместо new_password пишу свой пароль.
Теперь создаю базу данных для Zabbix:
mysql -u root -p
ввожу пароль из предыдущего шага
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;
quit;
где password — пароль пользователя zabbix в MySQL.
Теперь импортирую начальную схему и данные. Будет предложено ввести пароль созданный шагом выше:
zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
Выполнение команды может занять некоторое время.
Следующим шагом надо отредактировать файл /etc/zabbix/zabbix_server.conf. В нём надо найти параметр DBPassword= и прописать в него пароль базы данных Zabbix:
DBPassword=пароль
Далее надо отредактировать файл /etc/zabbix/nginx.conf. Там требуется раскомментировать и настроить директивы ‘listen‘ и ‘server_name‘. У меня они выглядят так:
listen 80;
server_name zabbix.local.typical-admin.ru;
Причём хост zabbix.local.typical-admin.ru у меня заранее прописан в Active Directory:
Теперь запускаю процессы Zabbix сервера и агента и настраиваю их запуск при загрузке ОС:
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Дальнейшая установка и настройка проходит в вэб-интерфейсе. Перехожу в него:
http://zabbix.local.typical-admin.ru/
Там вижу мастера установки и на первом шаге выбираю свой язык:
На следующем шаге установщик проверяет соблюдены ли все предварительные требования программного обеспечения. У меня везде порядок, жму далее:
на следующем шаге надо указать информацию для подключения к базе данных. База данных Zabbix должна быть уже создана:
Далее указываю имя сервера Zabbix и свой часовой пояс:
Всё, Zabbix установлен:
По умолчанию имя пользователя — Admin, пароль — zabbix.
Попробую подключить к Zabbix один из серверов, а именно сервер 1С на CentOS 9, настройку которого я рассматривал здесь:
https://typical-admin.ru/item/91-1c-8-3-centos9
Надо на него установить Zabbix Agent. Вот только на официальном сайте Zabbix нет пакетов для CentOS 9 (на момент написания статьи). Зато есть пакет zabbix-6.0.3-1.el8.src.rpm, из которого я и попробую пересобрать пакеты для CentOS 9. Скачиваю данный пакет:
wget https://repo.zabbix.com/zabbix/6.0/rhel/8/SRPMS/zabbix-6.0.3-1.el8.src.rpm
Затем ставлю пакеты, которых у меня не хватает для сборки:
dnf install OpenIPMI-devel curl-devel gnutls-devel java-devel libevent-devel libssh-devel mariadb-connector-c-devel net-snmp-devel policycoreutils-devel sqlite-devel unixODBC-devel libpq-devel
Скорее всего, это не все пакеты, нужные для сборки. Если каких-то пакетов будет не хватать, то при выполнении команды:
rpmbuild --rebuild zabbix-6.0.3-1.el8.src.rpm
будет выведен список отсутствующих пакетов для сборки. Если же все нужные пакеты присутствуют, то сборка начнётся. И у меня сборка началась, но прервалась вот с такой ошибкой:
configure: error: Unable to find "go" executable in path
Оказывается, для сборки ещё нужен пакет golang, который не указан в зависимостях. Ставлю его:
dnf install golang
После этого снова пробую запустить сборку:
rpmbuild --rebuild zabbix-6.0.3-1.el8.src.rpm
На этот раз всё успешно. В каталоге /root/rpmbuild/RPMS/noarch получаю следующие пакеты:
zabbix-apache-conf-6.0.3-1.el9.noarch.rpm
zabbix-nginx-conf-6.0.3-1.el9.noarch.rpm
zabbix-sql-scripts-6.0.3-1.el9.noarch.rpm
zabbix-web-6.0.3-1.el9.noarch.rpm
zabbix-web-deps-6.0.3-1.el9.noarch.rpm
zabbix-web-japanese-6.0.3-1.el9.noarch.rpm
zabbix-web-mysql-6.0.3-1.el9.noarch.rpm
zabbix-web-pgsql-6.0.3-1.el9.noarch.rpm
А в каталоге /root/rpmbuild/RPMS/x86_64 получаю пакеты вот такие:
zabbix-agent2-6.0.3-1.el9.x86_64.rpm
zabbix-agent-6.0.3-1.el9.x86_64.rpm
zabbix-get-6.0.3-1.el9.x86_64.rpm
zabbix-java-gateway-6.0.3-1.el9.x86_64.rpm
zabbix-js-6.0.3-1.el9.x86_64.rpm
zabbix-proxy-mysql-6.0.3-1.el9.x86_64.rpm
zabbix-proxy-pgsql-6.0.3-1.el9.x86_64.rpm
zabbix-proxy-sqlite3-6.0.3-1.el9.x86_64.rpm
zabbix-selinux-policy-6.0.3-1.el9.x86_64.rpm
zabbix-sender-6.0.3-1.el9.x86_64.rpm
zabbix-server-mysql-6.0.3-1.el9.x86_64.rpm
zabbix-server-pgsql-6.0.3-1.el9.x86_64.rpm
zabbix-web-service-6.0.3-1.el9.x86_64.rpm
Копирую пакеты из обоих каталогов куда-нибудь в отдельное место. Из всех этих пакетов мне нужен всего один — это zabbix-agent2. Ставлю его:
rpm -ivh zabbix-agent2-6.0.3-1.el9.x86_64.rpm
Но возможно кому-нибудь понадобятся все пакеты, чтобы развернуть Zabbix сервер на CentOS 9. Поэтому выложу их здесь, может кому пригодятся:
https://disk.yandex.ru/d/LojQUeluwDnqlQ
Теперь надо сконфигурировать агента. Нахожу файл /etc/zabbix/zabbix_agent2.conf. По умолчанию, в нём достаточно прописать IP-адрес или FQDN сервера мониторинга:
Server=192.168.0.80
Ещё, желательно, указать имя хоста, на котором будет работать агент:
Hostname=1c-serv.local.typical-admin.ru
И также я решил уделить внимание параметру LogFileSize. Он отвечает за ротацию лог-файла. По умолчанию параметр стоит 0, что означает неограниченный размер лога, который, теоретически, может заполнить всё свободное место на диске. Поставлю ротацию лога при достижении размера в 100мб:
LogFileSize=100
Также не забываю на файерволе открыть порт для подключения к агенту:
и включаю Zabbix Agent в автозагрузку:
systemctl enable zabbix-agent2
Теперь пробую добавить сервер 1С в хосты мониторинга на Zabbix сервере. Перехожу в меню «Узлы сети» и там жму кнопку «Создать узел сети»:
В появившемся окне задаю название узла, указываю для него шаблон (самый основной выбрал) и группу. Затем указываю, что подключение будет через агента, указываю IP (или можно FQDN) сервера 1С и жму добавить:
Сервер появился в списке узлов, и через некоторое время «доступность» загорелась зелёным:
Теперь попробую добавить мониторинг контроллера домена, который у меня работает на Windows srv 2019. Скачиваю установщик с официального сайта:
https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.3/zabbix_agent2-6.0.3-windows-amd64-openssl.msi
Запускаю его на контроллере домена. Установщик просит указать IP или FQDN сервера Zabbix, а также предупреждает, что на файерволе открыть доступ к агенту надо самостоятельно:
Затем захожу в настройки фаервола и добавляю там разрешающее правило исполняемого файла Zabbix агента:
Затем пробую добавить этот хост в Zabbix, аналогично серверу 1с, но выбирая другой шаблон и группу:
Хост появился и отображается как «доступен»:
Следующим я добавлю в Zabbix хост ESXi с парой виртуальных машин. Для активации мониторинга ESXi, надо подправить конфиг /etc/zabbix/zabbix_server.conf. В нём есть несколько вещей, относящихся к VMware ESXi:
StartVMwareCollectors — количество предварительно запущенных экземпляров сборщика VMware. Это значение зависит от количества служб VMware, которые будут отслеживаться. Для большинства случаев это значение должно быть:
servicenum < StartVMwareCollectors < (servicenum * 2)
где servicenum — количество служб VMware. Например, если 1 служба VMware для мониторинга, то StartVMwareCollectors будет равным 2. Если 3 службы VMware, значение будет 5. В большинстве случаев это значение не должно быть меньше 2 и не должно быть в 2 раза больше, чем количество отслеживаемых служб VMware.
VMwareCacheSize — Размер кеша VMware в байтах. Размер общей памяти для хранения данных VMware. Используется, только если запущены сборщики VMware. (Default: 8M Range: 256K-2G)
VMwareFrequency — Как часто Zabbix будет подключаться к серверу VMware для получения новых данных. (Стандартное значение: 60 секунд. Диапазон: 10-86400)
VMwarePerfFrequency — Как часто Zabbix будет подключаться к сервису VMware для получения данных о производительности. (Default: 60. Range: 10-86400)
VMwareTimeout — сколько секунд сборщик ожидает ответа от службы VMware. (Default: 10 Range: 1-300)
Я лишь отредактировал параметр:
StartVMwareCollectors=2
Значения остальных параметров меня устраивают по умолчанию. Перезапускаю демона Zabbix:
service zabbix-server restart
И проверяю, что там в логе /var/log/zabbix/zabbix_server.log. Наблюдаю записи:
server #26 started [vmware collector #2]
server #25 started [vmware collector #1]
Хорошо, сборщики запущены.
Далее создаю отдельного пользователя на сервере ESXi с правами только чтения. Сначала создаю самого пользователя:
Затем иду Host => Actions => Permissions:
Там жму на Add User и выбираю созданного пользователя zabbix, присваивая ему права Read-only:
Далее надо проверить, запущен ли сервис Config.HostAgent.plugins.solo.enableMob. Если нет, то надо запустить:
Теперь перехожу по адресу:
https://192.168.0.201/mob/?moid=ha-host&doPath=hardware.systemInfo
и вижу табличку, в которой интересует поле uuid:
Перехожу в Zabbix и добавляю новый узел. В имени узла пишу полное FQDN своего сервера ESXi (в моём случае это esxi1.local.typical-admin.ru). Шаблоны выбираю VMware и VMware Hypervisor.
Затем перехожу во вкладку Макросы и там создаю следующие поля:
Макрос |
Значение |
{$VMWARE.HV.UUID} |
03000200-0400-0500-0006-000700080009 |
{$VMWARE.PASSWORD} |
Пароль от пользователя zabbix в ESXi |
{$VMWARE.URL} |
https://192.168.0.201/sdk |
{$VMWARE.USERNAME} |
zabbix |
Узел появился:
Начали поступать и данные с него:
Спустя какое-то время, в списке узлов сами появятся виртуальные машины с ESXi сервера:
Однако, мне не нравятся эти серые надписи с «неизвестной доступностью»:
Хочу, чтобы они тоже были зелёные (или красные, как в случае с сервером 1С, который я пока выключил). Попробую добавить интерфейс подключения SNMP. Для этого сначала потребуется настройка службы SNMP Server на машине с ESXi. Сначала запускаю службу для подключения по SSH:
После этого подключаюсь по SSH к серверу ESXi и выполняю следующие команды:
1. Устанавливаю имя сообщества («public» — это имя сообщества, установленное по умолчанию). Я укажу имя сообщества – «typical-admin».
esxcli system snmp set --communities typical-admin
2. Устанавливаю таргет SNMP. Таргет SNMP — это сервер, на котором установлено программное обеспечение мониторинга и сбора информации. У меня это сервер Zabbix с адресом 192.168.0.80. UDP 161 — это порт по умолчанию, используемый для SNMP, и этот порт определен в моей конфигурации SNMP ESXi:
esxcli system snmp set --targets=192.168.0.80@161/typical-admin
3. Указываю местоположение (например, географическое местоположение, адрес, центр обработки данных или помещение), в котором находится сервер:
esxcli system snmp set --syslocation "EKB"
4. Указываю контактную информацию. Для этого параметра можно задать адрес электронной почты системного администратора:
esxcli system snmp set --syscontact me@domain.me
5. Команда включения SNMP:
esxcli system snmp set --enable true
6. Проверяю состояние SNMP на хосте ESXi:
esxcli system snmp get
И получаю вывод:
Authentication:
Communities: typical-admin
Enable: true
Engineid: 00000063000000a100000000
Hwsrc: indications
Largestorage: true
Loglevel: warning
Notraps:
Port: 161
Privacy:
Remoteusers:
Syscontact: me@domain.me
Syslocation: EKB
Targets: 192.168.0.80@161 typical-admin
Users:
V3targets:
Что ж, пробую изменить подключение в Заббиксе. Удаляю ранее созданный узел ESXi и добавляю его заново. В этот раз подставлю один дополнительный шаблон и соединение указываю SNMP:
А во вкладке Макросы прописываю дополнительную строчку {$SNMP_COMMUNITY} = typical-admin:
Затем жму Добавить. Узел успешно добавился и через некоторое время засветился зелёным:
Осталось добавить последний узел для мониторинга, и это у меня будет маршрутизатор Mikrotik. Он тоже мониторится по протоколу SNMP. На Микротике перехожу в меню IP -> SNMP и выполняю следующие настройки:
Затем жму кнопку Communities, потом жму Add New и далее ввожу параметры своего SNMP Communities (это тип общего пароля между станцией управления SNMP и устройством, который используется для аутентификации станции управления SNMP):
После этого выбираю свой SNMP Communities в основных настройках:
Теперь иду в Zabbix подключать Mikrotik в узлы мониторинга. Создаю новый узел:
Во вкладке Макросы прописываю {$SNMP_COMMUNITY} = typical-admin:
Узел добавился, данные начали поступать:
Вот такая схема инфраструктуры получилась:
Заключительный этап, который хотелось бы сделать — это настройка оповещений системному администратору. У Заббикса довольно много методов оповещения. Но я хочу через Телеграм:
В описании этого метода есть краткая, но ёмкая инструкция:
1. Зарегистрируйте бота: отправьте «/newbot» на @BotFather и следуйте инструкциям.
2. Скопируйте и вставьте полученный токен в поле «Token» выше (в настройках оповещения).
3. Если вы хотите отправлять персональные уведомления, вам необходимо получить чат-id пользователя, которому вы хотите отправлять сообщения:
3.1. Отправьте «/getid» на «@myidbot» в мессенджере Telegram.
3.2. Скопируйте полученный идентификатор чата и сохраните его в медиа «Telegram Webhook» для пользователя.
3.3. Попросите пользователя отправить «/start» вашему боту (без этого Telegram-бот ничего не отправит пользователю).
4. Если вы хотите отправлять групповые уведомления, вам нужно получить id группы, которой вы хотите отправлять сообщения:
4.1. Добавьте «@myidbot» в свою группу.
4.2. Отправьте «/getgroupid@myidbot» в вашей группе.
4.3. Скопируйте полученный идентификатор группы и сохраните его в медиа «Telegram Webhook» для пользователя, которого вы создали для групповых уведомлений.
4.4. Отправьте «/start@имя_вашего_бота_здесь» в вашей группе (без этого Telegram бот не будет ничего отправлять в группу).
Эта же англоязычная инструкция, но с картинками есть по ссылке:
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/telegram
Что ж, пробую зарегистрировать бота:
Бота зарегистрировал, API token получил. Теперь в Заббиксе иду Администрирование → Способы оповещений → Telegram и там в поле Token вставляю полученный API token:
Далее узнаю свой чат-id:
После этого снова иду в Zabbix в Администрирование → Пользователи, нажимаю на нужного пользователя, перехожу во вкладу Оповещения и жму Добавить:
Там выбираю Telegram и вставляю полученный выше чат-id. Жму Добавить.
И здесь жму Обновить:
Затем нахожу своего бота в Телеграме и запускаю его:
Теперь снова иду в Zabbix и включаю отправку сообщений при срабатывании триггеров. Это Настройка → Действия → Действия Триггеров:
Там я вижу это:
Жму, чтобы было активировано:
Всё. Пробую выдернуть шнур из какого-нибудь сервера, жду сообщения от бота. Пришло уведомление:
На этом статью можно закончить. Это была базовая настройка Zabbix для малого офиса.
Донаты принимаются на кошельки:
Yoomoney:
4100118091867315
BTC:
bc1qzw9vam8mv6derwscxl0vrnd6m9t2rpjg273mna
ETH / BNB BSC / Polygon MATIC:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F
Tron:
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV
USDT/USDC в сетях ETH/BSC/Polygon:
0x5cc07FF76490350ac6112fbFdA1B545Bc794602F
USDT в сети TRX (Tron):
TJUz8sJr9XYMjVqzmFNnCzzRWfPa57X2RV
LTC:
LRMZaFCSyCT6FUF62WEX1BokWV7v2dh2zo
Doge:
DTEnGLZRps9XaWNtAhchJWSeD4uTNDRxg7
XMR:
4A6uP1WxEc7HktToZFyiJuK6YmjdL8bSn2aY653qPwABhT4Y56iFuedgHcmpvLwWE55u8qkjGc715ZJs761FqedA8gkgznr
TON:
UQAdSPiWIDx2Q1VIeezkUV3s4sNlZM90w2ohSO6bD2-okwgY
Типичный Админ
Установка и базовая настройка Zabbix
В этой статье рассмотрю простую настройку Zabbix сервера для мониторинга небольшого офиса с базовой IT-инфраструктурой и оповещения администратора в случае обнаружения проблем. Попробую этот сервер сделать на Ubuntu 20.04 LTS.
Установку самой ОС Ubuntu я уже пошагово расписывал в другой своей статье про настройку Зимбры:
Правда, там была Ubuntu 18.04. Но установка Ubuntu 20.04 абсолютно идентична. Поэтому шаг с установкой ОС я пропущу. Начну с того, у меня уже имеется голая установленная Ubuntu 20.04 LTS. Сразу ставлю последние обновления на ОС, а также ставлю привычные для себя инструменты:
Затем пропишу своему серверу статический IP-адрес. Нахожу файл /etc/netplan/00-installer-config.yaml и привожу его содержимое к такому виду:
для применения изменений.
Ну и далее иду на официальный сайт Zabbix, там есть подробная инструкция по установке, причём, в разных вариантах. Я буду устанавливать Zabbix+MySQL+Nginx:
Устанавливаю репозиторий Zabbix:
Потом устанавливаю Zabbix сервер, веб-интерфейс и агента:
Ставлю его в автозагрузку:
Устанавливаю пароль на root для MySQL:
где вместо new_password пишу свой пароль.
Теперь создаю базу данных для Zabbix:
где password — пароль пользователя zabbix в MySQL.
Теперь импортирую начальную схему и данные. Будет предложено ввести пароль созданный шагом выше:
Выполнение команды может занять некоторое время.
Следующим шагом надо отредактировать файл /etc/zabbix/zabbix_server.conf. В нём надо найти параметр DBPassword= и прописать в него пароль базы данных Zabbix:
Далее надо отредактировать файл /etc/zabbix/nginx.conf. Там требуется раскомментировать и настроить директивы ‘listen‘ и ‘server_name‘. У меня они выглядят так:
Причём хост zabbix.local.typical-admin.ru у меня заранее прописан в Active Directory:
Теперь запускаю процессы Zabbix сервера и агента и настраиваю их запуск при загрузке ОС:
Дальнейшая установка и настройка проходит в вэб-интерфейсе. Перехожу в него:
Там вижу мастера установки и на первом шаге выбираю свой язык:
На следующем шаге установщик проверяет соблюдены ли все предварительные требования программного обеспечения. У меня везде порядок, жму далее:
на следующем шаге надо указать информацию для подключения к базе данных. База данных Zabbix должна быть уже создана:
Далее указываю имя сервера Zabbix и свой часовой пояс:
Всё, Zabbix установлен:
По умолчанию имя пользователя — Admin, пароль — zabbix.
Попробую подключить к Zabbix один из серверов, а именно сервер 1С на CentOS 9, настройку которого я рассматривал здесь:
Надо на него установить Zabbix Agent. Вот только на официальном сайте Zabbix нет пакетов для CentOS 9 (на момент написания статьи). Зато есть пакет zabbix-6.0.3-1.el8.src.rpm, из которого я и попробую пересобрать пакеты для CentOS 9. Скачиваю данный пакет:
Затем ставлю пакеты, которых у меня не хватает для сборки:
Скорее всего, это не все пакеты, нужные для сборки. Если каких-то пакетов будет не хватать, то при выполнении команды:
будет выведен список отсутствующих пакетов для сборки. Если же все нужные пакеты присутствуют, то сборка начнётся. И у меня сборка началась, но прервалась вот с такой ошибкой:
Оказывается, для сборки ещё нужен пакет golang, который не указан в зависимостях. Ставлю его:
После этого снова пробую запустить сборку:
На этот раз всё успешно. В каталоге /root/rpmbuild/RPMS/noarch получаю следующие пакеты:
А в каталоге /root/rpmbuild/RPMS/x86_64 получаю пакеты вот такие:
Копирую пакеты из обоих каталогов куда-нибудь в отдельное место. Из всех этих пакетов мне нужен всего один — это zabbix-agent2. Ставлю его:
Но возможно кому-нибудь понадобятся все пакеты, чтобы развернуть Zabbix сервер на CentOS 9. Поэтому выложу их здесь, может кому пригодятся:
Теперь надо сконфигурировать агента. Нахожу файл /etc/zabbix/zabbix_agent2.conf. По умолчанию, в нём достаточно прописать IP-адрес или FQDN сервера мониторинга:
Ещё, желательно, указать имя хоста, на котором будет работать агент:
И также я решил уделить внимание параметру LogFileSize. Он отвечает за ротацию лог-файла. По умолчанию параметр стоит 0, что означает неограниченный размер лога, который, теоретически, может заполнить всё свободное место на диске. Поставлю ротацию лога при достижении размера в 100мб:
Также не забываю на файерволе открыть порт для подключения к агенту:
и включаю Zabbix Agent в автозагрузку:
Теперь пробую добавить сервер 1С в хосты мониторинга на Zabbix сервере. Перехожу в меню «Узлы сети» и там жму кнопку «Создать узел сети»:
В появившемся окне задаю название узла, указываю для него шаблон (самый основной выбрал) и группу. Затем указываю, что подключение будет через агента, указываю IP (или можно FQDN) сервера 1С и жму добавить:
Сервер появился в списке узлов, и через некоторое время «доступность» загорелась зелёным:
Теперь попробую добавить мониторинг контроллера домена, который у меня работает на Windows srv 2019. Скачиваю установщик с официального сайта:
Запускаю его на контроллере домена. Установщик просит указать IP или FQDN сервера Zabbix, а также предупреждает, что на файерволе открыть доступ к агенту надо самостоятельно:
Затем захожу в настройки фаервола и добавляю там разрешающее правило исполняемого файла Zabbix агента:
Затем пробую добавить этот хост в Zabbix, аналогично серверу 1с, но выбирая другой шаблон и группу:
Хост появился и отображается как «доступен»:
Следующим я добавлю в Zabbix хост ESXi с парой виртуальных машин. Для активации мониторинга ESXi, надо подправить конфиг /etc/zabbix/zabbix_server.conf. В нём есть несколько вещей, относящихся к VMware ESXi:
StartVMwareCollectors — количество предварительно запущенных экземпляров сборщика VMware. Это значение зависит от количества служб VMware, которые будут отслеживаться. Для большинства случаев это значение должно быть:
servicenum Actions => Permissions:
Там жму на Add User и выбираю созданного пользователя zabbix, присваивая ему права Read-only:
Далее надо проверить, запущен ли сервис Config.HostAgent.plugins.solo.enableMob. Если нет, то надо запустить:
Теперь перехожу по адресу:
и вижу табличку, в которой интересует поле uuid:
Перехожу в Zabbix и добавляю новый узел. В имени узла пишу полное FQDN своего сервера ESXi (в моём случае это esxi1.local.typical-admin.ru). Шаблоны выбираю VMware и VMware Hypervisor.
Затем перехожу во вкладку Макросы и там создаю следующие поля:
Источник
YCM not working with Golang #3074
Comments
anfeierde commented Jul 8, 2018 •
Issue Prelude
Please complete these steps and check these boxes (by putting an x inside
the brackets) before filing your issue:
- I have read and understood YCM’s CONTRIBUTING document.
- I have read and understood YCM’s CODE_OF_CONDUCT document.
- I have read and understood YCM’s README, especially the
Frequently Asked Questions section. - I have searched YCM’s issue tracker to find issues similar to the one I’m
about to report and couldn’t find an answer to my problem. (Example Google
search.) - If filing a bug report, I have included the output of vim —version .
- If filing a bug report, I have included the output of :YcmDebugInfo .
- If filing a bug report, I have attached the contents of the logfiles using
the :YcmToggleLogs command. - If filing a bug report, I have included which OS (including specific OS
version) I am using. - If filing a bug report, I have included a minimal test case that reproduces
my issue, including what I expected to happen and what actually happened. - If filing a installation failure report, I have included the entire output
of install.py (or cmake / make / ninja ) including its invocation - I understand this is an open-source project staffed by volunteers and
that any help I receive is a selfless, heartfelt gift of their free time. I
know I am not entitled to anything and will be polite and courteous. - I understand my issue may be closed if it becomes obvious I didn’t
actually perform all of these steps.
Thank you for adhering to this process! It ensures your issue is resolved
quickly and that neither your nor our time is needlessly wasted.
Issue Details
ycm only golang not working
- What did you expect to happen?
not working
- What actually happened?
i want like python
Источник
Trying to find go executable in GOPATH #2257
Comments
HankelBao commented May 3, 2019 •
What did you do? (required. The issue will be closed when not provided.)
I tried to install the plugin using vim-plug.
What did you expect to happen?
After GoInstallBinaries, the required go executables are installed.
What happened instead?
No executables are installed with error:
vim-go: could not find ‘go’. Run :GoInstallBinaries to fix it.
Configuration (MUST fill this out):
vim-go version:
current Master repo
vimrc you used to reproduce (use a minimal vimrc with other plugins disabled; do not link to a 2,000 line vimrc):
- Vim version (first three lines from :version ):
NVIM v0.3.4
Build type: RelWithDebInfo
LuaJIT 2.0.5
Go version ( go version ):
go version go1.12.4 windows/amd64
Go environment ( go env ):
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:UsershankelbaoAppDataLocalgo-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:UsershankelbaoProjectsgo
set GOPROXY=
set GORACE=
set GOROOT=C:Usershankelbaoscoopappsgocurrent
set GOTMPDIR=
set GOTOOLDIR=C:Usershankelbaoscoopappsgocurrentpkgtoolwindows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:UsersHANKEL
go.exe is in my path and I can install/get go projects in powershell.
The text was updated successfully, but these errors were encountered:
bhcleek commented May 3, 2019
What does :echo $PATH show from within vim?
HankelBao commented May 3, 2019
C:Program Files (x86)Common FilesIntelShared Librariesredistintel64compiler;C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:WINDOWSSystem32OpenSSH;C:Usershankelbaoscoopappsrustupcurrent.cargobin;C:Usershanke
lbaoscoopappsllvmcurrentbin;C:UsershankelbaoscoopappsyarncurrentYarnbin;C:Usershankelbaoscoopappsyarncurrentglobalnode_modules.bin;C:Usershankelbaoscoopappspythoncurrentscripts;C:UsershankelbaoAppDataLocalProgramsPythonLauncher;C:Usershankelba
oProjectsgobin;C:Usershankelbaoscoopappsgcccurrentbin;C:Usershankelbaoscoopappsnodejscurrentbin;C:Usershankelbaoscoopappsnodejscurrent;C:Usershankelbaoscoopshims;C:UsershankelbaoAppDataLocalMicrosoftWindowsApps;C:Program FilesBandizip;C:Program
Files (x86)llvm-3.4-tools-windows;C:UsershankelbaoAppDataRoamingPythonPython37Scripts;C:Usershankelbaoscoopappsgocurrentbin;;C:UsershankelbaoscoopappsneovimcurrentNeovimbin
C:Usershankelbaoscoopappsgocurrentbin is where go.exe could be found.
bhcleek commented May 3, 2019
Does :!go env work from within Vim?
HankelBao commented May 4, 2019
Sorry for the delay in reply.
Yes, it works, with the exact same result in PowerShell executing go env .
bhcleek commented May 4, 2019 •
I’m not sure what’s causing this for you.
Does :echo $PATH from within vim show the complete value?
After that, can you try moving C:Usershankelbaoscoopappsgocurrentbin to the beginning of PATH and try GoInstallBinaries again?
HankelBao commented May 6, 2019
Yes, I tried them all and somehow the problem persists.
It is really frustrating because everything really seems to be fine. One thing to notice is that I actually have some tools installed like gocode or gogetdoc but the plugin requires me to download it again.
bhcleek commented May 6, 2019
Did :echo $PATH from within vim show the complete PATH that you expect to see? Specifically, does it show C:Usershankelbaoscoopappsgocurrentbin ?
Источник
I am using Windows 10. When I tried to build Chaincode it reported this error
# github.com/hyperledger/fabric/vendor/github.com/miekg/pkcs11
exec: "gcc": executable file not found in %PATH%
My chaincode imports:
import (
"fmt"
"strconv"
"github.com/hyperledger/fabric/core/chaincode/shim"
pb "github.com/hyperledger/fabric/protos/peer"
)
It’s running fine in Docker.
21 Answers
gcc (the GNU Compiler Collection) provides a C compiler. On Windows, install TDM-GCC. The github.com/miekg/pkcs11
package uses cgo. Cgo enables the creation of Go packages that call C code.
If you are running Ubuntu do:
apt-get install build-essential
This solved the problem. It installs the gcc/g++ compilers and libraries.
1) Install .exe
from > https://sourceforge.net/projects/mingw-w64/
1.2) ! use x86_64
architecture
2) Add C:Program Filesmingw-w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bin
to PATH
in User Variables
and in System Variables
. For me it works.
! To edit Path
variable press Windows
key, type ‘path’, choose ‘Edit the system environment variables’, click ‘Environment Variables’, find Path
variable in System variables
and in User variables
then edit.
I also encountered this message, but in my case, it was missing gcc.exe
. I used choco and installed mingw
, and then it worked.
details:
- download choco
choco install mingw -y
- check:
gcc -v
You can try — this is not a solution but a temp workaround
cgo_enabled=0 go build
Once you install gcc — and make sure %PATH has a way to find it (gcc.exe) — this should go away.
Also running this one will ensure the cgo_enabled variable will stay this way as long as terminal is open. That way you don’t have to prefix it each time you do a build.
export cgo_enabled=0 go build
The proper explanations why go build does not work for hyperledger in Windows environment are given as other answers.
For your compilation purposes, just to make it work without installing anything extra, you can try the following
go build --tags nopkcs11
It worked for me. I hope same works for you too.
If you are using an alpine based image with your Dockerfile
Install build-base
which will be met with your requirements.
apk add build-base
If you are running Ubuntu do:
sudo apt-get update
sudo apt-get install build-essential.
If the above commands do not work do:
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe"
The main component contains applications that are free software, can be freely redistributed and are fully supported by the Ubuntu team. & The universe component is a snapshot of the free, open-source, and Linux world.
Then install package by following command in terminal:
sudo apt-get update
sudo apt-get install build-essential.
For more info click here: https://itectec.com/ubuntu/ubuntu-problem-installing-build-essential-on-14-04-1-lts-duplicate/
Instruction to fix the «exec: “gcc”: executable file not found in %PATH%» error with MSYS2:
- Download MSYS2.
- Put MSYS2 folder into your $PATH.
- Start the MSYS2 command line program.
- Run this command:
pacman -S gcc
.
on Ubuntu its very easy but on windows need to do it:
- download MinGW on http://www.mingw.org/
- install on basic package Gcc-g++ (see this image)
- add on environment Patch of windows variables.
- restart and continue with «go get …»
$ go env
check CGO_ENABLED if its 1 change it to 0 by
$export CGO_ENBLED=0
gcc should not be necessary, unless you are cross compiling for a non-windows platform, or use cgo.
If you still need gcc, however, you should install MinGW, which provides a gcc port for Windows (Cygwin and msys should also work, although I have never actually tested this).
Edit: I see from your error message now, that it is a dependency that requires gcc. If you didn’t already know this, gcc is a c/c++ compiler, and in this case it is probably needed to compile c source files included by a dependency or sub-dependency.
- you need to download MingGW64
- put MingGW64 folder into your $PATH
- run go build xxx.go (with cgo library)
Hi jaswanth the main problem is that you haven’t register your %GO_HOME%pkgtoolwindows_amd64 to yuour Environment Path.
%GO_HOME% is the repository where you install your go at the first time.
same as other, just install tdm-gcc, but you can use its terminal, «MinGW», you can access it from start menu folder tdm-gcc, after start, browse to your project, and run it again
On Windows, you can install gcc by Scoop:
scoop install gcc
I’m a Windows user and I downloaded tdm-gcc (MinGW-w64 based) from the link below:
https://jmeubank.github.io/tdm-gcc/
After installation, it made a folder named «TDM-GCC-64».
I added «C:TDM-GCC-64bin» to my PATH, And it fixed my problem.
For Ubuntu, what worked for me was to simply run:
sudo apt install gcc
Я новичок в go lang. Попытка импортировать библиотеку go с помощью команды «go get», но в cmd получает эту ошибку:
go: missing Git command. See https://golang.org/s/gogetcmd
package github.com/ttacon/chalk: exec: "git": executable file not found in %PATH%
Мой Go Env:
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=F:WorksGo
set GORACE=
set GOROOT=C:Go
set GOTOOLDIR=C:Gopkgtoolwindows_amd64
set GO15VENDOREXPERIMENT=1
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
Что случилось с моей средой Go?
3 ответов
go get
требуется git, если какой-либо из пакетов живет (и извлекается) из репозитория git. Для Windows, вы можете установить git из сайт git.
go get fetching исходного кода выполняется с помощью одного из следующих инструментов, которые, как ожидается, будут найдены в вашей системе либо git, svn, hg.
установить git по этой ссылке https://git-scm.com/downloads
после установки git вы должны перейти к настройке переменных среды и добавить путь git.exe (исполняемый файл), который находится в корзине. Так что путь должен выглядеть вот так. C:Program FilesGitbin». Перезапустите IDE и команду должно работать.
установить git.
для Ubuntu, вы можете использовать команду
sudo apt-get install git
Some common questions and answers are listed below.
Table of Contents
Changes do not show on my site
Login to Netlify and check the status of the latest deploy in the Deploys tab.
If there is a progress indicator, Netlify is still updating your site.
If there is a red cross, click on the failed deploy and check the error message. You can either revert the change which broke the site, or consider addressing the issue.
Alternatively, changes may not show immediately in your web browser if your browser cached the earlier version. Delete your web browser’s cache or open an Incognito Window to force your browser to fetch a fresh copy of the site.
Feel free to join the Wowchemy community chat (link in the menu above) and post a detailed description of the issue with the error message and a link to your GitHub repository.
Error: failed to resolve output format
Cause 1: Hugo’s Cache
Users report a commonly occurring Hugo issue with the integrity of the modules cache. Consider upvoting and commenting on the issue to show the Hugo team that you are also affected.
To resolve this Hugo issue, either:
(A) Manually delete Hugo’s default cache folder and re-run Hugo. Hugo’s cache folder defaults to $TMPDIR/hugo_cache/
on Mac/Linux and %TMP%hugo_cache
on Windows.
Or, (B) Set a custom Hugo cache folder when you run Hugo, for example: hugo server --cacheDir ./cache/
where ./cache/
is the path of a temporary folder to create. Then you can easily locate and delete Hugo’s cache folder should you experience this issue.
Note: usually hugo mod clean --all
should delete Hugo’s cache, however, users report a Hugo bug running the command in this situation. You can provide your feedback on the Hugo issues.
Cause 2: Missing Hugo Module
Currently, Hugo does not automatically remove the module’s associated output from your outputs
in config.yaml
when you unload a module.
For example, if you are not using the module for Netlify headers
and redirects
, those outputs must be manually removed from your outputs
config or Hugo will error that you are trying to output something from a module that isn’t loaded.
Otherwise, if you require the output mentioned in the error, you need to load the module which provides that output. For Netlify headers
and redirects
, the Netlify module (github.com/wowchemy/wowchemy-hugo-themes/modules/wowchemy-plugin-netlify
) is required.
Seeing an error similar to failed to extract shortcode…not found when editing a site you downloaded?
The error appears when Hugo cannot find the Hugo Modules for Wowchemy. Attempt to resolve the issue by clearing Hugo’s module cache:
hugo mod clean
hugo server
If that does not resolve the issue, consider fetching a fresh copy of the latest Wowchemy modules after clearing Hugo’s cache:
hugo mod clean
hugo mod get -u ./...
hugo server
Note: usually hugo mod clean
should delete Hugo’s cache, however, users report a Hugo bug running the command in this situation. You can provide your feedback on the Hugo issues.
If Hugo’s hugo mod clean
command fails to delete the Hugo cache (i.e. gives an error), see the workaround in the Error: failed to resolve output format section below.
If the above commands do not resolve the issue, then the Hugo Module for Wowchemy may not have been fully setup if your site was setup prior to 2021. Learn how to add the Hugo Module to your site.
Error: Go executable not found
Install Hugo’s Go dependency. If you believe that Go is already installed, perhaps Hugo was unable to detect Go due to installing either Go or Hugo in an isolated way such as via Linux Snaps. Users on all major platforms have reported success installing Hugo and Go by following the official Wowchemy installation guide. You can also browse or report issues with Hugo detecting Go on the Hugo Forum.
Error: TOCSS failed to transform
There are two flavors of Hugo available to download. Wowchemy and its templates require the full version of Hugo, named Hugo Extended. Learn how to install Hugo Extended.
Error: failed to unmarshal YAML
The error message provides you with the line number of a file which contains invalid YAML front matter. Either revert the change which broke the site or fix the YAML according to the details in the error message. You can learn about YAML syntax here.
To help prevent accidental YAML errors, consider using the Netlify CMS addon to edit content, rather than editing files directly.
Error: Homepage not found
Seeing Homepage not found at /home/index.md
?
Possible causes:
- A Widget Page was modified whilst running Hugo Server
- Stop Hugo Server and then restart it
content/home/index.md
is missing- Add the
/home/index.md
homepage file to each language’s content folder - For example, your site should have a
content/home/
folder containingindex.md
and your homepage sections, or for multi-language sites,content/en/home/
andcontent/zh/home/
etc. - Refer to the ‘Build Your Homepage’ and ‘Language’ documentation pages as well as the example homepage file
- Add the
Error: failed to download modules…unknown subcommand “mod”
Login to Netlify and set GO_VERSION
to 1.12
in your Environment settings.
Then click Deploys tab, and from the Trigger Deploy dropdown, choose Deploy Site.
Error: failed to download modules…not a git repository
Check your internet connection as per Bep’s comment. For reliable offline editing without relying on Hugo’s cache, consider vendoring your site with Hugo. (Also, manually deleting Hugo’s Module cache, from the location in the error message has been reported to resolve this error.)
Errors converting an existing Hugo site to use Wowchemy
Wowchemy is a website framework rather than just a theme. Please follow the step-by-step guide on the Installation and Getting Started pages of the documentation.
If you experience issues, first try running Hugo on an unedited template and then compare the configuration parameters in the demo site’s config/
folder and front matter of content files with the files in your site.
Feel free to join the Wowchemy community chat (link in the menu above) and post a detailed description of the issue with the error message and a link to your GitHub repository.
Publication filters not working
Hosting your site with Netlify or Cloudflare and experience strange behavior such as filters not working?
Disable post-processing steps such as minification in your Netlify/Cloudflare admin panel.
Content not in chronological order
A full, valid date, such as 2020-12-25
, is required for each page and any other date fields. You can, however, customize how dates are displayed by editing the site configuration.