在现代化的软件开发流程中,日志显得非常的重要,不可能再零散的游离在各个项目中,等查看日志的时候再登录服务器去到特定的目录去查看,这显然很繁琐且效率低下,所有整合一套日志管理平台,也显得非常重要,这篇文章是日志管理平台搭建的第一篇,第二篇为告警及邮件通知

环境要求:CentOS      Release:  7.5.1804

ELK版本:6.3.1    为方便下载我打包在百度网盘,点击可直接下载

  安装

  1. Elasticsearch 解压后上传到服务器,直接用rpm命令安装即可,如运行如下命令安装elasticsearch

rpm -ivh ./elasticsearch-6.3..rpm

,等命令执行完成后,输入

systemctl status elasticsearch.service

,可查看当前运行的状态,如图所示,状态为active 说明我们的elasticsearch 服务已经启动。

在浏览器输入http://192.168.1.215:9200,查看返回结果,说明elasticsearch服务已经成功运行。

  2. Logstash

  安装logstash比较简单,在命令行运行rpm -ivh ./logstash-6.3.1.rpm,等命令执行完成后,输入systemctl status logstash.service 查看服务状态如下图所示,即表示logstash服务已经运行。

  

  3. Kibana

  最后,我们安装kibana,在解压目录下运行

rpm -ivh ./kibana-6.3.-x86_64.rpm

命令,等命令执行完后,输入

systemctl status kibana.service

,输出如下图所示,

  

  说明kibana服务已经启动,我们在浏览器输入http://192.168.1.215:5601来验证下,如果不出意外,应该显示如下所示

    

  1. 安装遇到的问题

    a)      如果遇到出现端口号被占中的情况,用netstat命令查看被哪个进程占中,杀掉即可,也可以在配置文件修改端口,ELK默认端口:Elasticsearch:9200,Kibana:5601

    b)      打开kibana,如果提示认证提示,则修改下kibana的配置文件,默认路径在/etc/kibana/kibana.yml,添加如下设置 xpack.security.enabled: false即可。

  日志接入

  1. Java

  a)      在添加logstash包

<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>

  b)      日志配置信息

  

<appender name="logstash"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>xxx.xxx.xxx.xxx:xxxx</destination>
<queueSize>1048576</queueSize>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"appname":"${Application_Name}"}</customFields>
</encoder>
<connectionStrategy>
<roundRobin>
<connectionTTL>5 minutes</connectionTTL>
</roundRobin>
</connectionStrategy>
</appender>

c)      Root配置

<springProfile name="log">
<root level="debug"><appender-ref ref="logstash" /></root>
</springProfile>

d)      在logstash的配置文件路径,默认为/etc/logstash/conf.d添加文件biz_es.conf,文件名称可以自己根据实际需求修改。

input {
tcp {
##host:port就是上面appender中的 destination,这里其实把logstash作为服务,开启9601端口接收logback发出的消息
host => "0.0.0.0"
#模式选择为server
mode => "server"
port => xxxx
##格式json
codec => "json"
type => "server"
} } output {
if[type]=="server"{
elasticsearch {
action => "index"
#ES地址
hosts => "192.168.1.215"
#指定索引名字,不适用默认的,用来区分各个项目
index => "%{[appname]}-%{+YYYY.MM.dd}"
}
}
}

  e)      需要注意点

i.          Logstash监听的端口号要与日志配置的端口号一致

ii.          防火墙要放开监听的端口,测试环境也可以把防火墙关闭

  2. Net

a)      添加 NLog.Targets.ElasticSearch 程序包

b)      编辑Nlog.config

  

<extensions>

          <add assembly="NLog.Targets.ElasticSearch"/>

        </extensions>

        <target xsi:type="ElasticSearch"

               name="ElasticLog"

               uri="http://192.168.1.215:9200"

               index="nlog-${date:format=yyyy.MM.dd}"

               documentType="logevent"

               includeAllProperties="true">

            <field name="private" layout="${assembly-version}" />

        </target>

      <rules>

      <logger name="Kibana" minlevel="Info" writeTo="ElasticLog"/>

</rules>

c)      添加日志

i.          帮助 Utils

  

public class LogHelper

    {

        private static Logger logger;

        private static string logRuleName = "Kibana";

        static LogHelper()

        {

            logger = LogManager.GetLogger(logRuleName);

            logger.LoggerReconfigured += logger_LoggerReconfigured;

        }

        static void logger_LoggerReconfigured(object sender, System.EventArgs e)

        {

            logger = LogManager.GetLogger(logRuleName);

        }

        public static void WirtError(string message)

        {

            logger.Log(LogLevel.Error, message);

        }

        public static void WirtDebug(string message)

        {

            logger.Log(LogLevel.Debug, message);

        }

}

d)      记录日志

  LogHelper.WirtError("elk log info");

到这里elk搭建及java&net使用就完成了,下一篇主要介绍跟钉钉告警及邮件通知

