1. 社区首页
  2. 常见问题(FAQ)
  3. Proxy&Agent
  4. Agent端详细解析

Agent端详细解析

行云管家Agent简介

1、行云管家Agent 基于 JAVA 实现,负责监控数据上报、自动化运维、主机体检等职责,属于可选组件。

2、行云管家Agent 是通过内网安装并工作的,也就是说它需要依托于 行云管家内网访问助手 或 行云管家Proxy,如果您要在云主机上安装 Agent,请先在网络中安装 内网访问助手 来启用内网访问,局域网主机天然已经具备了内网访问能力。

3、行云管家Agent 工作过程中的监控数据汇报、主机体检报告、自动化运维脚本和命令执行、文件分发,都是通过内网访问助手或者Proxy来与门户进行通信的。

 

                                                       行云管家 Agent架构示意图

行云管家 Agent目录结构

YunAgent 目录

[root@cloudbility ~]# ll /usr/local/YunAgent/

drwxrwx--- 2 root root 4096 Dec 28 19:24 bin                       常用命令 目录

drwxrwx--- 2 root root 4096 Jun  5 16:26 conf                     # Agent 配置文件 目录

drwxr-xr-x 3 root root 4096 Jun  5 16:10 data                     # Agent 数据 目录

drwxr-xr-x 2 root root 4096 Jun  5 16:10 downloads        # Agent 升级包/文件临时存放 目录

drwxrwx--- 3 root root 4096 Jan 25 19:40 healthChecker   安全体检 功能组件 目录

drwxrwx--- 4 root root 4096 Jun  5 16:10 jre                       # Java运行环境 目录

drwxr-x--- 2 root root 4096 Jun  5 16:10 lib              # YunAgent bin中程序使用的库文件 目录

drwxrwx--- 2 root root 4096 Jun  5 16:10 logs             # Agent 日志 目录

drwxrwx--- 6 root root 4096 Sep 15  2017 native           # Sigar API 依赖本地库文件 目录

-rwxr-x--- 1 root root 3214 May 30 17:57 README.txt      # Agent 说明文件

drwxrwx--- 6 root root 4096 May 31 17:15 salt             # Saltstack 功能组件 目录

drwxrwx--- 5 root root 4096 Jun  5 16:10 tools            工具包 目录

-rwxr-x--- 1 root root   12 May 30 17:57 version.txt      # Agent 版本号

drwxrwx--- 5 root root 4096 Sep 15  2017 wrapper          # Wrapper包装的应用 目录

bin 目录

[root@cloudbility YunAgent]# ll /usr/local/YunAgent/bin/

-rwxr-x--- 1 root root  87 Dec 28 19:24 restartGateway.sh       行云管家Proxy/内网访问助手重启脚本

-rwxr-x--- 1 root root  99 Nov 30  2017 startYunAgent.sh        行云管家Agent启动脚本

-rwxr-x--- 1 root root  97 Nov 30  2017 stopYunAgent.sh         行云管家Agent停止脚本

-rwxr-x--- 1 root root 592 Nov 30  2017 uninstallYunAgent.sh    行云管家Agent卸载脚本

conf 目录

[root@cloudbility YunAgent]# ll /usr/local/YunAgent/conf/

-rwxr-x--- 1 root root 2202 1月  25 19:40 agentd.properties                          # Agent 主程序配置文件

-rwxr-x--- 1 root root  464 10月 13 2017 agentd-user-default.properties     # Agent 用户默认配置文件

-rwxr-x--- 1 root root 1365 11月 30 2017 logback.xml

data 目录

[root@cloudbility YunAgent]# ll /usr/local/YunAgent/data/metric/.lastReportTimestamp

-rw-r--r-- 1 root root 13 Jun  5 17:02 data/metric/.lastReportTimestamp     监控汇报最后时间戳(实时更新)

如果出现故障,导致数据无法及时汇报,metric目录下可自动生成新文件对监控数据进行缓存。

logs 目录

[root@cloudbility YunAgent]# ll /usr/local/YunAgent/logs/

-rw-r--r-- 1 root root 17547 6月   5 17:53 cloudAgent.2018-06-05.0.log  # Agent 运行日志

