签到成功

知道了

CNDBA社区CNDBA社区

TDSQL 集群 oc_agent 启动 模块 说明

2021-08-23 22:58 2778 0 原创 TDSQL
作者: dave

1 oc_agent 模块概述

oc_agent是TDSQL独立的一个模块,其由ewp_tdsql_proc和ewp_tdsql_oc两个模块组成。

  1. ewp_tdsql_oc进程主要负责数据传输通道,远程命令执行。
  2. ewp_tdsql_proc进程主要负责在拉起Porxy 、DB、Agent 等进程。

1.1 oc_agent 主要功能如下

  1. 自动拉起服务
    可以检查TDSQL实例的 proxy,DB,Agent模块进程存活和自动拉起。
  2. 实现ssh通道远程访问的功能
    创建实例时会用到oc_agent(oc_tool工具)可以远程到目标端机器进行实例的安装
  3. 清除相关日志
  4. crontab监控模块日志,用于监控的部份任务: 如报告分析
  5. 对子进程监控的屏蔽 和 取消屏蔽

1.2 oc_agent 配置信息

oc_agent 使用的默认账户是:tdsql, 密码是在group_vars/all 里面配置的,默认是:a+complex+password。 http://www.cndba.cn/dave/article/4689http://www.cndba.cn/dave/article/4689

oc_agent 的相关信息在配置文件中:/data/oc_agent/conf/oc_agent.xml

[dave@www.cndba.cn  conf]# pwd
/data/oc_agent/conf
[dave@www.cndba.cn  conf]# cat oc_agent.xml
<?xml version="1.0" encoding='UTF-8'?>
<Root>
  <OCAgent>
    <!-- 日志 -->
    <log log_file="../log/agent_main" log_module="agent_main" log_maxsize="50000000" log_num="2"/>
    <server host="10.137.128.16" port="20001" host_bak="10.136.136.233" port_bak="20001" protocol="UDP" />
    <oc_ssh enable_ssh="true" local_ip="0.0.0.0" listen_port="8966" norootsudocmd="/data/oc_agent/bin/parameval" rpoll_time="5000" >
      <user_id user="tdsql" passwd="K2JatUv5llBbMrske/k2YbqC"/>
    </oc_ssh>
    <!-- 心跳上报间隔和版本号 -->
    <monitor t_distance="300" version="1.0.94" />
  </OCAgent>
……

1.3 oc_agent 日志

如果oc_agent 异常,可以查看相关日志,路径如下:

[dave@www.cndba.cn  log]# cd /data/oc_agent/log/
[dave@www.cndba.cn  log]# ll
total 8088
-rwxrwxrwx 1 root root    1408 Aug 23 20:30 agent_main.log
-rwxrwxrwx 1 root root       0 Aug 19 11:37 crontab_monitor.log
-rwxrwxrwx 1 root root     672 Aug 23 20:30 log_core.log
-rwxrwxrwx 1 root root       0 Aug 19 11:37 log_monitor.log
-rwxrwxrwx 1 root root   38756 Aug 19 13:14 oc_sshd.log.2021-08-19.0
-rwxrwxrwx 1 root root    2935 Aug 20 19:32 oc_sshd.log.2021-08-20.0
-rw-r--r-- 1 root root    2131 Aug 23 20:30 oc_sshd.log.2021-08-23.0
-rwxrwxrwx 1 root root       0 Aug 23 20:30 oc_sshd.nohup
-rwxrwxrwx 1 root root 8215009 Aug 23 22:05 process_monitor.log
[dave@www.cndba.cn  log]#

因为crontab里有对oc_agent 的定时监控,所以正常不需要手工对oc_agent 进行重启。 如果真要操作,命令如下:

