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

Всем привет доброго лета! Задача из уст заказчика звучала следующим образом : \»мониторинг яндекса сказал что сайт не работает, при этом сервер пингуется\». Ну первым делом лезу на подвластный мне сервер, смотрю логи : аптайм 100 дней, перезагрузок не было

Хранение конфигурационных файлов в Git (Gitlab)

Было время не хранил я ничего в гите, и было это не торт. Один неверный символ мог съесть уйму времени! Годы шли и однажды прислушался к совету друга программиста использовать гитлаб.   Сервисы которые по своей идеологии не пересекаются я