基础架构之日志管理平台搭建及java&net使用的更多相关文章

  1. 基础架构之日志管理平台及钉钉&邮件告警通知

    接上一篇,我们继续解释如何把ELK跟钉钉及发送邮件功能结合起来,让我们及时的了解重要日志并快速反馈. Sentinel 安装,项目介绍在https://github.com/sirensolution ...

  2. SaltStack 是一个服务器基础架构集中化管理平台

    SaltStack详细部署   一.基础介绍============================================================================== ...

  3. 小白都会超详细--ELK日志管理平台搭建教程

    目录 一.介绍 二.安装JDK 三.安装Elasticsearch 四.安装Logstash 五.安装Kibana 六.Kibana简单使用 系统环境:CentOS Linux release 7.4 ...

  4. Kubernetes Fluentd+Elasticsearch+Kibana统一日志管理平台搭建的填坑指南

    在初步完成Kubernetes集群架构的建立后,通过搭建一些监控组件,我们已经能够实现 图形化的监控每个node,pod的状态信息和资源情况 通过scale进行replicateSet的扩展和伸缩 通 ...

  5. 2019你该掌握的开源日志管理平台ELK STACK

    转载于https://www.vtlab.io/?p=217   在企业级开源日志管理平台ELK VS GRAYLOG一文中,我简单阐述了日志管理平台对技术人员的重要性,并把ELK Stack和Gra ...

  6. zookeeper环境及dubbo-admin管理平台搭建

    一. Zookeeper的安装使用 1.1 Zookeeper介绍 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hb ...

  7. FILEBEAT+ELK日志收集平台搭建流程

    filebeat+elk日志收集平台搭建流程 1.         整体简介: 模式:单机 平台:Linux - centos - 7 ELK:elasticsearch.logstash.kiban ...

  8. Go语言学习之13 日志管理平台开发

    主要内容: 1. ElasticSearch介绍与使用2. kibana介绍与使用 1. ElasticSearch安装 详见上节内容2. kibana安装 (1) 下载ES,下载地址:https:/ ...

  9. 快速搭建ELK集中化日志管理平台

    由于我们的项目是分布式,服务分布于多个服务器上,每次查看日志都要登录不同服务器查看,而且查看起来还比较麻烦,老大让搭一个集中化日志管理的东西,然后就在网上找到了这个东西ELK ELK就是elastic ...

随机推荐

  1. 判断H5页面环境是否在小程序的webview中

    用小程序提供的wx.miniProgram.getEnv可以获取环境参数,但是它有个问题就是无法在非微信环境下判断.所以在使用wx.miniProgram.getEnv前得先判断是否在微信环境中. 解 ...

  2. 【实战分享】安卓app测试的一些记录

    一.app代码未混淆1.使用7zip解压apk文件2.执行命令:dex2jar.bat apk解压后文件夹中的classes.dex文件3.上述命令执行后会在apk文件夹中生成java源码文件clas ...

  3. android 企业级高性能图表库 SciChart (付费)

    1.官网 https://www.scichart.com/ 2.特性 2.1 链接 https://www.scichart.com/android-chart-features/ https:// ...

  4. MySQL数据库 InnoDB引擎 事务及行锁总结

    一.事务 1.事务的四大特性 (1)原子性:事务开始后所有的操作要么一起成功,要么一起失败,整个事务是一个不可分割的整体. (2)一致性:是物开始前到结束后,数据库的完整性约束没有被破坏. (3)隔离 ...

  5. js中this那些事儿

    前几天写东西由于恶趣味作祟将所有的函数全部封装在json中,起初好好的,函数B也可以调用函数A的内容,不过在写一个点击事件时出现了意外, 代码如下: var $ ={ "A":fu ...

  6. APP开发的三种技术对比

    目前来说主流的App开发方式有三种:Native App .Web App.Hybird App.下面我们来分析一下这三种App开发方式的优劣对比: 一 :Native App 即 原生App开发 优 ...

  7. spring cloud知识点

    eureka注册中心(zookeeper,eureka) 也要集群,可以相互注册,网状结构.后面很多高可用的服务都是用这种方式.Eureka的客户端缓存技术 spring boot actuator ...

  8. Ubuntu下配置安装Hadoop 2.2

    ---恢复内容开始--- 这两天玩Hadoop,之前在我的Mac上配置了好长时间都没成功的Hadoop环境,今天想在win7 虚拟机下的Ubuntu12.04 64位机下配置, 然后再建一个组群看一看 ...

  9. OpenStack Neutron配置虚拟机访问外网

    配置完成后的网络拓扑如下: 当前环境: X86服务器1台 Ubuntu 16.04 DevStack搭建OpenStack 网络拓扑: 外部网络:192.168.98.0/24 内部网络:10.0.0 ...

  10. jquery 部分函数源码解析

    JSON.stringify源码(在看extend文档的时候看到) var object1 = { apple: 0, banana: {weight: 52, price: 100}, cherry ...