1.NLog.config失效,日志ElasticSearch的Index不匹配

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
>
<extensions>
<add assembly="NLog.Targets.ElasticSearch"/>
</extensions> <!-- optional, add some variabeles
https://github.com/nlog/NLog/wiki/Configuration-file#variables
-->
<variable name="myvar" value="myvalue"/> <targets async="true">
<target xsi:type="File" name="File" fileName="${environment:variable=NLOGDIR}/WebSite.log"
archiveAboveSize="20000000" archiveNumbering="Rolling" encoding="UTF-8" enableFileDelete="true" maxArchiveFiles="5"
layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString} ${aspnet-request:cookie=String:serverVariable=String:queryString=String:item=String:form=String:header=String}" />
<target name="ElasticSearch" xsi:type="ElasticSearch" ConnectionStringName="ElasticSearchServerAddress" index="platform-website-${date:format=yyyy.MM.dd}" documentType="logevent" includeAllProperties="true"
layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString}">
<field name="MachineName" layout="${machinename}" />
<!--<field name="AllEventProperties" layout="${all-event-properties:format=[key]=[value]:separator=;:includeCallerInformation=true}" />-->
<field name="Time" layout="${longdate}" />
<field name="level" layout="${level:uppercase=true}" />
<field name="logger" layout=" ${logger}" />
<field name="message" layout=" ${message}" />
<field name="exception" layout=" ${exception:format=toString}" />
<field name="processid" layout=" ${processid}" />
<field name="threadname" layout=" ${threadname}" />
<field name="stacktrace" layout=" ${stacktrace}" />
<field name="Properties" layout="${machinename} ${longdate} ${level:uppercase=true} ${logger} ${message} ${exception}|${processid}|${stacktrace}|${threadname}" />
<field name="WWNamespace" layout="${environment:WWNamespace}" />
</target>
<target name="PerformanceLogES" xsi:type="ElasticSearch" ConnectionStringName="ElasticSearchServerAddress" index="perflog-platform-website-${date:format=yyyy.MM.dd}" documentType="logevent" includeAllProperties="true"
layout="[${date:format=yyyy-MM-dd HH\:mm\:ss}][${level}] ${logger} ${message} ${exception:format=toString}">
<field name="MachineName" layout="${machinename}" />
<!--<field name="AllEventProperties" layout="${all-event-properties:format=[key]=[value]:separator=;:includeCallerInformation=true}" />-->
<field name="Time" layout="${longdate}" />
<field name="level" layout="${level:uppercase=true}" />
<field name="logger" layout=" ${logger}" />
<field name="message" layout=" ${message}" />
<field name="exception" layout=" ${exception:format=toString}" />
<field name="processid" layout=" ${processid}" />
<field name="threadname" layout=" ${threadname}" />
<field name="stacktrace" layout=" ${stacktrace}" />
<field name="Properties" layout="${machinename} ${longdate} ${level:uppercase=true} ${logger} ${message} ${exception}|${processid}|${stacktrace}|${threadname}" />
<field name="WWNamespace" layout="${environment:WWNamespace}" />
</target>
</targets>
<rules>
<!-- add your logging rules here -->
<!--<logger name="*" minlevel="Trace" writeTo="EventLog" />-->
<logger name="PerformanceLog" minlevel="Trace" writeTo="PerformanceLogES" final="true" />
<logger name="*" minlevel="Trace" writeTo="File" />
<logger name="*" minlevel="Trace" writeTo="ElasticSearch" />
<!--
<logger name="*" minlevel="Trace" writeTo="ColoredConsole" />
<logger name="*" minlevel="Trace" writeTo="f" />
-->
</rules> </nlog>
  • 查看项目NLog.config是否正确 =》正确
  • Kubernets上,pods下NLog.config是否正确 =》错误
  • 查看本地Container历史 =》是自己上传的image
  • image制定的publish目录中NLog.config是否正确 =》错误
  • 为什么项目中的NLog.config是正确的,但是发布的NLog.config是错误的呢?
  • 找到错误的NLog.config哪儿来的 =》同解决方案中,其他某个project的NLog.config
  • 本项目中是否添加了对应项目的依赖引用? =》是的,找到原因(引用了项目,对应项目的NLog.config会在publish时候加入,从而导致了替换了本项目的NLog.config)
  • 还好那个项目的引用本项目不再使用,故删除那个项目的引用  ,重新打包到kubernetes =》 问题解决

2.kubernets的Ingress中配置的Host无法使用?

  • 远程,根据host名远程访问服务 =》 失败
  • 进入ingress有问题的服务的pods中,访问服务 =》成功,服务本身没有问题
  • 进入其他服务的pods中,通过服务名来访问ingree有问题的服务  =》成功,服务间调用没有问题,应该是ingress配置出现了问题
  • 仔细检查,是否Ingress的yaml文件有错误 =》 没有问题
  • 修改Ingress中host的命名,删掉pods =》还是无法通过host访问服务
  • 最终,找老大解决,给出原因:kubernets中有两个namespace,结果配置了同样的host名,导致kubernets无法解析应该向哪个服务发送请求,故无法访问。=》删除了另一个namespace中的ingress配置,则问题解决
  • 疑问:之前已经修改过host名,为什么当时删掉pods,自动起新的pods,还是无法用新的host名来访问服务? =》 知道的大师,请指点下!感谢!

3.configmap修改了之后,无法生效?

  • 重启pods,因为已有的pods中的环境变量不会改变;重启之后,环境变量才会用新配置的configmap

4.同一个namespace中服务之间相互引用,不需要配置外部的host,只需要根据服务名调用即可:http://[服务名]

  • 获取所有服务:kubectl get service -n dev

