当前位置: 澳门新濠3559 > 数据库 > 正文

系统环境,安装docker的方式有多种

时间:2019-12-27 19:58来源:数据库
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt":$PORT 三、安装后设置 # systemctl daemon-reload # systemctl start docker # systemctl  status docker # systemctl enable docker # docker  info # docker  version   测试中几个有用的命

CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt":$PORT

三、安装后设置

# systemctl daemon-reload

# systemctl start docker

# systemctl  status docker

# systemctl enable docker

# docker  info

# docker  version

 

测试中几个有用的命令:

docker stop $(docker ps -a -q)

docker  rm    $(docker ps -a  -q)

docker exec  -it  $(docker ps -a | grep "zabbix-agent" | awk '{print $1}') "ifconfig"

=

然后我们可以手动停止主从复制,稍等片刻,就会发了报警信息

实验环境

# cat /etc/redhat-release

CentOS Linux release 7.3.1611 (Core)

IP:192.168.1.109

mysql-5.7.17-linux-glibc2.5-x86_64

参考:

Zabbix Documentation 3.2

zabbix/zabbix-agent

[mysql]

三、命令行依次起如下容器

# docker run --name mysql-server -t

-e MYSQL_DATABASE="zabbix"

-e MYSQL_USER="zabbix"

-e MYSQL_PASSWORD="zabbix_pwd"

-e MYSQL_ROOT_PASSWORD="root_pwd"

-d mysql:5.7

--character-set-server=utf8 --collation-server=utf8_bin

# docker run --name zabbix-java-gateway -t

-d zabbix/zabbix-java-gateway:latest

# docker run --name zabbix-server-mysql -t

-e DB_SERVER_HOST="mysql-server"

-e MYSQL_DATABASE="zabbix"

-e MYSQL_USER="zabbix"

-e MYSQL_PASSWORD="zabbix_pwd"

-e MYSQL_ROOT_PASSWORD="root_pwd"

-e ZBX_JAVAGATEWAY="zabbix-java-gateway"

--link mysql-server:mysql

--link zabbix-java-gateway:zabbix-java-gateway

-p 10051:10051

-d zabbix/zabbix-server-mysql:latest

# docker run --name zabbix-agent -t

-e ZBX_HOSTNAME="zabbix-agent"

-e ZBX_SERVER_HOST="zabbix-server-mysql"

--link zabbix-server-mysql:zabbix-server

--link zabbix-java-gateway:zabbix-java-gateway

-p  10050:10050

-d zabbix/zabbix-agent:latest

# docker run --name zabbix-web-nginx-mysql -t

-e DB_SERVER_HOST="mysql-server"

-e MYSQL_DATABASE="zabbix"

-e MYSQL_USER="zabbix"

-e MYSQL_PASSWORD="zabbix_pwd"

-e MYSQL_ROOT_PASSWORD="root_pwd"

--link mysql-server:mysql

--link zabbix-server-mysql:zabbix-server

-p 80:80

-d zabbix/zabbix-web-nginx-mysql:latest

我们也可以现在一个shell里,执行脚本起如上五个容器:

如果要设置docker启动,容器启动,可在每个容器的启动参数里添加

--restart  always

图片 1

图片 2

图片 3

四、查看所起容器状态和端口监听

# dokcer ps -a 

# ss  -tan 

图片 4

五、登录web,enable本机监控

Admin/zabbix

图片 5

图片 6

注意:

此处IP 不能为 127.0.0.1,应该为zabbix-agent 的容器IP

# docker ps -a

# docker exec   -it  $(docker ps -a | grep "zabbix-agent" | awk '{print $1}')  "ifconfig"

图片 7

图片 8

图片 9

图片 10

N为1

一、安装docker

安装docker的方式有多种:

1.yum安装

# yum  -y install docker

2.用docker的二进制文件安装

yum install -y epel-release

1)修改主机名称,要跟zabbix-agent的配置文件中的Hostname相对应

注:使用docker需要使用加速器,否则那龟速,自己体会吧。加速器daocloud和阿里云都可以,我使用的前者。

1)percona监控zabbix的脚本是使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了:

2)安装percona-zabbix-templates

else

done

else [[ "${key}" -eq "((${#port[@]}-1))" ]]

另外可以添加微信和邮件告警,这里推荐下面的博文

写在最前:如果zabbix server和zabbix agent已经通过其他方式安装,可以直接跳过1、2步,直接从第3步开始看。

fi

firewall-cmd --permanent --add-port=10050-10051/tcp

也可配置Percona yum仓库后安装,建议配置percona的yum源,因为作为一个DBA你肯定会用到percona toolkit套件。 注:我没有用这种方式,percona toolkit我是通过源码包安装的。

      -e MYSQL_PASSWORD="ywwd.net"

选择最新的T值小于N

 

printf 't ]n'

mkdir -p /var/lib/zabbix/percona/scripts/

#更改后需要重新加载firewall防火墙

#Fucation:mysql low-level discovery

cp mysql_low_discovery.sh /var/lib/zabbix/percona/scripts/

      --link mysql-server:mysql