[dave@www.cndba.cn  bin]# cd /data/oc_agent/bin/
[dave@www.cndba.cn  bin]# pwd
/data/oc_agent/bin
[dave@www.cndba.cn  bin]# ll
total 113988
-rwxr-xr-x 1 tdsql users 23742210 Jan 19  2021 checksummgn
-rwxr-xr-x 1 tdsql users 23498801 Jan 19  2021 dbcompare
-rwxr-xr-x 1 tdsql users 14946481 May 13  2020 ewp_tdsql_oc
-rwxr-xr-x 1 tdsql users 30106132 May 13  2020 ewp_tdsql_proc
-rwxr-xr-x 1 root  root      8650 Aug 23 20:30 ewp_tdsql_proc.err
-rwxr-xr-x 1 root  root      1428 Aug 23 20:30 ewp_tdsql_proc.log
-rwxr-xr-x 1 tdsql users     1862 May 13  2020 monitoriotop.sh
-rwxr-xr-x 1 tdsql users  9277754 May 13  2020 oc_encrypt
-rwxr-xr-x 1 tdsql users    92602 May 13  2020 oc_passwd
-rwxr-xr-x 1 tdsql users 11042666 May 13  2020 oc_tool
-rwxr-xr-x 1 tdsql users       34 May 13  2020 restart.sh
-rwxr-xr-x 1 tdsql users      254 May 13  2020 runcmd.sh
-rwxr-xr-x 1 tdsql users  1959318 May 13  2020 safeshell
-rwxr-xr-x 1 tdsql users  1980773 May 13  2020 srmnew
-rwxr-xr-x 1 tdsql users      873 May 13  2020 start_agent.sh
-rwxr-xr-x 1 tdsql users     2327 May 13  2020 stop_agent.sh
-rwxr-xr-x 1 tdsql users     9999 May 13  2020 struncate
-rwxr-xr-x 1 tdsql users       81 May 13  2020 szrz
[dave@www.cndba.cn  bin]#

2 ewp_tdsql_oc模块作用

ewp_tdsql_oc进程主要负责数据传输通道,远程命令执行,比如拉取数据走的是数据传输通道,比如查看远程服务器的网卡信息。

http://www.cndba.cn/dave/article/4689

其需要配合oc_tool来使用,该工具用来测试TDSQL部署的节点之间是否交互正常。 http://www.cndba.cn/dave/article/4689http://www.cndba.cn/dave/article/4689

执行如下命令查看说明:

http://www.cndba.cn/dave/article/4689
http://www.cndba.cn/dave/article/4689

[dave@www.cndba.cn  bin]# pwd
/data/oc_agent/bin
[dave@www.cndba.cn  bin]# ll
total 113988
-rwxr-xr-x 1 tdsql users 23742210 Jan 19  2021 checksummgn
-rwxr-xr-x 1 tdsql users 23498801 Jan 19  2021 dbcompare
-rwxr-xr-x 1 tdsql users 14946481 May 13  2020 ewp_tdsql_oc
-rwxr-xr-x 1 tdsql users 30106132 May 13  2020 ewp_tdsql_proc
-rwxr-xr-x 1 root  root      8650 Aug 23 20:30 ewp_tdsql_proc.err
-rwxr-xr-x 1 root  root      1428 Aug 23 20:30 ewp_tdsql_proc.log
-rwxr-xr-x 1 tdsql users     1862 May 13  2020 monitoriotop.sh
-rwxr-xr-x 1 tdsql users  9277754 May 13  2020 oc_encrypt
-rwxr-xr-x 1 tdsql users    92602 May 13  2020 oc_passwd
-rwxr-xr-x 1 tdsql users 11042666 May 13  2020 oc_tool
-rwxr-xr-x 1 tdsql users       34 May 13  2020 restart.sh
-rwxr-xr-x 1 tdsql users      254 May 13  2020 runcmd.sh
-rwxr-xr-x 1 tdsql users  1959318 May 13  2020 safeshell
-rwxr-xr-x 1 tdsql users  1980773 May 13  2020 srmnew
-rwxr-xr-x 1 tdsql users      873 May 13  2020 start_agent.sh
-rwxr-xr-x 1 tdsql users     2327 May 13  2020 stop_agent.sh
-rwxr-xr-x 1 tdsql users     9999 May 13  2020 struncate
-rwxr-xr-x 1 tdsql users       81 May 13  2020 szrz
[dave@www.cndba.cn  bin]#


