게으른 필수 : 빨리 분산 빌드 .NetCore 로그인 ELK 센터

블로그 콘텐츠의 개별 조각 점프 클릭 업데이트를 동기화! 소스를 표시하시기 바랍니다!

머리말

엘크 무엇입니까

그것은 예에 의한 차트 나 테이블 등 키바의 모든 측면에 의해 수집 된 정보를 표시 할 수 키바의 약어가 다른 서비스로부터 수집 한 로그를 처리 및 분석을 위해 사용될 수 Logstash, Elastaicsearch 분산 기록 솔루션이다 형태.

무엇을 수행 할 수 있습니다

(A) ELK 로그 조립 작업과 유지 보수 시스템은 다량의 용액이 사용될 수있다 :

  • 분산 쿼리 로그 데이터 및 중앙 집중식 관리
  • 시스템 모니터링, 모니터링 시스템은 다양한 구성 요소의 하드웨어 및 응용 프로그램을 포함
  • 문제 해결
  • 보안 정보 및 이벤트 관리
  • 보고
    는 다음과 같이 (B) 성분 ELK 큰 데이터 조작 및 관리 시스템은 주요 문제를 해결 :
  • 로그인, 문제 해결, 온라인 검사
  • 서버 모니터링, 애플리케이션 모니터링, 허위 경보, 버그 관리
  • 성능 분석, 사용자 행동 분석, 보안 취약점 분석, 시간 관리

    설치 전 준비

    내 시스템 환경은 CentOS는 리눅스 버전 1810년 6월 7일 (코어)
  1. GIT 설치 (GitHub의 프로젝트 GIT와 프로젝트 업데이트 빨리 당신은 또한 컬을 사용할 수 있습니다, 아래에 언급,하지만 다운로드를 쉽게 업데이트하는)
  2. 설치 도커 (프로젝트가 도커에 배포됩니다 아래)
  3. 설치 도커-작성 (기사 서비스는 DC를 구축하는 데 사용됩니다)
    음, 모든 장소에서만 강한 바람입니다.

    게으른 설치

    ELK 설치 온라인 튜토리얼은 기본적으로 다시 설치하고 다운로드 후 하나의 구성, 상대적으로 복잡하다. gayhub 주위에 산책은 게으른 방법 고정 표시기이 설치 및 배포 발견 프로젝트 주소를
    엘크라는 새 폴더를 만들 루트 디렉토리에 먼저 다음 GIT 명령을 통해 디렉토리에 프로젝트를 다운로드 할 수있는 디렉토리로 이동 같은 디렉토리 구조를 볼 수 있습니다
[root@localhost docker-elk]# ls
docker-compose.yml  docker-stack.yml  elasticsearch  extensions  filebeat  kibana  LICENSE  logstash  README.md

명령 서비스 구축을 실행하는 것, 그렇지 않으면 터미널 서비스, 프로세스가 조금 더 가득, 결국, 조금 긴 중지 종료, D를 추가해야합니다

[root@localhost docker-elk]# docker-compose up -d

바레인 그는 다음과 같은 기본 포트가 열립니다
Logstash TCP 입력 (채널 Logstash 데이터를 수신) : 5000
9200 : elasticsearch HTTP (ES의 HTTP 통로)
9300 : TCP 전송을 elasticsearch (TCP 채널 배아 줄기)
5601 : 키바 (UI가 관리 인터페이스를 )
아래에 도시 된 바와 같이 이러한 서비스에 대응하는 관계는, 애플리케이션이 ES에 logstash 로그 가압하고 저장되며, 키바 의해 마지막 표시 데이터는
서비스 관계
물론 높은 수집 다른 로그에 대응하는 많은 logstash 플러그 비트 거기 당신은 또한 아래의 아키텍처 다이어그램과 같은 미들웨어 전환 등의 레디 스 또는 카프카 동시 사용의 경우 수 있듯이
복잡한
우리는 설치 후 브라우저를 사용하는 다음과 같은 두 가지 주소가 완료 열고 다음은 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다 :
사용자 : 탄성
암호 : changeme를
이 당신에게 어떻게 기본 이상이고 그 다음 변경 암호

  1. http://127.0.0.1:9200/ 당신이 ES 버전 정보 등의 일부를 볼 수 있습니다 열
    ES 정보
  2. http://127.0.0.1:5601/ 키바 인터페이스가 열린 후 ES가 시작되지 않는 경우, 당신은 발견되지 않은 ES 데이터 소스를 완료하라는 메시지가 표시됩니다
    kibana 계면
    좋은, 설치 및 작동이되어 모든 것을 온라인 장황한에 비해 매우 간단하지 않다 설치, 사실 두 단계 말 : 다운로드 및 직류 파일을 실행

    Nlog 로그 수집을 사용 .NetCore

    먼저 Nuget와 프로젝트는 다음과 같은 두 개의 라이브러리 설치에
    NLog.Extensions.Logging 및 NLog.Web.AspNetCore는
    다음과 같이 NLog 프로필 Nlog.config을 작성, 읽
