1 oc_agent 模块概述
oc_agent是TDSQL独立的一个模块,其由ewp_tdsql_proc和ewp_tdsql_oc两个模块组成。
- ewp_tdsql_oc进程主要负责数据传输通道,远程命令执行。
- ewp_tdsql_proc进程主要负责在拉起Porxy 、DB、Agent 等进程。
1.1 oc_agent 主要功能如下
- 自动拉起服务
可以检查TDSQL实例的 proxy,DB,Agent模块进程存活和自动拉起。 - 实现ssh通道远程访问的功能
创建实例时会用到oc_agent(oc_tool工具)可以远程到目标端机器进行实例的安装 - 清除相关日志
- crontab监控模块日志,用于监控的部份任务: 如报告分析
- 对子进程监控的屏蔽 和 取消屏蔽
1.2 oc_agent 配置信息
oc_agent 使用的默认账户是:tdsql, 密码是在group_vars/all 里面配置的,默认是:a+complex+password。
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进程主要负责数据传输通道,远程命令执行,比如拉取数据走的是数据传输通道,比如查看远程服务器的网卡信息。
其需要配合oc_tool来使用,该工具用来测试TDSQL部署的节点之间是否交互正常。
执行如下命令查看说明:
[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
OC_AGENT自动拉起DB的流程:
oc_agent —> oc_pull_mysqld.sh —> startmysql.sh
启网关:
#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 对其它实例进行检查重启
版权声明:本文为博主原创文章,未经博主允许不得转载。