В старые добрые времена, когда заббикс еще не существовал, я использовал nagios+cacti. Но время шло, лень росла, использовать две системы, и постоянно между ними переключаться становилось совсем уж нерационально, потихоньку начал осваивать заббикс. Отмечу что, после cacti графики он рисует омерзительно-отвратительные, печаль моя не знает границ. И это, конечно же, субъективно.
https://www.zabbix.com/documentation/ru/2.0/manual/installation/install_from_packages
Я удивился — версия в официальных репах 1.8. Мне же нужна 2.0. Потратим еще 5 минут на гугление и добавим репы с лаунчпад:
# cat << EOF >> /etc/apt/sources.list deb https://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main deb-src https://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main EOF apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C407E17D5F76A32B apt-get update && apt-get upgrade apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent postfix
Следующий шаг, создать базу данных и залить в нее структуру и данные:
cd /usr/share/zabbix-server-mysql gzip -d *.gz echo "create database zabbix;"|mysql echo "grant all on zabbix.* to 'zabbix'@'localhost' identified by 'password';"|mysql mysql -ppassword -uzabbix zabbix < schema.sql mysql -ppassword -uzabbix zabbix < images.sql mysql -ppassword -uzabbix zabbix < data.sql
Далее создадим новый домен или подключим алиасом заббикс к текущему домену: и можем заходить по адресу
https://zabbix.ip:port/zabbix/
Логин-пароль: admin zabbix.
Теперь нужно причесать заббикс который по какой-то причине из портов не знает что демон syslogd в текущей версии бубунты называется rsyslogd, а наш любимый апач не httpd2 а снова apache2. Есть сакральный смысл для разработчиков апача в том чтобы от релиза к релизу его переименовывать. Уже не первый раз встречаю эту манипуляцию. А так же отключаем не нужные серверу заббикса сервисы: imap, inetd, ftp. Может быть у вас чтото еще есть. Множество скриншотов делать не хочется, мне кажется это неоправданным, напишите в комментах если без них непонятно, перепишу статью.
Для отключения сервисов идем по пути: Настройка -> Шаблоны -> Template Linux — Триггеры -> #Ставим галочки нпротив тех что нам нужно отключить# -> Cнизу выбираем #деактивировать выбранные#
Для того чтобы нормально начал мониториться сервис апача к примеру, ввиду вышеописанных причин неправильной работы тригера последовательность действий такая: Настройка -> Шаблоны -> Template Linux — Триггеры -> Apache is not running on {HOSTNAME} -> В строке выражение переименовываем httpd -> apache2 -> Сохраняем.
C сервисом rsyslogd ситуация сложилась следующего характера- Элемент данных отсутствует в элементах данных (items), тогда ленивым можно просто скопировать существующий, изменив его так как требуется. Если все сделать правильно — менять придется одно слово.
Итак на примере rsyslogd- что делаем: Настройка -> Шаблоны -> Template Linux — Элементы данных -> Выделяем галочкой «Number of running processes syslogd» -> копируем кнопочкой внизу -> меняем syslogd на rsyslogd -> сохраняем. После этой операции можно менять триггер!
В принципе на этом я бы мог считать первоначальную настройку завершенной, но мне кажется без наблюдения за другими машинами кроме себя zabbix практически бесполезен в абсолюте 🙂 Дальше будет описан процесс подключения сторонних машин к нашей системе мониторинга.
Процесс подключения я опишу на примере мониторинга сервера gitlab, настройка которого была описана в предыдущей статье. Хранение конфигурационных файлов в Git (Gitlab).
Логинимся на сервер gitlab и выполняем следующее:
# apt-get update && apt-get upgrade # apt-get install zabbix-agent
Редактируем файл конфигурации заббикс агента, меняем секцию в которой описываются адреса заббикс серверов:
# vi /etc/zabbix/zabbix_agentd.conf ### Option: Server # List of comma delimited IP addresses (or hostnames) of Zabbix servers. # No spaces allowed. First entry is used for receiving list of and sending active checks. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. # # Mandatory: yes # Default: # Server= Server=ZABBIX_SERVER_IP :wq
# update-rc.d zabbix-agent enable # service zabbix-agent restart
Дальше добавляем хост: Настройка -> Узлы сети -> Создать узел -> Имя=»SERVER GITLAB», Группы=»Linux servers», IP=»server ip gitlab» -> Сохранить
и присоединяем ему шаблон: Настройка -> Шаблоны -> Template Linux -> Узлы сети|Шаблоны -> добавляем сюда наш новый сервер и сохраняем.
По аналогии с этим хостом, так же, расходуя примерно по 15 кликов на каждый, добавляем и другие!
Для мониторинга хоста с MySQL, после подключения соответствующего шаблона, нужно научить агента отдавать данные:
cat << EOF >> /etc/zabbix/zabbix_agentd.conf.d/mysql.conf UserParameter=mysql.version,mysql -V UserParameter=mysql[ping],mysqladmin -uzabbixtest -pzabbixtest ping|grep alive|wc -l UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N -uzabbixtest -pzabbixtest | awk '{print $$2}' EOF service zabbix-agent restart
Ну а на мускульном сервере нужно завести соответствующего юзера:
mysql> create user 'testzabbix'@'localhost' identified by 'testzabbix'; Query OK, 0 rows affected (0.00 sec)
Счастье начинает сбываться, оно уже практически рядом!
Теперь статья логически окончена! В последующих статьях будет рассказано о тонкой настройке заббикса, о том как сократить количество кликов, и настроить экраны с основной требуемой инфой, о том как писать собственные триггеры и о прочих полезных вещах.