В старые добрые времена, когда заббикс еще не существовал, я использовал 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)
Счастье начинает сбываться, оно уже практически рядом!
Теперь статья логически окончена! В последующих статьях будет рассказано о тонкой настройке заббикса, о том как сократить количество кликов, и настроить экраны с основной требуемой инфой, о том как писать собственные триггеры и о прочих полезных вещах.