-rw-r--r-- 1 root root 40189 6月   6 10:07 cloudAgent.log                            # Agent 日志

-rw-r--r-- 1 root root  6580 6月   6 09:00 wrapper.log                                # wrapper 日志

healthChecker 目录

[root@cloudbility YunAgent]# ll /usr/local/YunAgent/healthChecker

drwxrwx--- 3 root root 4096 6月   5 16:10 healthchecker

-rwxr-x--- 1 root root 1345 1月  25 19:40 healthChecker.py

-rwxr-x--- 1 root root   90 1月  25 19:40 README

[root@cloudbility sys]# pwd

/usr/local/YunAgent/healthChecker/healthchecker/sys

[root@cloudbility sys]# ll

-rwxr-x--- 1 root root     0 1月  25 19:40 __init__.py

-rwxr-x--- 1 root root  2259 4月  26 18:15 account.py       异常账户检查 脚本

-rwxr-x--- 1 root root  1803 1月  25 19:40 anonsvc.py       匿名访问服务检查 脚本

-rwxr-x--- 1 root root 12261 5月  30 17:57 login.py         异常登录检查 脚本

-rwxr-x--- 1 root root  4832 1月  25 19:40 package.py       关键软件包检查 脚本

-rwxr-x--- 1 root root  1676 4月  26 18:15 sshd.py          # SSH密码登录检查 脚本

-rwxr-x--- 1 root root  1519 5月  30 17:57 tmpdir.py        临时目录权限检查 脚本

-rwxr-x--- 1 root root  3124 4月  26 18:15 webservice.py    # Web Server权限检查 脚本

行云管家 Agent进程

查看行云管家Agent 进程命令(Agent共2个进程)

[root@cloudbility ~]# ps -ef|egrep -v "grep|CloudGateway"|grep "YunAgent"

# wrapper Agent 进程

root      96788      1  0 6月06 ?       00:05:20 /usr/local/YunAgent/wrapper/bin/./wrapper /usr/local/YunAgent/wrapper/bin/../conf/wrapper.conf wrapper.syslog.ident=YunAgent wrapper.pidfile=/usr/local/YunAgent/wrapper/bin/./YunAgent.pid wrapper.daemonize=TRUE wrapper.name=YunAgent wrapper.displayname=Cloudbility YunAgent Service wrapper.statusfile=/usr/local/YunAgent/wrapper/bin/./YunAgent.status wrapper.java.statusfile=/usr/local/YunAgent/wrapper/bin/./YunAgent.java.status wrapper.lockfile=/var/lock/subsys/YunAgent wrapper.script.version=3.5.30

# Java Agent 进程

