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. python isinstance()方法的使用

    1. 描述Python中的 isinstance() 函数,是Python中的一个内置函数,用来判断一个函数是否是一个已知的类型,类似 type(). 2. 语法isinstance(object,c ...

  2. Hadoop常用命令总结

    一.前述 分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下. 二.具体 1.启动hadoop所有进程start-all.sh等价于start-dfs.sh + start-yar ...

  3. iview的table中点击Icon弹Poptip,render函数的写法

    render: (h, params) => { return h('div', [ h('div', [ h('Poptip', { props: { confirm: true, trans ...

  4. USB接口案例——多态和转型

    其中,为传递和使用的匿名对象,即创建了对象,但是没有引用类和对象名来接收: 电脑类中的操作usb的成员方法中,要向下转型,毛主席讲的具体问题具体分析,不同的设备有不同的操作:

  5. 那个写书教你交易期权的人James Cordier爆仓了

    那个写书教你交易期权的人James Cordier爆仓了 11月15日,James Cordier掌管的期权交易公司OptionSellers.com通过邮件告知投资者,其公司管理的账户遭遇了毁灭性的 ...

  6. There is no session with id XXX

    系统采用 shiro + redis + spring来做的权限控制系统.   登录时报 there is no session with XXX 跟踪断点发现,系统查询session时,查不到red ...

  7. web前端利用turf.js生成等值线、等值面

    样例如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...

  8. linux下mysql 8.0忘记密码后重置密码

    1://免密码登陆 找到mysql配置文件:my.cnf, 在[mysqld]模块添加:skip-grant-tables   保存退出: 2://使配置生效 重启mysql服务:  service ...

  9. 自学Java第五周的总结

    在这周里我在我要自学网上观看视频学习了有关java的基础知识,课程主要介绍JavaSE,这是整个Java体系的基础:课程将由浅入深,并结合案例进行讲解,在那里我将自己已学的知识进行了巩固,并由学习到了 ...

  10. n个整数中1出现的次数

    整数中1出现的次数(从1到n整数中1出现的次数) (两种方法:1.规律.2暴力求解) 题目描述 求出1 ~ 13的整数中1出现的次数,并算出100 ~ 1300的整数中1出现的次数?为此他特别数了一下 ...