This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
zabbix_lld_-_это_просто [2020/09/08 11:34] val [Модуль 1. Самый простой способ установки Zabbix] |
zabbix_lld_-_это_просто [2020/09/11 11:10] val |
||
---|---|---|---|
Line 2: | Line 2: | ||
* Мониторинг дисковой активности множества распределенных систем могут стать головной болью DevOps-инженера. Поручите эти задачу Zabbix, пусть он потревожит Вас тиолько когда это действительно нужно! | * Мониторинг дисковой активности множества распределенных систем могут стать головной болью DevOps-инженера. Поручите эти задачу Zabbix, пусть он потревожит Вас тиолько когда это действительно нужно! | ||
- | * Технология Zabbix LLD, про которую все слышали, не так сложна в настройке, как кажется на первый вгляд. Перед Вами самый простой, но очень полезный пример использования низкоуровнего обнаружения в Zabbix | + | * Технология LLD, про которую все слышали, не так сложна в настройке, как кажется на первый вгляд. Перед Вами самый простой, но полезный пример использования низкоуровнего обнаружения в Zabbix. |
- | ===== Модуль 1. Самый простой способ установки Zabbix ===== | + | ===== Модуль 1. Штатный способ установки Zabbix в Debian 10 ===== |
* [[http://val.bmstu.ru/unix/img/My%20Documents/debian_10.0_64_01.ova|OVA образ Debian 10]] | * [[http://val.bmstu.ru/unix/img/My%20Documents/debian_10.0_64_01.ova|OVA образ Debian 10]] | ||
Line 22: | Line 22: | ||
# apt update | # apt update | ||
- | # apt install zabbix-server-mysql zabbix-frontend-php php-mysql | + | # apt install zabbix-server-mysql zabbix-frontend-php php-mysql zabbix-agent jq sysstat |
- | # /etc/mysql/conf.d/my-custom-settings.cnf | + | # dpkg -l | grep zabbix |
+ | ... | ||
+ | ...4.0.4... | ||
+ | ... | ||
+ | |||
+ | # cat /etc/mysql/conf.d/my-custom-settings.cnf | ||
</code><code> | </code><code> | ||
[mysqld] | [mysqld] | ||
Line 52: | Line 57: | ||
# service zabbix-server start | # service zabbix-server start | ||
+ | |||
+ | # cat /etc/apache2/conf-available/zabbix-frontend-php.conf | ||
+ | </code><code> | ||
+ | ... | ||
+ | php_value date.timezone Europe/Moscow | ||
+ | ... | ||
+ | </code><code> | ||
+ | # a2enconf zabbix-frontend-php | ||
+ | |||
+ | # systemctl reload apache2 | ||
+ | |||
+ | # cat /etc/zabbix/zabbix.conf.php | ||
+ | </code><code> | ||
+ | <?php | ||
+ | // Zabbix GUI configuration file. | ||
+ | global $DB; | ||
+ | |||
+ | $DB['TYPE'] = 'MYSQL'; | ||
+ | $DB['SERVER'] = 'localhost'; | ||
+ | $DB['PORT'] = '0'; | ||
+ | $DB['DATABASE'] = 'zabbix'; | ||
+ | $DB['USER'] = 'zabbix'; | ||
+ | $DB['PASSWORD'] = 'zabbix'; | ||
+ | |||
+ | // Schema name. Used for IBM DB2 and PostgreSQL. | ||
+ | $DB['SCHEMA'] = ''; | ||
+ | |||
+ | $ZBX_SERVER = 'localhost'; | ||
+ | $ZBX_SERVER_PORT = '10051'; | ||
+ | $ZBX_SERVER_NAME = ''; | ||
+ | |||
+ | $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; | ||
+ | </code> | ||
+ | |||
+ | * [[http://IPADDRESS/zabbix/]] | ||
+ | |||
+ | ===== Модуль 2. Zabbix LLD "на пальцах" ===== | ||
+ | |||
+ | ==== Zabbix агент и элементы мониторинга ==== | ||
+ | |||
+ | === Пример элемента в единственном экземпляре === | ||
+ | <code> | ||
+ | # cat /proc/meminfo | grep MemAvailable | ||
+ | |||
+ | # zabbix_agentd -p | grep vm.memory.size | ||
+ | vm.memory.size[total] [u|2092417024] | ||
+ | </code> | ||
+ | |||
+ | * [[https://www.zabbix.com/documentation/4.0/ru/manual/appendix/items/vm.memory.size_params|Zabbix Documentation 4.0/ПАРАМЕТРЫ VM.MEMORY.SIZE]] | ||
+ | |||
+ | <code> | ||
+ | # zabbix_get -s 127.0.0.1 -k vm.memory.size[available] | ||
+ | </code> | ||
+ | |||
+ | === Пример элемента в множественном экземпляре === | ||
+ | |||
+ | <code> | ||
+ | # df -h / | ||
+ | |||
+ | # df -h /boot | ||
+ | |||
+ | # zabbix_agentd -p | grep vfs.fs.size | ||
+ | </code> | ||
+ | |||
+ | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/itemtypes/zabbix_agent|Zabbix Documentation 4.0/ZABBIX АГЕНТ]] | ||
+ | |||
+ | <code> | ||
+ | # zabbix_get -s 127.0.0.1 -k vfs.fs.size[/,free] | ||
+ | |||
+ | # zabbix_get -s 127.0.0.1 -k vfs.fs.size[/boot,free] | ||
+ | </code> | ||
+ | |||
+ | === Получение списка элементов === | ||
+ | |||
+ | <code> | ||
+ | # mount | grep ext | ||
+ | |||
+ | # zabbix_get -s 127.0.0.1 -k vfs.fs.discovery | jq | ||
+ | |||
+ | Configuration | ||
+ | Hosts | ||
+ | Zabbix server | ||
+ | Discovery rules | ||
+ | Mounted filesystem discovery | ||
+ | Filters | ||
+ | {#FSTYPE} matches @File systems for discovery | ||
+ | Item prototypes | ||
+ | Name | ||
+ | Free disk space on {#FSNAME} | ||
+ | Key | ||
+ | vfs.fs.size[{#FSNAME},free] | ||
+ | |||
+ | Administration | ||
+ | Regular expressions | ||
+ | File systems for discovery: ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|refs|ntfs|fat32|zfs)$ | ||
+ | </code> | ||
+ | |||
+ | ===== Модуль 3. Использование LLD для решения новой задачи ===== | ||
+ | |||
+ | <code> | ||
+ | # iostat | ||
+ | |||
+ | # zabbix_agentd -p | grep vfs.dev | ||
+ | </code> | ||
+ | |||
+ | * [[https://www.zabbix.com/documentation/4.0/ru/manual/config/items/itemtypes/zabbix_agent|Zabbix Documentation 4.0/ZABBIX АГЕНТ]] | ||
+ | * [[https://www.zabbix.com/documentation/4.4/ru/manual/config/items/itemtypes/zabbix_agent|Zabbix Documentation 4.4/ZABBIX АГЕНТ]] | ||
+ | |||
+ | <code> | ||
+ | # lsblk | ||
+ | |||
+ | # lsblk -dJ | jq | ||
+ | |||
+ | # lsblk -dJ | /bin/sed -e 's/blockdevices/data/' -e 's/name/{#DEVNAME}/g' -e 's/type/{#DEVTYPE}/g' | jq | ||
+ | |||
+ | # cat /etc/zabbix/zabbix_agentd.conf.d/vfs.dev.discovery.conf | ||
+ | </code><code> | ||
+ | UserParameter=vfs.dev.discovery,/bin/lsblk -dJ | /bin/sed -e 's/blockdevices/data/' -e 's/name/{#DEVNAME}/g' -e 's/type/{#DEVTYPE}/g' | ||
+ | </code><code> | ||
+ | # service zabbix-agent restart | ||
+ | |||
+ | # zabbix_agentd -p | grep vfs.dev | ||
+ | |||
+ | # zabbix_get -s 127.0.0.1 -k vfs.dev.discovery | jq | ||
+ | </code><code> | ||
+ | Configuration->Templates->Template OS Linux | ||
+ | Discovery rules->Create discovery rule | ||
+ | Name: Block devices discovery | ||
+ | Key: vfs.dev.discovery | ||
+ | Filters-> | ||
+ | {#DEVTYPE} matches disk | ||
+ | |||
+ | Block devices discovery | ||
+ | Item prototypes-> | ||
+ | Name: {#DEVNAME}: Disk read rate | ||
+ | Key: vfs.dev.read[{#DEVNAME},sps] | ||
+ | Type of information: Numeric (float) | ||
+ | Units: Байт | ||
+ | Applications: Filesystem | ||
+ | Preprocessing-> | ||
+ | Preprocessing steps | ||
+ | Custom multiplier 512 | ||
+ | |||
+ | Clone | ||
+ | |||
+ | Name: disk {#NAME} write bytes | ||
+ | Key: vfs.dev.write[{#DEVNAME},sps] | ||
+ | ... | ||
+ | |||
+ | </code><code> | ||
+ | $ while true; do head -c 1G </dev/urandom >myfile;done | ||
+ | |||
+ | $ while true; do grep -r `openssl rand -base64 12` /usr /var; done | ||
</code> | </code> |