5.服务出现问题

  • 从kibana中查看日志=》没找到
  • 进入pods,查看本地日志
  • 如果是cronjob,则查看job历史,查找记录
    • kubectl get cronjobs -n dev
    • kubectl get jobs -n dev
    • kubectl log job/*** -n dev

6.服务没有日志

  • 进入服务对应的pods中,是否有NLog.config

    • kubectl exec -ti **** /bin/bash -n dev
  • 项目中是否有NLog.config
  • NLog.config的属性:生成=》始终复制
  • 查找项目Dockerfile中指定的发布地址,此目录下,是否有NLog.config

kubernets实战采坑1的更多相关文章

  1. rabbitmq在ios中实战采坑

    1. rabbitmq在ios中实战采坑 1.1. 问题 ios使用rabbitmq连接,没过多久就断开,并报错.且用android做相同的步骤并不会报错,错误如下 Received connecti ...

  2. 聊聊.netcore采坑那一些事之系统时间and文件路径

    聊聊.netcore采坑那一些事之系统时间and文件路径 Hi,小伙伴大家好,最近工作比较忙,很久没有和大家分享点东西了.这个周末都加了两天班.公司的新项目都是采用.netcore来开发,在开发过程中 ...

  3. Redis集群搭建采坑总结

    背景 先澄清一下,整个过程问题都不是我解决的,我在里面就是起了个打酱油的角色.因为实际上我负责这个项目,整个过程也比较清楚.之前也跟具体负责的同事说过,等过段时间带他做做项目复盘.结果一直忙,之前做的 ...

  4. Cloudera Manager 5.9 和 CDH 5.9 离线安装指南及个人采坑填坑记

    公司的CDH早就装好了,一直想自己装一个玩玩,最近组了台电脑,笔记本就淘汰下来了,加上之前的,一共3台,就在X宝上买了CPU和内存升级了下笔记本,就自己组了个集群. 话说,好想去捡垃圾,捡台8核16线 ...

  5. angular采坑记录

    在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根 ...

  6. 分布式改造剧集之Redis缓存采坑记

    Redis缓存采坑记 ​ 前言 ​ 这个其实应该属于分布式改造剧集中的一集(第一集见前面博客:http://www.cnblogs.com/Kidezyq/p/8748961.html),本来按照顺序 ...

  7. 采坑:python base64

    需求:  读取文本内容,对字符串进行base64加密 >>> str = 'aaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbb\nccc ...

  8. Hadoop环境搭建--Docker完全分布式部署Hadoop环境(菜鸟采坑吐血整理)

    系统:Centos 7,内核版本3.10 本文介绍如何从0利用Docker搭建Hadoop环境,制作的镜像文件已经分享,也可以直接使用制作好的镜像文件. 一.宿主机准备工作 0.宿主机(Centos7 ...

  9. Spring Cloud Config采坑记

    1. Spring Cloud Config采坑记 1.1. 问题 在本地运行没问题,本地客户端服务能连上本地服务端服务,可一旦上线,发现本地连不上线上的服务 服务端添加security登录加密,客户 ...

随机推荐

  1. 《nodejs开发指南》微博实例express4.x版

    之前一直执着于前端开发,最近几天,开始学起了nodejs.作为一名前端开发者,见到这样一门用javascript写的后台自然是很激动的.但是,后台毕竟不同于前端,在学习的过程中,还是会遇到不少问题. ...

  2. Vector集合——单列集合的“祖宗”类

    是实现可增长的对象数组:所以底层也是数组: 与collection集合不同的是,vector是同步的,意味着是单线程的,意味着效率低,速度慢, 所以在jdk1.2版本之后被ArrayList集合所取代 ...

  3. bzoj2656 [Zjoi2012]数列(sequence)

    题目链接 好久没写高精度了,调了很久QAQ 如果直接递归计算答案的话肯定会T 发现一个数不管是分成一奇一偶还是直接>>1,都会重复计算很多东西 我们只需要在递归的时候实时维护一个xx(an ...

  4. c# out ref parames的用法

    out ref parames的用法(将值传递转换成引用传递) Out 一般用于返回多个值,在方法体中会清空out变量,侧重于一个方法有多个返回值得时候使用 Ref有进有出,可以在方法体外必须赋初值, ...

  5. JSP Servlet javaben

    CLASSPATH=D:\Dev\jdk\lib\tools.jar;D:\Dev\jdk\lib\dt.jarJAVA_HOME=D:\Dev\jdkPath=%JAVA_HOME%\bin 一:T ...

  6. Tensorflow学习笔记03-使用神经网络做线性回归

    import tensorflow as tf import numpy as np #input就是输入数据,输入矩阵,in_size就是输入矩阵的列数(数据属性数量),out_size输出矩阵列数 ...

  7. php 数字变汉字

    //数字变汉字 function getTheWord($num) { $arr_n = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九', ...

  8. navicat mysql导出数据 批量插入的形式

    这里介绍的是mysql 相同服务器类型数据传输的高级设置 选中数据库后右键“ 转储SQL文件”默认导出的记录格式是一条条的,采用的是”完整插入语句”,格式如下 '); '); '); 这种格式保证了兼 ...

  9. VMware环境安装MacOS

    环境: win10专业版 VMware 14 Pro 开始吧 1. 停止服务 2. 解压并管理员权限运行unlocker,目的是使得 win10 环境下的 VMWare14Pro 支持 mac 系统的 ...

  10. P4577 [FJOI2018]领导集团问题

    P4577 [FJOI2018]领导集团问题 我们对整棵树进行dfs遍历,并用一个multiset维护对于每个点,它的子树可取的最大点集. 我们遍历到点$u$时: 不选点$u$,显然答案就为它的所有子 ...