
# 安装Flume客户端
使用Flume搜集日志时，需要在日志主机上安装Flume客户端。用户可以创建一个新的ECS并安装Flume客户端。
#### 前提条件
- 已创建包含Flume组件的集群。
- 日志主机需要与MRS集群在相同的VPC和子网。
- 已获取日志主机的登录方式。
- 安装目录可以不存在，会自动创建。但如果存在，则必须为空。目录路径不能包含空格。
 
#### 安装Flume客户端
1. 获取软件包。 
   登录FusionInsight Manager，选择"集群 \> *待操作集群的名称* \> 服务 \> Flume"进入Flume服务界面，在右上角选择"更多 \> 下载客户端"，选择"选择客户端类型"为"完整客户端"，下载Flume服务客户端文件。
   客户端文件名称为"FusionInsight_Cluster_*\<集群ID\>*_Flume_Client.tar"，本章节以"FusionInsight_Cluster_1_Flume_Client.tar"为例进行描述。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001676747690.png "点击放大")
   
   
2. 上传软件包。 
   以**user**用户将软件包上传到将要安装Flume服务客户端的节点目录上，例如"/opt/client"。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   user用户为安装和运行Flume客户端的用户。
   
   
3. 解压软件包。 
   以**user**用户登录将要安装Flume服务客户端的节点。进入安装包所在目录，例如"/opt/client"，执行如下命令解压安装包到当前目录。
   **cd** **/opt/client**
   **tar -xvf FusionInsight** **_Cluster_1_Flume_Client.tar**
   
   
4. 校验软件包。 
   执行**sha256sum -c**命令校验解压得到的文件，返回"OK"表示校验通过。例如：
   **sha256sum -c FusionInsight** **_Cluster_1_Flume_ClientConfig.tar.sha256**
   ```
   FusionInsight_Cluster_1_Flume_ClientConfig.tar: OK
   ```
   
   
5. 解压文件。 
   **tar -xvf FusionInsight** **_Cluster_1_Flume_ClientConfig.tar**
   
   
6. 如果在集群外节点安装Flume客户端，需执行如下步骤配置安装环境。在集群内节点安装可不执行该步骤。 
   1. 执行以下命令，安装客户端运行环境到新的目录，例如"/opt/Flumeenv"。安装时自动生成目录。 **sh /opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/install.sh /opt/Flumeenv**
      查看安装输出信息，如有以下结果表示客户端运行环境安装成功：
      ```
      Components client installation is complete.
      ```
      
   
   2. 执行以下命令，配置环境变量。 **source /opt/Flumeenv/bigdata_env**
      
   
   
   
   
7. 客户端数量是否为1。 
   - 是，采用单独安装模式，执行[8]，安装结束。
   
   - 否，采用批量安装模式，执行[9]。
   
   
   
   
