EDAS staragent 排查

浅谈

staragent 是什么?部署在 ECS 上的一个组件,两个主要功能:

  • 数据功能,上报 ECS 上的系统日志
  • 命令功能,接收控制台的下发指令,上报心跳状态,记录执行任务过程等功能。

主要目录结构

主要的目录都统计出来,不重要的目录这里就不过介绍。


├── bin
│   ├── agent.sh
│   ├── agent_start_cmd.txt
│   ├── dnsresolver
│   ├── fakeStaragentctl7u
│   ├── pluginctl
│   ├── pluginplatform
│   ├── post_install.sh
│   ├── sa_healthCheck.sh
│   ├── sa_install_lock.sh
│   ├── sa_install.sh
│   ├── sa_recovery.sh
│   ├── staragent2
│   ├── staragentctl
│   ├── staragentctl7u
│   ├── staragentd
│   └── unzip
 |
├── conf
│   ├── channels.conf
│   └── staragent.conf
 |
├── log
│   ├── dbscanner.log
│   ├── dbscanner.log.20181118195157
│   ├── staragent_channels.log
│   ├── staragent_channels.log.20181116175937
│   ├── staragent_core.log
│   ├── staragent_core.log.20181111214336
│   ├── staragent_core.log.20181117070750
│   ├── staragent_ctl.log
│   ├── staragent_master.log
│   └── staragent_tasks.log
└── 

主要配置文件如下

1)/home/staragent/conf/staragent.conf,配置 staragent 注册的服务地址

{
"Common":
    {
           "LogLevel"      : "debug"     //error,warn,info,debug
    },
"Sub_Core": {
    "ConfServer":{
        "ConfServer" : [
            "http://staragent-edas.aliyuncs.com"  //服务端域名
        ]
     }
}
}

2)/home/staragent/conf/channels.conf 服务端的备份 IP

100.100.27.142  80
100.100.36.55   80

排查命令

  • ps aux | grep -E "staragentd|staragent-core|staragent-ppf" | grep -v grep
    检查 staragent 进程是否存活
  • sudo /home/staragent/bin/agent.sh {start|stop|restart}
    启动、停止、重启Agent
  • /home/staragent/bin/staragent2 -e GetStatus
/home/staragent/bin/staragent2 -e GetStatus
------agent running ok------
  StartTime           : 2016-08-30 19:03:34 CST
  RegisterTime        : 2016-08-30 19:03:44 CST
  ServiceTag          : 94a2a7e7-5baa-4623-95f4-ef2f22741bff
  ServerConnected     : 1
  ServerAddr          : 10.125.250.64:8000
  LocalAddr           : 10.101.94.148
  Max Core count      : 0
  Total CPU Count     : 2
  Total CPU Rate      : 1.01%
  Total MEM Rate      : 12.85%
  Process CPU Rate    : 0.00%
  Load Avg (1,5,15)   : 6,4,5
  Virtual Memory      : 397MB
  Physical Memory     : 11MB
检查
 1) ServerConnected 是否为 1
  如果ServerConnected为1,表示已连接,agent已工作正常。
  • 重启 logagent 插件
    /home/staragent/plugins/logAgent/logagentctl.sh restart
  • wget -q -O /root/install.sh http://edas-sz.oss-cn-shenzhen-internal.aliyuncs.com/install.sh && sh /root/install.sh -full -force
    强制重新安装 agent 脚本,其中 sz 代表深圳,可以替换成你自己的 region 比如 hz 就是杭州。shenzhen 替换成你的 region ,其他的不用变。

使用遇到的问题

案例:

ECS 进行集群转移,报错 "issue config fail on ecu"

EDAS staragent 排查

EDAS staragent 排查

排查:

1)先看下要迁移的源 ECS 是否还在应用中,确认是已经摘除掉应用的才能进行迁移;

2)源机器的 VPC 和目标机器的 VPC 必须是同一个;

3)客户端上执行下 /home/staragent/bin/staragent2 -e GetStatus 看下 ServerConnected 的状态是否为 1 ,如果不为 1 说明 agent 的状态异常,可以重启下 agent /home/staragent/bin/agent.sh restart

4)执行 ps aux | grep -E "staragentd|staragent-core|staragent-ppf" | grep -v grep
如果进程一直起不来,说明 agent 本身就有问题。要手动执行脚本重装 agent ;

5)第 3 步没有效果的话,再继续看下 /home/staragent/conf/ 目录下的配置文件 channels.conf staragent.conf;

  • 5.1)先看下 staragent.conf 配置的服务端注册地址是否正确,有的客户把这里固定 IP 协议,结果 IP 更换后这里没有更换导致网络不通。
"ConfServer" : [
          "http://staragent-edas.aliyuncs.com"
      ]
  • 5.2)看下 channels.conf 文件中配置的地址的 IP 能否 ping 通,telnet 80 是否能通
[root@hanli-edas-01 plugins]# cat /home/staragent/conf/channels.conf 
100.100.27.142    80
100.100.36.55    80
[root@hanli-edas-01 plugins]# ping -c 4 100.100.27.142
PING 100.100.27.142 (100.100.27.142) 56(84) bytes of data.
64 bytes from 100.100.27.142: icmp_seq=1 ttl=46 time=27.4 ms
64 bytes from 100.100.27.142: icmp_seq=2 ttl=46 time=26.9 ms
64 bytes from 100.100.27.142: icmp_seq=3 ttl=46 time=26.9 ms
64 bytes from 100.100.27.142: icmp_seq=4 ttl=46 time=26.9 ms
--- 100.100.27.142 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 26.924/27.082/27.477/0.229 ms
[root@hanli-edas-01 plugins]# telnet 100.100.27.142 80
Trying 100.100.27.142...
Connected to 100.100.27.142.
Escape character is '^]'.
^]
Connection closed by foreign host.
[root@hanli-edas-01 plugins]#

5)第 4 步还是解决不了的话就需要查看 agent 的异常日志的,进去我们上面说的日志目录,找到 staragent_core.log ,这个是 agent 的启动、上报健康状态、注册的核心日志。这里就用到之前说的 grep error 关键

EDAS staragent 排查

排查到这里基本上我们就知道问题了,接下来我们再客户端上部署下 tcpdump 抓包,然后看下超时的原因:

5.1)nohup tcpdump -i <网卡出口> -s0 host staragent-edas.aliyuncs.com &

EDAS staragent 排查

通过抓包发现客户端发去的 request 后服务端没有响应,这时大致可以判断了是 staragent 在服务端注册失败,这种情况我们重新执行下安装脚本即可解决这个问题。

上一篇:【MySQL技巧】定制你的MySQL命令行


下一篇:动画演示9个超有趣的Linux命令