记录安装zabbix-agent的步骤。进一步记录安装percona的zabbix模块监控mysql的过程

1、简介

这里记录安装zabbix-agent的步骤。进一步记录安装percona的zabbix监控mysql的过程

2、安装zabbix-agent步骤

步骤说明:1)安装zabbix-agent,这里没使用国内的源,要重复安装好几次;2)配置,被动模式、密码  3)修改selinux措施    4)启动

yum install zabbix-agent -y

[root@www zabbix]# cat zabbix_agentd.conf|grep -v '^#'|grep -v '^$'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
StartAgents=0
ServerActive=xxx.xxx.xxx.xxx:xx
Hostname=xxxx
Include=/etc/zabbix/zabbix_agentd.d/*.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
TLSPSKIdentity=PSK 001
[root@www zabbix]# cat /etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[root@www zabbix]# 
[root@www zl]# ls -alZ /etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
-rw-r--r--. root root system_u:object_r:etc_t:s0       /etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
[root@www zl]# 

semanage port -a -t  zabbix_port_t -p tcp  30050
chcon --reference=/etc/zabbix/zabbix_agentd.conf  /etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk 
systemctl restart zabbix-agent

3、安装zabbix-agent报错处理

在启动zabbix-agent的时候,受到selinux影响,启动成功了,但无法连接zabbix的server,报错如下:

[root@www zl]# cat /var/log/zabbix/zabbix_agentd.log |grep 30050
  5717:20200903:000112.188 active check configuration update from [xxx.11.11.11:30050] started to fail (cannot connect to [[xxx.11.11.11]:30050]: [13] Permission denied)
[root@www zl]#

根据经验,这个可能是linux的影响,首先处理了文件权限的问题;

chcon --reference=/etc/zabbix/zabbix_agentd.conf  /etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk

但还是不行,继续使用journalctl -xn查看日志,发现了其中有这么一句

If you want to allow /usr/sbin/zabbix_agentd to connect to network port 30050
Then you need to modify the port type.
Do
# semanage port -a -t PORT_TYPE -p tcp 30050

根据经验,查看了这个的用法

[root@www zl]# semanage --help
[root@www zl]# semanage port
[root@www zl]# semanage port -l
[root@www zl]# semanage port -l|grep zabbix
zabbix_agent_port_t            tcp      10050
zabbix_port_t                  tcp      10051
[root@www zl]# semanage port -a -t  zabbix_port_t -p tcp  30050

最后根据经验,得出了方法

[root@www zl]# semanage port -a -t  zabbix_port_t -p tcp  30050
[root@www zl]#

4、安装percona的zabbix组件监控mysql的过程

#1、安装国内的php的yum源
yum install https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm -y
#2、安装php
yum install  php74-php php74-php-cli php74-php-common php74-php-gd php74-php-ldap php74-php-mbstring php74-php-mysql php74-php-pdo -y
#3、安装percona的zabbix系列的MySQL监控包
rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
#4、查看刚刚安装的MySQL监控包
cd /var/lib/zabbix/percona/
#5、对php进行软连接
ln -s /usr/bin/php74 /usr/bin/php
#6、配置数据库连接文件cp /etc/my.cnf.d/root.cnf /var/lib/zabbix/.my.cnf
cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php,修改这里面的mysql连接
#7、转移配置文件到指定文件夹中
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
#8、修改selinux配置
semanage fcontext -a -t zabbix_script_exec_t /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
restorecon -Rv /var/lib/zabbix/percona/scripts/
#9、启动zabbix-agent
systemctl restart zabbix-agent
若失败,就关掉selinux,等zabbix-agent运行正常,然后再启动selinux试试
#10、web页面操作,
将下面的xml模板导入zabbix中,然后加入需要监控的主机模块中即可;
模板导入:”配置“--》”模板“--》点击界面导入
主机使用:”配置“--》"主机”--》点击主机名称进入配置--》点击”模板“--》添加刚才导入的模板即可
[root@www templates]# pwd
/var/lib/zabbix/percona/templates
[root@www templates]# ls  *xml
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@www templates]# 

#11、其他
1)继续对整个脚本进行测试,若没结果说明有问题;
sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt
其中get_mysql_stats_wrapper.sh文件中的两行,可以拆出来单独测试
/usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost  --items gg
HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G
2)查看日志,看看日志里面的报错
journalctl -f
3)查询selinux可能有的权限
semanage fcontext -l |grep zabbix
4)配置文件,下面的两个配置都是对/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh分析后,才知道要配置的;
[root@www ~]# cat /var/lib/zabbix/.my.cnf
[client]
port=3306
host=127.0.0.1
user=xxxxx
password='xxxxxxxxxxxx'
default_character_set=utf8
[root@www ~]# 
[root@www ~]# head -n 35 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php|grep mysql
$mysql_user = 'xxxx';
$mysql_pass = 'xxxxxxxxxxx';
$mysql_port = 3306;
$mysql_socket = NULL;
$mysql_flags = 0;
$mysql_ssl  = FALSE;   # Whether to use SSL to connect to MySQL.
[root@www ~]# 
5)建立一个MySQL账号,给zabbix使用,用于监控MySQL的性能;
根据脚本得出,监控主要用了下面几个命令:
[root@www ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php |grep "SHOW"
SHOW STATUS;
SHOW VARIABLES;
SHOW SLAVE STATUS;
SHOW MASTER LOGS;
SHOW PROCESSLIST;
SHOW ENGINES;
SHOW /*!50000 ENGINE*/ INNODB STATUS;
[root@www ~]# 
然后根据测试结果,发现只要给与process权限就可以了;所以建立账号的命令是:
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password(密码复杂强度规定必须要有大小写字母、数字、符号)';
GRANT process ON *.* TO 'jeffrey'@'localhost';
flush privileges;

5、报错问题解决

问题1:重启客户端服务后提示已经存在相同的key;下面的报错来自journactl -f【参考1】
zabbix_agentd[7317]: zabbix_agentd [7317]: ERROR: cannot add user parameter "MySQL.Sort-scan,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh kt": key "MySQL.Sort-scan" already exists
解决方法:/etc/zabbix/zabbix_agentd.conf中出现了重复的行,Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/这一行重复了,去掉重复即可;
问题2:selinux报错,报错来自命令journactl -f【参考2】
setroubleshoot[7724]: SELinux is preventing /usr/bin/bash from read access on the file get_mysql_stats_wrapper.sh. For complete SELinux messages run: 
解决方法:
semanage fcontext -a -t zabbix_script_exec_t /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
restorecon -Rv /var/lib/zabbix/percona/scripts/
请注意,本次执行semanage后权限修改没有生效,执行restorecon才生效了,这个问题还需要观察


参考1:https://blog.leonshadow.com/763482/1064.html

参考2:https://unix.stackexchange.com/questions/371848/selinux-is-preventing-usr-bin-bash-from-execute-access-on-the-file-myfilename-s

官方参考:https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html (从zabbix官方搜索找到的)

时间:2020-09-03

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值