8. 在Flume客户端安装目录下执行以下命令，安装客户端到指定目录（绝对路径），例如安装到"/opt/FlumeClient"目录。客户端安装成功后单独安装结束。
   
   **cd /opt/client/FusionInsight** **_Cluster_1_Flume_ClientConfig/Flume/FlumeClient**
   **./install.sh -d */*** *opt/FlumeClient* **-f** *MonitorServer* *角色的业务IP或主机名* **-c** *用户业务配置文件* *properties.properties放置路径* **-s** *cpu阈值* **-l /var/log/Bigdata -e** *FlumeServer* *的业务IP或主机名* **-n** *Flume*
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - "-d"：Flume客户端安装路径。
   
   - "-f"（可选）：两个MonitorServer角色的业务IP或主机名，中间用逗号分隔，如果不设置则Flume客户端将不向MonitorServer发送告警信息，同时在FusionInsight Manager界面上看不到该客户端的相关信息。
   
   - "-c"（可选）：指定业务配置文件，该文件需要用户根据自己业务生成，具体操作可在Flume服务端中"配置工具"页面参考[Flume业务配置指南](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1057.html)章节生成，并上传到待安装客户端节点上的任一目录下。如果安装时未指定（即不配置该参数），可在安装后上传已经生成的业务配置文件properties.properties到"/opt/FlumeClient/fusioninsight-flume-1.9.0/conf"目录下。
   
   - "-s"（可选）：Cgroup阈值，阈值取值范围为1\~100\*N之间的整数，N表示机器cpu核数。默认阈值为"-1"，表示加入到Cgroup的进程不受cpu使用率限制。
   
   - "-l"（可选）：日志路径，默认值为"/var/log/Bigdata"（"user"用户需要对此目录有写权限）。首次安装客户端会生成名为flume-client的子目录，之后安装会依次生成名为"flume-client-*n*"的子目录，n代表一个序号，从1依次递增。在Flume客户端安装目录下的conf目录中，编辑ENV_VARS文件，搜索FLUME_LOG_DIR属性，可查看客户端日志路径。
   
   - "-e"（可选）：FlumeServer的业务IP地址或主机名，主要用于接收客户端上报的监控指标信息。
   
   - "-n"（可选）：Flume客户端的名称，可以通过在FusionInsight Manager上选择"集群 \> *待操作集群名称* \> 服务 \> Flume \> Flume管理"查看对应节点上客户端的名称。
   
   - 如果产生以下错误提示，可执行命令**export JAVA_HOME=** *JDK* *路径* 进行处理。可使用**echo $JAVA_HOME** 查找JDK路径。
     ```
     JAVA_HOME is null in current user,please install the JDK and set the JAVA_HOME
     ```
     
   
   - 集群混搭时，安装跨平台客户端时，请进入/opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/Flume/FusionInsight-Flume-1.9.0.tar.gz路径下进行Flume客户端安装。
    
   
   
9. 进入批量安装客户端目录。
   
   **cd /opt/client/FusionInsight** **_Cluster_1_Flume_ClientConfig/Flume/FlumeClient/batch_install**
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   集群混搭时，安装跨平台客户端时，请进入/opt/client/FusionInsight_Cluster_1_Flume_ClientConfig/Flume/FusionInsight-Flume-1.9.0.tar.gz路径下进行Flume客户端安装。
   
   
10. 配置host_info.cfg文件，配置文件格式如下： 
    host_ip="",user="",password="",install_path="",flume_config_file="",monitor_server_ip="",log_path="",flume_server_ip="",cgroup_threshold="",client_name=""
    ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
    - host_ip（必填项）：待安装Flume客户端的节点IP。
    
    - user（必填项）：远程登录到待安装Flume客户端节点的用户名，需确保该用户具有访问crontab的权限，可以使用命令**echo** *用户名* **\> /etc/cron.allow**来为用户添加访问crontab的权限。
    
    - password（必填项）：远程登录到待安装Flume客户端节点密码。配置文件中包含认证密码信息可能存在安全风险，建议当前场景执行完毕后删除相关配置文件或加强安全管理。
    
    - install_path（必填项）：Flume客户端安装路径。
    
    - flume_config_file（可选）：flume运行时的配置文件，建议用户在安装时指定该配置文件，如果用户不填写该项，保持该配置项值为""即可，不能删除该配置参数。
    
    - monitor_server_ip（可选）：集群内Flume的MonitorServer的业务ip，可在FusionInsight Manager上查看，该ip有两个，选择其中一个即可，如果不配置，客户端如果进程故障不会发送告警信息到集群内。
    
    - log_path（可选）：Flume运行时日志保存路径，如果不配置，默认日志打印在"/var/log/Bigdata/flume-client-*索引*"。索引取值：如果只有一个客户端在此路径下，那么该值为1，如果有多个，那么索引值在前加1。
    
    - flume_server_ip（可选）：Flume server的业务IP，客户端的指标信息通过该节点上报到集群内，可以在web界面上显示该客户端指标信息，如果不配置，客户端指标信息不会显示。
    
    - cgroup_threshold（可选）：Cgroup阈值，阈值取值范围为1\~100\*N之间的整数，N表示机器cpu核数。默认阈值为"-1"，表示加入到Cgroup的进程不受cpu使用率限制。
    
    - client_name（可选）：客户端名称，在客户端监控界面上可以显示该客户端名称，如果不配置，该客户端名字显示为空。
    
    - 如果需要添加多个节点，格式如下： host_ip="ip1",user="user1",password="\*\*\*\*\*\*",install_path="/tmp/flumeclient",flume_config_file="",monitor_server_ip="xxx.xxx.xxx.xxx",log_path="",flume_server_ip="xxx.xxx.xxx.xxx",cgroup_threshold="",client_name="ip1-client-1"
      host_ip="ip2",user="user1",password="\*\*\*\*\*\*",install_path="/tmp/flumeclient",flume_config_file="",monitor_server_ip="xxx.xxx.xxx.xxx",log_path="",flume_server_ip="xxx.xxx.xxx.xxx",cgroup_threshold="",client_name="ip2-client-1"
      host_ip="ip3",user="user1",password="\*\*\*\*\*\*",install_path="/tmp/flumeclient",flume_config_file="",monitor_server_ip="xxx.xxx.xxx.xxx",log_path="",flume_server_ip="xxx.xxx.xxx.xxx",cgroup_threshold="",client_name="ip3-client-1"
      
     
    
    
11. 执行如下命令批量安装Flume客户端，安装完成如图所示。 
    **./batch_install.sh -p /opt/client/FusionInsight_Cluster_1_Flume_Client.tar**
    ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000001724746893.png "点击放大")
    
    
12. 删除host_info.cfg文件中的密码信息。 
    批量安装完成后，请立即删除host_info.cfg文件中的密码信息，否则会存在密码泄露的风险。
    
    
 
#### Flume客户端Cgroup使用指导
该操作指导用户加入、退出Cgroup，查询Cgroup状态以及更改Cgroup cpu阈值。
- **加入C** **group**
  执行以下命令，加入Cgroup，假设Flume客户端安装路径为"/opt/FlumeClient"，Cgroup cpu阈值设置为50%：
  **cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin**
  **./flume-manage.sh cgroup join 50**
  ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  - 该命令不仅可以加入Cgroup，同时也可以更改Cgroup cpu阈值。
  
  - Cgroup cpu阈值取值范围为1\~100\*N之间的整数，N表示机器cpu核数。
    
- **查询Cgroup状态**
  执行以下命令，查询Cgroup状态，假设Flume客户端安装路径为"/opt/FlumeClient"：
  **cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin**
  **./flume-manage.sh cgroup status**
  
- **退出Cgroup**
  执行以下命令，退出Cgroup，假设Flume客户端安装路径为"/opt/FlumeClient"：
  **cd /opt/FlumeClient/fusioninsight-flume-1.9.0/bin**
  **./flume-manage.sh cgroup exit**
  ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  - 客户端安装完成后，会自动创建默认Cgroup。如果安装客户端时未配置"-s"参数，则默认值为"-1"，表示agent进程不受cpu使用率限制。
  
  - 加入、退出Cgroup时，agent进程不受影响。如果agent进程未启动，加入、退出Cgroup仍然可以成功执行，待下一次agent启动时生效。
  
  - 客户端卸载完成后，安装时期创建的Cgroup会自动删除。
    
 