PidFile=/var/run/zabbix/zabbix_agentd.pid

4、yum安装的shell为单实例版,所以我们要进行相关修改,这里已经有小伙伴进行了修改,我们直接克隆,进行对比,需要先安装git

docker.io/zabbix/zabbix-server-mysql latest

docker restart zabbix-web-nginx-mysql

exit

sed -in 's#Europe/Riga#Asia/Shanghai#g' /run_zabbix_component.sh

sed -in '1i UserParameter=MySQL.discovery,/bin/bash /var/lib/zabbix/percona/scripts/mysql_low_discovery.sh' userparameter_percona_mysql.conf

sed -in 's#,#[*],#g' userparameter_percona_mysql.conf

      --link mysql-server:mysql

#最后查看配置是否生效

TZ=${TZ:-"Asia/Shanghai"} 这里改为Asia/Shanghai,否则zabbix-web端的时间会慢5个小时

8、最后把模板Mysql_Multiport.xml导入到zabbix-server内,所有用到的脚本文件都已经添加到附件中,大家可以下载使用。

docker.io/mysql 5.7

      -e MYSQL_USER="zabbix"

if [ "$ITEM" = "running-slave" ]; then

1)对比后,我们发现在get_mysql_stats_wrapper.sh脚本中,添加了相关参数

改为第一个,在zabbix-server的web端配置报警阈值为小于0,或者等于1的时候报警,

systemctl start docker

fi

      -e MYSQL_DATABASE="zabbix"

socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $9}'|cut -d ' ' -f 1`

      -d zabbix/zabbix-web-nginx-mysql:latest

 

在zabbix-server端,添加触发器

 

docker run --name mysql-server -t

fi

修改userparameter_percona_mysql.conf 配置文件

 

4)#cat $CACHEFILE | sed 's/ /n/g; s/-1/0/g'| grep $ITEM | awk -F: '{print $2}'

 

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' identified by '123456';

最后在首行添加端口自动发现脚本

docker.io/zabbix/zabbix-web-nginx-mysql latest

docker加入开机自启动

firewall-cmd --list-all

socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $9}'|cut -d ' ' -f 1`

cat $CACHEFILE | sed 's/ /n/g; s/-1/1/g'| grep $ITEM | awk -F: '{print $2}'

 

 

mysql多实例监控实录

printf 't"data":[n'

else

sed -in 's#$#$1#g' userparameter_percona_mysql.conf

1.1.7-2.noarch.rpm

      -e MYSQL_ROOT_PASSWORD="ywwd.net"

2.4. 修改zabbix-web的时区

$mysql_socket = NULL;

docker run --name zabbix-web-nginx-mysql -t

PORT=$2

      -e MYSQL_DATABASE="zabbix"

firewall-cmd --reload

注意:这里有个小问题,zabbix-web-nginx-mysql的启动脚本/run_zabbix_component.sh中,指定了时区,不是中国的Asia/Shanghai,所以我们要进入zabbix-web-nginx-mysql进行修改

git clone https://github.com/lianghx7123/Mysql_Multiport_monitor_used_zabbix.git mysql_monitor

docker 相关镜像版本:

      -e MYSQL_PASSWORD="ywwd.net"

#!/bin/bash