root      96790  96788  0 6月06 ?       00:18:51 /usr/local/YunAgent/jre/bin/java -Dgateway.identity=agent -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../../logs/ -Djava.awt.headless=true -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -Xms32m -Xmx512m -Djava.library.path=../lib:../../lib -classpath ../lib/wrappertest.jar:../lib/wrapper.jar:../../config:../../lib/aliyun-java-sdk-core-3.2.10.jar:../../lib/aliyun-java-sdk-sts-2.1.6.jar:../../lib/aliyun-sdk-oss-2.6.0.jar:../../lib/annotations-3.0.1.jar:../../lib/aopalliance-1.0.jar:../../lib/aspectjweaver-1.8.9.jar:../../lib/bce-java-sdk-0.10.19.jar:../../lib/bcpkix-jdk15on-1.59.jar:../../lib/bcprov-jdk15on-1.59.jar:../../lib/cloud-common-utils-4.3.0-SNAPSHOT.jar:../../lib/cloud-provider-api-4.3.0-SNAPSHOT.jar:../../lib/cloudbility-common-4.3.0-SNAPSHOT.jar:../../lib/cloudbility-job-ygj-1.9.6-SNAPSHOT.jar:../../lib/cloudbility-oss-api-4.3.0-SNAPSHOT.jar:../../lib/commons-beanutils-1.8.0.jar:../../lib/commons-codec-1.9.jar:../../lib/commons-collections-3.2.1.jar:../../lib/commons-configuration-1.9.jar:../../lib/commons-csv-1.5.jar:../../lib/commons-httpclient-3.1.jar:../../lib/commons-io-2.4.jar:../../lib/commons-lang-2.6.jar:../../lib/commons-logging-1.2.jar:../../lib/cos-java-sdk-4.3.0-SNAPSHOT.jar:../../lib/ezmorph-1.0.6.jar:../../lib/gateway-common-4.3.0-SNAPSHOT.jar:../../lib/google-http-client-1.20.0.jar:../../lib/google-http-client-xml-1.20.0.jar:../../lib/gson-2.2.2.jar:../../lib/guava-19.0.jar:../../lib/hessian-patched-4.0.7.jar:../../lib/httpasyncclient-4.0.2.jar:../../lib/httpclient-4.5.2.jar:../../lib/httpcore-4.4.4.jar:../../lib/httpcore-nio-4.3.2.jar:../../lib/httpmime-4.5.2.jar:../../lib/jackson-annotations-2.1.1.jar:../../lib/jackson-core-2.1.1.jar:../../lib/jackson-databind-2.1.1.jar:../../lib/jcip-annotations-1.0.jar:../../lib/jcl-over-slf4j-1.6.5.jar:../../lib/jdom-1.1.jar:../../lib/jna-4.0.0.jar:../../lib/jna-4.1.0.jar:../../lib/jna-platform-4.0.0.jar:../../lib/joda-time-2.3.jar:../../lib/json-20140107.jar:../../lib/json-lib-2.4-jdk15.jar:../../lib/jsr305-3.0.1.jar:../../lib/log4j-over-slf4j-1.6.5.jar:../../lib/logback-classic-1.0.6.jar:../../lib/logback-core-patch-1.0.6.jar:../../lib/minio-java-4.3.0-SNAPSHOT.jar:../../lib/netty-all-4.1.16.Final.jar:../../lib/okhttp-3.7.0.jar:../../lib/okio-1.12.0.jar:../../lib/openapi-client-4.3.0-SNAPSHOT.jar:../../lib/pty4j-0.7.2.jar:../../lib/purejavacomm-0.0.17.jar:../../lib/service-tunnel-4.3.0-SNAPSHOT.jar:../../lib/sigar-1.6.5.132.jar:../../lib/slf4j-api-1.6.5.jar:../../lib/spring-aop-4.2.8.RELEASE.jar:../../lib/spring-aspects-4.2.8.RELEASE.jar:../../lib/spring-beans-4.2.8.RELEASE.jar:../../lib/spring-context-4.2.8.RELEASE.jar:../../lib/spring-context-support-4.2.8.RELEASE.jar:../../lib/spring-core-4.2.8.RELEASE.jar:../../lib/spring-expression-4.2.8.RELEASE.jar:../../lib/swagger-annotations-1.5.18.jar:../../lib/ufile-java-sdk-4.3.0-SNAPSHOT.jar:../../lib/xpp3-1.1.4c.jar:../../lib/yunAgent-4.3.0-SNAPSHOT.jar -Dwrapper.key=VDAgDu7JMoXyE6hW -Dwrapper.port=32001 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.disable_console_input=TRUE -Dwrapper.pid=96788 -Dwrapper.version=3.5.30 -Dwrapper.native_library=wrapper -Dwrapper.arch=x86 -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=10 -Dwrapper.jvmid=1 com.cloudbility.gateway.Application kH6UYzUyj1r0 10.226.68.22

Agent对资源占用情况

总体来说测试结果对资源的消耗非常小,几乎可以忽略不计。

CentOS 7.4 64位 1核1G
Linux 系统信息

查看Agent top 负载命令

[root@cloudbility ~]# top |grep `ps -ef|grep "YunAgent/jre/bin/java"|grep -v grep|awk '{print $2}'`

CentOS 6.9 64位 8核9G
Linux 系统信息

查看Agent top 负载命令

[root@master ~]# top |grep ps -ef|grep "YunAgent/jre/bin/java"|grep -v grep|awk '{print $2}'

(完)