Configure error unable to find go executable in path

configure script fails to check go compiler presence, make fails with compilation error afterwards.

configure script fails to check go compiler presence, make fails with compilation error afterwards.

Steps to reproduce:

  1. ./bootstrap.sh
  2. ./configure —enable-agent2
  3. 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:

  1. download choco
  2. choco install mingw -y
  3. 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:

  1. download MinGW on http://www.mingw.org/
  2. install on basic package Gcc-g++ (see this image)
  3. add on environment Patch of windows variables.
  4. 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.

  1. you need to download MingGW64
  2. put MingGW64 folder into your $PATH
  3. 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 containing index.md and your homepage sections, or for multi-language sites, content/en/home/ and content/zh/home/ etc.
    • Refer to the ‘Build Your Homepage’ and ‘Language’ documentation pages as well as the example homepage file

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.

Понравилась статья? Поделить с друзьями:
  • Configure error the intltool scripts were not found please install intltool
  • Configuration error querying uuid failed
  • Configure error the http xslt module requires the libxml2 libxslt
  • Configuration error prefix s01 no ldap group display name given
  • Configure error the http rewrite module requires the pcre library