printf "ttt"{#MYSQLPORT}":"${port[${key}]}"}n"

if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then

1、zabbix服务端我们运行在docker容器内

cp ss_get_mysql_stats.php /var/lib/zabbix/percona/scripts/

egrep -v '^$|^#' /etc/zabbix/zabbix_agentd.conf

      -d mysql:5.7

docker -v

Docker version 1.12.6, build 3a094bd/1.12.6

3.10.0-514.el7.x86_64

systemctl enable docker

printf "ttt"{#MYSQLPORT}":"${port[${key}]}"},n"

      --character-set-server=utf8 --collation-server=utf8_general_ci --sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Percona Monitoring Plugins版本:

chown -R zabbix. /var/lib/zabbix/

 

 

discovery

CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt"

http://www.ywnds.com/?p=6199

echo 1

      -e MYSQL_USER="zabbix"

参考文章:

$mysql_port = NULL; <=====端口和socket要改为NULL

然后运行docker服务

N为0

修改时区后,需要重启容器

查看docker是否成功启动

并在/etc/my.cnf中添加

      --restart=always

      -e MYSQL_ROOT_PASSWORD="ywwd.net"

yum install -y php php-mysql

      -e MYSQL_DATABASE="zabbix"

CACHEFILE改为判断

chmod 700 /var/lib/zabbix/percona/scripts/*

3)running-slave进行如下修改,此处报警跟模板中的另一个Slave Stopped是重叠的,不过这个比Slave Stopped要灵敏,大概提前3分钟左右报警,不过需要在/etc/my.cnf以及脚本中添加mysql的账号和密码等信息,各有利弊吧

#--permanent永久生效,10050zabbix-agent服务端口,10051zabbix-server服务端口

yum install -y percona-zabbix-templates

password=123456 #存在安全隐患,但是如果把权限改小,可能会获取不到值,因为是通过zabbix用户去运行的脚本,里面只是密码,而且账号只能本机登录,所以问题也不大,但是要严格控制其他3个shell脚本的权限。

 

      -p 10051:10051 --restart=always

 

2)CMD="/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items $ITEM --port $PORT"

HOST=127.0.0.1

cat mysql_low_discovery.sh

内核版本:

cat /etc/redhat-release

      -e DB_SERVER_HOST="mysql-server"

Hostname=10.0.0.107 #<====zabbix-agent端的IP地址或者主机名

discovery() {

port=($(sudo ss -tpln | awk -F "[ :]+" '/[m]ysql/ {print $4}'))

if [ "$RES" -ne 2 ]; then

 

 

 

 

      -e MYSQL_PASSWORD="ywwd.net"

echo 0

把每行中的逗号',' 替换为[*],

docker版本:

3)指定zabbix-agent端的IP地址或者域名(端口号一般变)

这一列改为:

do

      -v /etc/localtime:/etc/localtime:ro

2.安装相关容器

echo 'zabbix ALL=(ALL) NOPASSWD:/usr/sbin/ss'>>/etc/sudoers

然后选择 例如:MySQL.slave-stopped[{#MYSQLPORT}]

同样需要放开zabbix-agent端口

https://ywwd.net/read-1271

rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm

      --link zabbix-server-mysql:zabbix-server

 

printf 't {n'

创建触发器原型

接下来客户端我们采用rpm包进行安装

 

所以服务器端先安装docker服务

 

      --restart=always

2.5. 在firewall防火墙放开zabbix-server和zabbix-agent的服务端口号

 

 

被监控mysql应用版本:

      -v /etc/localtime:/etc/localtime:ro

修改ss_get_mysql_stats.php脚本

依次点击 主机===>自动发现===>触发器类型===>点击右上角的创建触发器原型

其他保持默认,点击添加即可

Server=10.0.0.106 # <====zabbix-server端的IP地址

 

选择最新的T值等于N

 

微信告警:https://www.oschina.net/news/75588/zabbix-3.0.3

然后在zabbix-server端的web界面进行主机添加

 

 

注:如果在第4.4中指定的是cat $CACHEFILE | sed 's/ /n/g; s/-1/1/g'| grep $ITEM | awk -F: '{print $2}'

$mysql_pass = 123456; <=====此为php登录mysql的密码

cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

3、利用Percona Monitoring Plugins插件进行MySQL多实例的监控

2.2. zabbix-server 容器

注意:由于此处使用了 sudo ,所以要把zabbix用户加上sudo权限,且只能执行 ss命令

      -v /data/container/mysql/zabbix:/var/lib/mysql

在每行后面添加 $1

 

# Check for running slave

5、修改自动发现脚本

LogFile=/var/log/zabbix/zabbix_agentd.log

RES=`HOME=~zabbix /usr/local/mysql/bin/mysql -P$PORT -h127.0.0.1 -uzabbix -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | grep -i yes|wc -l `

 

 

      -e MYSQL_USER="zabbix"

7、最后一定要在所有的库上面做授权操作,否则拿不到监控数据

CMD变量的php路径一定要指定正确,否则会报错,我们在后面添加了 --port $PORT

$mysql_user = 'zabbix'; <=====此为php登录mysql的用户

这样zabbix-server端就已经安装完毕

 

docker exec -it zabbix-web-nginx-mysql /bin/bash

systemctl status docker

printf 't {n'

图片 11

flush privileges;

改为第二行,可以统一设置报警阈值为等于1,因为这个问题,困扰了我好久

yum install -y https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

2)选择你想设置的群组,如果群组不存在,可以在下面一栏新的群组中进行添加

 

cp get_mysql_stats_wrapper.sh /var/lib/zabbix/percona/scripts/

然后对zabbix-agent端进行配置

uname -r

CentOS Linux release 7.3.1611 (Core)

ServerActive=10.0.0.106 #<====zabbix-server端的IP地址,主动方式

firewall-cmd --reload

      -e MYSQL_ROOT_PASSWORD="ywwd.net"

2.3. zabbix-web 容器(nginx)

      -p 80:80

printf '}n'

      -d zabbix/zabbix-server-mysql:latest

      -v /etc/localtime:/etc/localtime:ro

#Script_name mysql_low_discovery.sh

yum install -y docker #centos6.x版本的命令是yum install -y docker-io

firewall-cmd --permanent --add-port=10050/tcp

2.1. mysql 容器

}

系统环境:

6、复制脚本文件并执行权限

博客园不允许放附件,所以我只能把附件放在百度云了

 

if [ $PORT == 3306 ];then

Include=/etc/zabbix/zabbix_agentd.d/*.conf

分配报警级别,点击表达式栏的添加,选择选择原型

yum install -y

for key in ${!port[@]}

 

      -e DB_SERVER_HOST="mysql-server"

docker run --name zabbix-server-mysql -t

cat $CACHEFILE | sed 's/ /n/g'| grep $ITEM | awk -F: '{print $2}' 或者

printf '{n'

编辑:数据库 本文来源:系统环境,安装docker的方式有多种

关键词:

  • 上一篇:没有了
  • 下一篇:没有了