Contenido sacado de: [[https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages/repository_installation]] ====== Instalación y configuración de Zabbix Agent ====== ===== Descarga de Zabbix y agente ===== Para descargar la última versión del agente, necesitaremos descargar el paquete rpm según nuestra versión de CentOS: CentOS/RHEL 7: rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm CentOS/RHEL 6: rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm CentOS/RHEL 5: rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/5/x86_64/zabbix-release-3.2-1.el5.noarch.rpm Una vez descargado, podemos instalar los paquetes con yum: yum install zabbix-agent Activamos en systemd/runlevels el daemon chkconfig zabbix-agent on (CentOS 6) systemctl enable zabbix-agent.service (CentOS 7) Iniciamos el daemon service zabbix-agent start (CentOS 6) systemctl start zabbix-agent (CentOS 7) ===== Configuración del agente ===== Editamos el archivo de configuración: vim /etc/zabbix/zabbix_agentd.conf Modificamos las siguientes lineas: Server=212.81.221.218 ó 10.12.13.16 #La IP de nuestro zabbix server Hostname=zabbix.merkatu.info ServerActive=212.81.221.218 ó 10.12.13.16 Guardamos y reiniciamos el agente: service zabbix-agent restart (CentOS 6) systemctl restart zabbix-agent.service (CentOS 7) ===== Configurando parámetros MySQL ===== Primero tenemos que dar permiso al usuario de zabbix para usar mysql: mysql -uUSUARIO -pPASSWORD (En Plesk suele ser mysql -uUSUARIO -p`cat /etc/psa/.psa.shadow`) Una vez dentro de la consola de mysql damos permisos: use mysql; GRANT USAGE ON *.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY 'PASSWORD'; GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'PASSWORD'; flush privileges; Para que zabbix lea el usuario y password, debemos crear un fichero .my.cnf dentro del directorio zabbix vim /etc/zabbix/.my.cnf Añadimos las siguientes lineas modificando el usuario y password: [mysql] user=zabbix password=password_elegida_en_paso_anterior [mysqladmin] user=zabbix password=password_elegida_en_paso_anterior Guardamos y salimos Ahora, en el archivo de parametros mysql de zabbix le tenemos que indicar la "HOME" de estas credenciales, es decir, el path donde hemos creado el archivo .my.cnf: Zabbix 3: vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf Zabbix 4: vim /etc/zabbix/zabbix_agentd.conf.d/userparameter_mysql.conf Ponemos la siguiente información: # For all the following commands HOME should be set to the directory that has .my.cnf file with password information. # # Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert]. # Key syntax is mysql.status[variable]. UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}' # My line # # Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data]. # Key syntax is mysql.size[,,]. # Database may be a database name or "all". Default is "all". # Table may be a table name or "all". Default is "all". # Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both". # Database is mandatory if a table is specified. Type may be specified always. # Returns value in bytes. # 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/etc/zabbix mysql -N' # #Default below UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive # #My line UserParameter=mysql.uptime,HOME=/etc/zabbix mysqladmin status | cut -f2 -d ":" | cut -f1 -d "T" | tr -d " " UserParameter=mysql.threads,HOME=/etc/zabbix mysqladmin status | cut -f3 -d ":" | cut -f1 -d "Q" | tr -d " " UserParameter=mysql.questions,HOME=/etc/zabbix mysqladmin status | cut -f4 -d ":"|cut -f1 -d "S" | tr -d " " UserParameter=mysql.slowqueries,HOME=/etc/zabbix mysqladmin status | cut -f5 -d ":" | cut -f1 -d "O" | tr -d " " UserParameter=mysql.qps,HOME=/etc/zabbix mysqladmin status | cut -f9 -d ":" | tr -d " " UserParameter=mysql.version,mysql -V Guardamos y salimos ===== Añadimos el nuevo host en la GUI ===== Accedemos a la GUI a la pestaña **Configuración >> Equipos >> Crear Equipo** En esta nueva ventana le vamos dando los datos del nuevo Equipo donde hemos instalado el agente. Rellenamos los datos necesarios: * **Nombre:** nombrequipo * **IP:** IPequipo *** Grupo:** Añadimos el equipo al grupo que deseemos En la pestaña **Plantillas**, elegimos la plantilla que queramos para dicho equipo. Y guardamos. ===== Actualización de Zabbix Agent ===== ==== Run (for server AND agent) ==== # stop services systemctl stop zabbix-server systemctl stop zabbix-agent # clean cache yum clean all # upgrade releases from 2.x/3.0 to 3.2 yum upgrade http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm # disable additional repository yum-config-manager --disable zabbix-non-supported # update yum update -y # clean cache yum clean all # enable services systemctl enable zabbix-server systemctl enable zabbix-agent ==== [FOR AGENTS ONLY] Run: ==== # for agents systemctl stop zabbix-agent yum clean all yum upgrade http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm yum-config-manager --disable zabbix-non-supported yum install zabbix-agent -y yum clean all systemctl enable zabbix-agent systemctl start zabbix-agent