古人学问无遗力,少壮工夫老始成。这篇文章主要讲述十三zabbix低级自动发现之mysql相关的知识,希望能为你提供帮助。
一、简述低级自动发现举例
不管你一台机器启动几个mysql,我都只获取所有端口,然后把端口变成一个参数传递给监控项,监控项根据获得的端口,分别监控不同实例
系统自带的有网络接口、系统文件、cpu等
二、mysql环境准备192.168.10.128
mkdir /data/3307/data /data/3308/data -p
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
cat > /data/3307/my.cnf < < EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3307/data
port=3307
socket=/data/3307/mysql.sock
server_id=7
log_bin=/data/3307/mysql-bin
binlog_format=row
log_error=/data/3307/mysql.log
[mysql]
socket=/data/3307/mysql.sock
EOF
cat > /data/3308/my.cnf < < EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3308/data
port=3308
socket=/data/3308/mysql.sock
server_id=8
log_bin=/data/3308/mysql-bin
binlog_format=row
log_error=/data/3308/mysql.log
[mysql]
socket=/data/3308/mysql.sock
EOF
chown -R mysql.mysql /data/3307
chown -R mysql.mysql /data/3308
mysqld --defaults-file=/data/3307/my.cnf &
mysqld --defaults-file=/data/3308/my.cnf &
mysql -S /data/3307/mysql.sock -e \'select @@server_id; \'
mysql -S /data/3308/mysql.sock -e \'select @@server_id; \'
为两实例设置密码
mysqladmin -h 127.0.0.1 -uroot password \'123456\' -P3307
mysqladmin -h 127.0.0.1 -uroot password \'123456\' -P3308
创建了3307和3308俩实例
三、配置zabbix-agent1、获取mysql端口号netstat -lntp|awk -F "[ :\\t]+" \'/mysqld/{print$4}\'
2、配置脚本
[root@23bff2c4_1633529122 /]# cat /etc/zabbix/zabbix_agentd.d/discover.sh
#!/bin/bash
#mysql low-level discovery
res=`netstat -lntp|awk -F "[ :\\t]+" \'/mysqld/{print$4}\'`
port=($res)
printf \'{\'
printf \'"data":[\'
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 & & "${key}" -ne "$((${#port[@]}-1))" ]]; then
printf \'{\'
printf "\\"{#MYSQLPORT}\\":\\"${port[${key}]}\\"},"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf \'{\'
printf "\\"{#MYSQLPORT}\\":\\"${port[${key}]}\\"}"
fi
done
printf \']\'
printf \'}\\n\'
chmod a+x /etc/zabbix/zabbix_agentd.d/discover.sh
3、给zabbix用户添加权限默认情况下载,zabbix会以zabbix用户的身份执行刚才的discover.sh脚本, netstat -lntup需要root用户的权限,所以这里我们使用suid来解决这个问题
chmod u+s /usr/bin/netstat
4、测试脚本sh /etc/zabbix/zabbix_agentd.d/discover.sh
文章图片
5、配置文件
[root@23bff2c4_1633529122 /]# cat /etc/zabbix/zabbix_agentd.d/mysql.conf
UserParameter=mysql.discovery,sh /etc/zabbix/zabbix_agentd.d/discover.sh
重启zabbix-agent
systemctl restart zabbix-agent.service
6、测试在zabbix-server机器上测试
zabbix_get -s 192.168.10.128 -k mysql.discovery
文章图片
7、添加监控项
[root@23bff2c4_1633529122 zabbix]# cat /etc/zabbix/zabbix_agentd.d/mysql.conf
UserParameter=mysql.discovery,sh /etc/zabbix/zabbix_agentd.d/discover.sh
UserParameter=mysql-status[*],echo "show global status where Variable_name=\'$2\'; " | HOME=/etc/zabbix /usr/local/mysql/bin/mysql -P $1 -N | awk \'{print $$2}\'
###mysql路径写全,不然mysql命令找不到,如果使用的是mariadb,可以正常找到mysql命令
额外设置一个账号密码文件,这个文件必须在mysql.conf的HOME路径下
[root@23bff2c4_1633529122 zabbix]# cat /etc/zabbix/.my.cnf
[mysql]
user=root
password=123456
host=127.0.0.1
[mysqladmin]
user=root
password=123456
host=127.0.0.1
重启zabbix-agent
systemctl restart zabbix-agent.service
?##直接将账号密码写进mysql.conf也行,但是zabbix-server验证会老是警告
文章图片
8、验证zabbix_get -s 192.168.10.128 -k mysql-status[3307,Uptime]
文章图片
四、web页面配置1、添加自动发现规则模板
文章图片
文章图片
文章图片
文章图片
文章图片
2、主机关联模板
文章图片
文章图片
【十三zabbix低级自动发现之mysql】
文章图片
推荐阅读
- 实验室如何选择正确的检测样品()
- 十四zabbix+grafana
- 在WordPress的Customizr主题中在哪里编辑页脚文本
- 哪里可以在WordPress中应用wp_list_comments
- 我应该在哪里添加链接rel=’stylesheet’行()
- 我在哪里将禁用移动响应的代码放在WordPress主题海洋中的什么位置()
- 我在哪里可以编辑/查看此WordPress免费主题的HTML()
- 尝试预览主题时-该站点遇到技术难题。请检查你的站点管理员电子邮件收件箱以获取说明
- 隐藏纯文本的正确CSS选择器是什么()