Мониторинг серверов с помощью ZABBIX. Первоначальная грубая настройка. — DEVOPS

Мониторинг серверов с помощью ZABBIX. Первоначальная грубая настройка.

В старые добрые времена, когда заббикс еще не существовал, я использовал 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)

 

Счастье начинает сбываться, оно уже практически рядом!

 

Теперь статья логически окончена! В последующих статьях будет рассказано о тонкой настройке заббикса, о том как сократить количество кликов, и настроить экраны с основной требуемой инфой, о том как писать собственные триггеры и о прочих полезных вещах.

Другие новости
Настойка satis для пакетов composer в docker

Настрройка satis satis — кеширующий сервер для пакетов php composer. Для настройки репозитория будем использовать официальный docker. Разработчикам понадобится редактировать файла конфигурации satis.json, для этого поднимем отдельный контейнер с sftp и ftp серверами внутри. Файл конфиргурации в нашем случае должен

Лечим wordpress https err_too_many_redirects

По какой логике wordpress понимает что к нему пришел https не понятно, но часто сталкиваемся с проблемой когда стили и js вордпресс отдает  по http и изза mixed content браузеры их режут. Если в настройках (Настройки -> Общие) жестко указали