[dave@www.cndba.cn  bin]# ./oc_tool
usage: oc_tool [-fdkcvn] [-o option] [-P port] [-l ratelimit] [-t timeout] [-p password]
               [user@]hostname [command]
[dave@www.cndba.cn  bin]#

使用示例:
[dave@www.cndba.cn  bin]# ./oc_tool -P8966 -p'a+complex+password' tdsql@tdsql2 'ifconfig'
Connect server failed: Connect Socket Handle[tdsql2:8966][101:Network is unreachable]
[dave@www.cndba.cn  bin]# ./oc_tool -P8966 -p'a+complex+password' tdsql@10.206.0.8 'ifconfig'
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.206.0.8  netmask 255.255.240.0  broadcast 10.206.15.255
        inet6 fe80::5054:ff:fe6b:9170  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:6b:91:70  txqueuelen 1000  (Ethernet)
        RX packets 2136637  bytes 623575354 (594.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2316193  bytes 614688662 (586.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1198811  bytes 155792947 (148.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1198811  bytes 155792947 (148.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[dave@www.cndba.cn  bin]#

-P 8966 为固定的ocagent的端口
-p 'a+complex+password' 为oc_agent的密码

3 ewp_tdsql_proc 模块作用

该模块主要负责OC_AGENT的拉起流程。

[dave@www.cndba.cn  bin]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# BEGIN tdsql_begining
*/5 * * * * root (cd /data/oc_agent/scripts; ./agent_monitor.sh >crontab.log 2>&1)
30 4 * * * root (find /data/coredump -type f -mtime +2 |xargs rm -f &>/dev/null)
0 0 * * * root (cd /data/monitorcmd; ./monitoriotop.sh >/dev/null 2>&1)
# END tdsql_begining
……

[dave@www.cndba.cn  bin]# ps -ef|grep ewp_tdsql|grep -v grep
root      2853     1  0 20:30 ?        00:00:00 ./ewp_tdsql_proc /data/oc_agent/bin
root      2861  2853  0 20:30 ?        00:00:14 ./ewp_tdsql_proc /data/oc_agent/bin
root      2887     1  0 20:30 ?        00:00:37 ./ewp_tdsql_oc /data/oc_agent/bin --config=../conf/oc_agent.xml
[dave@www.cndba.cn  bin]#

TDSQL 集群在系统启动后由crontab 拉起 oc_agent(ewp_tdsql_proc),然后再由oc_agent 拉起proxy,mysqld,mysqlreport等进程。

具体流程如下图:

实例节点重启顺序:

oc_agent —> Porxy —> DB — > Agent http://www.cndba.cn/dave/article/4689

http://www.cndba.cn/dave/article/4689

OC_AGENT自动拉起DB的流程:

oc_agent —> oc_pull_mysqld.sh —> startmysql.sh

http://www.cndba.cn/dave/article/4689

启网关:

#1.check_deploy_mark.sh  15001 先检查是否对子系统有 屏蔽监控
#2.process_monitor.sh  生成一个子进程开始检查 ;   启动startdcagent_tokafka 进程
#3.process_monitor.sh  生成一个子进程开始检查 ;   启动网关gateway进程
#4.process_monitor.sh  生成一个子进程开始检查 ;   启动网关路由进程start_router 
#5.重复1,2 , 3,4 启动其它网关的这三个进程  15002, 15003

启DB&Agent:

#6.check_deploy_mark.sh  4001 先检查是否对子系统有 屏蔽监控
#7.process_monitor.sh  生成一个子进程开始检查 ;  启动binlog 备份进程  startbinlogproduct_cgroup
#8.process_monitor.sh  生成一个子进程开始检查 ;  启动mysqld进程  用oc_pull_mysqld.sh 启动
#9.process_monitor.sh  生成一个子进程开始检查 ;  启动angent 进程 用startreport_cgroup启动
#10.重复 6,7,8,9 对其它实例进行检查重启

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7970487次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