功能一: 微服务日志采集汇聚方案
第一步:maven引入,放在dependencys的第一位,一定是第一位
com.suncreate
log-lib
1.0.0-SNAPSHOT
第二步:启动的时候在命令行设置-Des.addre=ip1:port,ip2:port,ip3:port,-Dspring.application.name=自己的服务名
功能二: sparkstreaming日志采集汇聚方案(华为大数据平台已验证)
第一步:将spark.yarn.archive默认属性位置的归档文件下载下来spark-archive-2x.zip
第二步:用winrar打开改文件,不要解压,直接删除log4j相关jar包,将log-lib-1.0.0-SNAPSHOT.jar,logback-core-1.0.11.jar,logback-classic-1.0.11.jar,logback-core-1.0.11.jar直接拖进去
第三步:将spark-archive-2x.zip修改名称为spark-archive-2x-new-1.zip并重新上传到hdfs路径上,执行命令hdfs dfs -put spark-archive-2x-new-1.zip hdfs://hacluster/user/mgguan/
第四步:修改代码,在自己的conf后面,生成context之前,添加es.addre和spring.application.name两个属性
SparkConf conf = new SparkConf().setAppName("app");
conf.setExecutorEnv("es.addre", "ip1:port,ip2:port,ip3:port"); // es的地址
conf.setExecutorEnv("spring.application.name", "app"); // 应用名称,自定义
JavaStreamingContext jssc = new JavaStreamingContext(conf, batchDuration);
第五步:启动如下命令即可
$SPARK_HOME/bin/spark-submit --master yarn
--class com.suncreate.bigdata.spark.SparkStreamingDataClear
--conf "spark.yarn.archive=hdfs://hacluster/user/mgguan/spark-archive-2x-new-1.zip"
/opt/skynet/mgguan/skynetDataClear-1.0.jar
功能三:tomcat容器托管服务日志采集
第一步:maven引入,放在dependencys的第一位,一定是第一位
com.suncreate log-lib 1.0.0-SNAPSHOT
第二步:启动的时候在$TOMCAT_HOME/bin/catalina.sh中的第二行添加JAVA_OPTS="$JAVA_OPTS -Des.addre=ip1:port,ip2:port,ip3:port -Dspring.application.name=viid-collection"
接下来日志会自动汇聚到es的logback-*的索引中,根据日志每月建一个索引,可根据kabana进行汇聚展示
1.如果想通过日志做统计怎么办?
Map map = new HashMap ();
map.put("restApi", "java-user");
map.put("aggCount", 1);
logger.info(JSON.toJSONString(map));
此条json日志写到es的时候,会将map的key值扁平化成es的field,kibana可以根据字段做聚合统计,key值可随意设置,如果除aggCount以外的字段key及value一样,日志组件会根据aggCount聚合相加后输出到es,减少记录数量