zabbix 安装
1.安装PHP
Zabbix 3.0对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
yum install php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap
vim /etc/php.ini
date.timezone = Asia/Shanghai
post_max_size = 32M
max_execution_time = 300
max_input_time = 300
always_populate_raw_post_data = -1
MySQL建议使用5.6版本,CentOS6默认为5.1,不建议使用,性能偏低
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum install -y mysql-server mysql-devel
vim /etc/my.cnf
[mysqld]
innodb_file_per_table #独立表空间模式
service mysqld start
mysql_secure_installation #MySQL安全配置向导
Enter current password for root (enter for none): <–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止
Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
mysql -uroot -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
mysql> flush privileges;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+--------------------+
yum install httpd libxml2-devel net-snmp-devel libcurl-devel
groupadd -g 201 zabbix
useradd -g zabbix -u 201 -m zabbix
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.0.3.tar.gz
tar zxvf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql --with-libxml2
make &&make install
(编译 zabbix 如果报下面错误,就做以下操作
configure: error: Not found mysqlclient library
#find / -name libmysqlclient*
ln -s /usr/lib64/mysql/libmysqlclient.so.18.1.0 /usr/lib64/mysql/libmysqlclient.so
ln -s /usr/lib64/mysql/libmysqlclient_r.so.18.1.0 /usr/lib64/mysql/libmysqlclient_r.so)
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost 数据库ip地址
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=127.0.0.1,192.168.10.10 zabbix server ip地址
iptables -I INPUT -p tcp -m multiport --dports 10050:10051 -j ACCEPT
service iptables save &&service iptables restart
ln -s /usr/local/zabbix/sbin/* /usr/sbin/
cp /home/sources/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_* /etc/init.d/
chmod +x /etc/init.d/zabbix_*
sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server
配置WEB
vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1
ServerName 192.168.10.10
DocumentRoot "/var/www/html"
mkdir -p /var/www/html/zabbix
cp -r /home/sources/zabbix-3.0.3/frontends/php/* /var/www/html/zabbix/
chown -R apache.apache /var/www/html/zabbix/
chkconfig zabbix_server on
/etc/init.d/zabbix_server start
service httpd restart
用浏览器访问http://192.168.10.10/zabbix,并按照提示安装:
服务器和客户端都需要装agent
tar -zxvf zabbix-3.0.3.tar.gz
cdzabbix-3.0.3
./configure--prefix=/usr/local/zabbix --enable-agent
make install
cp/zabbix-3.0.3/misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/
ln -s /usr/local/zabbix/sbin/*/usr/local/sbin/
ln -s /usr/local/zabbix/bin/*/usr/local/bin/
vi /etc/rc.d/init.d/zabbix_agentd
第二行添加 配置开机启动
#chkconfig: 2345 10 90
#description: zabbix agent
带#号
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
客户端进行agent配置
vi/usr/local/zabbix/etc/zabbix_agentd.conf
Server= 服务器ip
Servertive= 服务器ip
Hostname=连接客户端标示
Server服务器进行测试
cd /usr/local/zabbix/bin
./zabbix_get -s 192.168.0.111 -p10050 -k"system.cpu.load[all,avg15]";
./zabbix_get -s 192.168.0.111 -p10050 -k mysql.status[Uptime];
点击配置=>主机=>创建主机
(7)填写主机信息,主机名称应与步骤3中设置的Hostname一致,并更新。
(8)搜索需要的模板,添加后更新信息。
2.1 创建检测脚本
打开zabbix agent配置目录 /etc/zabbix
cd /etc/zabbix
chk_mysql.sh
vim chk_mysql.sh
#!/bin/bash
# -------------------------------------------------------------------------------
# FileName: check_mysql.sh
# Revision: 1.0
# Date: 2016/09/29
# Author: lisiyu
# Email:
# Website:
# Description:
# Notes: ~
# -------------------------------------------------------------------------------
# Copyright: 2015 (c) DengYun
# License: GPL
# 用户名
MYSQL_USER=
'zabbix'
# 密码
MYSQL_PWD=
'zabbix'
# 主机地址/IP
MYSQL_HOST=
'127.0.0.1'
# 端口
MYSQL_PORT=
'3306'
#数据连接
#MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -h${MYSQL_HOST} -P${MYSQL_PORT}"
MYSQL_CONN="/usr/bin/mysqladmin"
# 参数是否正确
if[
$#-ne
"1"];
then
echo
"arg error!"
fi
# 获取数据
case$1
in
Uptime)
result=`
${MYSQL_CONN}status|cut -f2 -d
":"|cut -f1 -d
"T"`
echo
$result
;;
Com_update)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_update"|cut -d
"|"-f3`
echo
$result
;;
Slow_queries)
result=`
${MYSQL_CONN}status |cut -f5 -d
":"|cut -f1 -d
"O"`
echo
$result
;;
Com_select)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_select"|cut -d
"|"-f3`
echo
$result
;;
Com_rollback)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_rollback"|cut -d
"|"-f3`
echo
$result
;;
Questions)
result=`
${MYSQL_CONN}status|cut -f4 -d
":"|cut -f1 -d
"S"`
echo
$result
;;
Com_insert)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_insert"|cut -d
"|"-f3`
echo
$result
;;
Com_delete)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_delete"|cut -d
"|"-f3`
echo
$result
;;
Com_commit)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_commit"|cut -d
"|"-f3`
echo
$result
;;
Bytes_sent)
result=`
${MYSQL_CONN}extended-status |grep -w
"Bytes_sent"|cut -d
"|"-f3`
echo
$result
;;
Bytes_received)
result=`
${MYSQL_CONN}extended-status |grep -w
"Bytes_received"|cut -d
"|"-f3`
echo
$result
;;
Com_begin)
result=`
${MYSQL_CONN}extended-status |grep -w
"Com_begin"|cut -d
"|"-f3`
echo
$result
;;
*)
echo
"Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
注意:脚本的zabbix用户运行权限
2.2 修改mysql检测配置
将原先的注释了,添加新的配置
vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'
UserParameter=mysql.status[*],/usr/local/zabbix/scripts/chk_mysql.sh $1
#UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.ping,mysqladmin -uzabbix -pzabbix -P3306 -h172.0.0.1 ping | grep -c alive
UserParameter=mysql.version,mysql -V
2.3 关闭SELinux和firewall
setenforce 0
sed -i
"s/SELINUX=enforcing/SELINUX=disabled/g"/etc/selinux/config
systemctl stop firewalld
systemctl
disablefirewalld
2.4 重启agent
systemctl stop zabbix-agent
systemctl start zabbix-agent
2.5 如果还有问题,创建mysql连接文件
vim /etc/zabbix/zabbix_agentd.d/.my.cnf
[client]
user = zabbix
password = zabbix
三、zabbix测试mysql
注意,要在zabbix server上运行zabbix_get,在agent上会报错:
zabbix_get [24860]: Check access restrictions
inZabbix agent configuration
因为zabbix server是编译安装,所以我这里目录在/usr/local/zabbix
cd/usr/
local/zabbix/bin
./zabbix_get -s 192.168.16.214 -p10050 -k
"system.cpu.load[all,avg15]";
./zabbix_get -s 192.168.16.214 -p10050 -k mysql.status[Uptime];
作者:水他
链接:https://www.jianshu.com/p/5d4146776b46
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
修改/etc/my.cnf文件创建无密码登录
[root@localhost ~]# vim /etc/my.cnf
[client]
user=lqb
password=
123456
[mysqladmin]
host=localhost
user=lqb
password=
123456
有密码会导致其获取不到数据
netstat监听mysql端口3317
考虑下准备用netstat,先试下命令行:
[root@db_m2_slave2 zabbix]# netstat -ntpl|grep 3317 |grepmysql |wc |awk '{print $1}'
0
[root@db_m2_slave2 zabbix]#
Ok,没有告警信息存在,可以使用这个命令
之后修改agent的配置文件vim/etc/zabbix/zabbix_agentd.conf:
UserParameter=mysql.ping,netstat -ntpl|grep 3317 |grepmysql |wc |awk '{print $1}'
修改完,重启agentd服务
PS:执行chmod +s/bin/netstat防止zabbix-server远程调用失效。
去zabbix-server端check,能获取纯粹的数字0,证明此方法OK有效。
[root@hch_test_121_12php-5.6.20]#/usr/local/zabbix/bin/zabbix_get -s 192.168.3.73 -p10050 -kmysql.ping
0
[root@hch_test_121_12 php-5.6.20]#