<?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"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="internal-nlog.txt">

  <extensions>
    <add  assembly="NLog.Web.AspNetCore"/>
  </extensions >
  <variable name="logDirectory" value="${basedir}\logs\"/>
  <!--define various log targets-->
  <targets>
    <!--write logs to file-->
    <!--address 填写Logstash数据的接收通道-->
    <target xsi:type="Network"
            name="elastic"
            keepConnection="false"
            address ="tcp://127.0.0.1:5000"
            layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
    />
    <target xsi:type="Null" name="blackhole" />
  </targets>
  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />
    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Trace" writeTo="elastic" />
  </rules>
</nlog>

Nlog는 다음 시작> 구성에 도입

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
       LogManager.LoadConfiguration("Nlog.config");//引入配置文件
       loggerFactory.AddNLog();//注入Nlog
}

자신의 프로젝트에서 다음은 간단한 테스트입니다

Logger log = NLog.LogManager.GetCurrentClassLogger();
log.Debug("测试日志内容");

키바는 분석을 기록하도록 구성

키바는 먼저 데이터를 표시 할 데이터가 있어야합니다, 그래서 우리는 위의 테스트 데이터가 있어야하고 인덱스 데이터를 참조하도록 구성
임의의 지점에 왼쪽 메뉴에서 다음 화면 로그인 한 후
인터페이스
에 클릭 인덱스 패턴을 만들고 , 다음과 같은 인터페이스를 여기 당신이 logstash 생성 2019xxx-NCI-입찰 로그, 당신은 logstash-2019xxxx를 호출 할 수 인덱스의 ES의 내용을 표시 할 구성이 구성에서 내 인덱스 나는 쉽게 구별하기 위해 이름이 바뀌 었습니다 프로젝트
구성 지수
이름으로 퍼지 매칭, 다음과 같은 정보 메시지를 표시하고 다음 단계를 클릭합니다 정기적 일치하는 성공과 같은 규칙에 일치
시합
여기 당신이 시간 필드를 선택할 수 있습니다를, 작성을 완료하려면 다음 단계 다음 @timestamp 선택, 먼저 왼쪽 클릭 메뉴 당신은 차트의 세부 볼 수있는
로그 정보
다른 기능 그것을 자신의 방법을

구성

ELK 볼륨 정보를 탑재하는 방법을 기반으로, 각 폴더 안에 다음 CONFIGS에 대응.
예를 들어 logstash 프로필에 대한 cd logstash/configlogstash.yml가 자신의 프로필입니다 다음.
ES는이를 사용하지 않으려면, 30 일 동안 유효 상용 버전을 사용하는 암호를 필요로하기 때문에 여기에 사용되는 버전에, 당신은 다음과 같이 ES 구성 디렉토리 구성이 변경 될 수 xpack 갈 수 :

xpack.license.self_generated.type: basic
xpack.security.enabled: false
xpack.monitoring.collection.enabled: false

나중에에 따라 사용할 수 카프카 진행중인 미들웨어 우리는 다음 특정 구성의 일부 내용뿐만 아니라 공유 등

마이크로 편지 아 날 우려! (재현 소스를 나타낸다)오, 내 관심사

추천

출처www.cnblogs.com/ShaoJianan/p/11455250.html