and how to fix EXECUTE_STR() command:' mysql -h"" -P"" -sNX -e "show global status"' len:20 cmd_result:'sh: mysql: not found'
and other errors related to XML/JSON parsing
related zabbix 5 MySQL template files (not working) (I show the way to the solution, not the solution itself)
https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent2
1. Import template from above url into zabbix
2. edit /etc/rc.conf and add line (MySQL fix)
zabbix_agentd_paths="/usr/local/bin"
3. create request template for zabbix inside "/usr/local/etc/zabbix5/zabbix_agentd.conf.d" called template_db_mysql.conf
UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping UserParameter=mysql.get_status_variables[*], python /usr/local/etc/zabbix5/zabbix_agentd.conf.d/mysqltojson.py UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases" UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHE> UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status" UserParameter=mysql.slave_status[*], mysql -h localhost -P 3306 -sNX -e "show slave status"
4. create python parser file "SHOW GLOBAL STATUS" thath conferts output into json style. create file /usr/local/etc/zabbix5/zabbix_agentd.conf.d/mysqltojson.py
import MySQLdb import json conn = MySQLdb.connect(host = "localhost",user="__MY_USER__",password="__MY_PASSWORD__") cursor = conn.cursor() cursor.execute("SHOW GLOBAL STATUS") rs = cursor.fetchall() result = dict(rs) print (json.dumps(result))
4.1 (install pip, pkg install py39-pip and pip install mysqlclient)
4.2 (this is not ideal way for handling authentication for mysql user)
5. service zabbix_agentd restart
try now