CentOS7中安装ELK

       最近在进行微服务的开发,发现传统的日志的收集处理方式如logback、log4J等已经不是很能满足需求,虽然现在才12个微服务,但是在看日志查找问题时已经很不方便了,于是搜寻更好的日志收集和集中式处理的方式,发现了ELK(Elasticsearch、Logstash、Kibana)。

     项目中还没有用到,未雨绸缪先学习一下。大致的思路是利用logback把日志传给Logstash,Logstash再将日志传给Elasticsearch,最后由Kibana来展示,全部搭在一个服务器上。为了方便,先将防火墙关掉了:systemctl stop firewalld

一  下载ELK

      1  安装ELK之前需要安装JDK8,在/usr/local下面创建了一个文件夹elk,用来放ELK的安装文件

      2  Logstash下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-5.3.1.tar.gz

      3  Elasticsearch下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.1.tar.gz

      4  Kibana下载地址: https://artifacts.elastic.co/downloads/kibana/kibana-5.3.1-linux-x86_64.tar.gz

可使用wget直接下载。

二  安装Logstash

      1 解压:tar - zxvf  logstash-5.3.1.tar.gz

      2 进入到 logstash-5.3.1/config 中,创建一个配置文件,并用vi打开:vi logback_to_es

        并将下面内容写入到配置文件中:其中4567是logstash监听的端口,localhost:9200是Elasticsearch的地址和端口号

input {
  tcp {
        port => 4567
      }
}

filter {
}


output {
  elasticsearch { hosts => "localhost:9200" }
  stdout {
         codec => rubydebug
         }
}

        3 用修改好的配置文件启动Logstash: ./bin/logstash -f config/logback_to_es.conf,如下所示,启动后不要关掉,等下可以用来验证logback的日志有没有传输过来。

     4 为了让logback收集到的日志能够传给Logstash,需要在项目中修改logback的配置文件logback.xml:其中x.x.x.x为安装Logstash所在的服务器的IP地址,4567为Logstash监听的端口号

<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <param name="Encoding" value="UTF-8"/>
        <remoteHost>x.x.x.x</remoteHost>
        <port>4567</port>
        <!-- encoder is required -->
        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>


<logger name="XXXX" level="INFO" additivity="false">
        <appender-ref ref="logstash" />
        <appender-ref ref="STDOUT"/>
</logger>

当然了,项目中要添加依赖:

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

    5  启动项目,做一些能产生日志的操作,观察Logstash:

观察到有日志传输过来了,说明项目中的logback已经和Logstash联通了。

三 安装Elasticsearch

注意,如果Elasticsearch的版本太低或者不符合要求,启动Kibana的时候会报错

     1  解压: tar -zxvf  elasticsearch-5.3.1.tar.gz

     2  修改配置文件:elasticsearch-5.3.1/config/elasticsearch.yml

主要修改network.host和http.port,其他的根据自己的需要进行配置,修改为0.0.0.0是为了让别的机器也可以访问Elasticearch,9200为Elasticearch监听的端口号

    3 想要启动es的话他需要一些最低配置的系统资源。如果出现这种错误max file descriptors [XXX] for elasticsearch process likely too low, increase to at least [65536],就是一些参数没有设置好。

   (1)设置内核参数

vi /etc/sysctl.conf
# 增加以下参数
vm.max_map_count=655360

如下图:

执行命令,查看上述配置是否生效:sysctl -p,

  (2)设置资源参数: vi /etc/security/limits.conf

* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072

如下图:

   (3)设置用户资源参数:vi /etc/security/limits.d/20-nproc.conf

# 设置elk用户参数
elk    soft    nproc     65536

4 不能用root用户来启动Elasticearch(好像是5以上的都不能),新增一个用户并赋予相应的权限来启动Elasticearch

  (1)新建用户

useradd elk         #创建用户elk
groupadd elk        #创建组elk
useradd elk -g elk  #将用户添加到组

  (2)赋予文件权限

chown -R elk:elk /usr/local/elk/elasticsearch-5.3.1/

  (3)切换到elk用户:su elk,启动Elasticsearch:在/usr/local/elk/elasticsearch-5.3.1/bin目录下执行./elasticsearch

5 验证是否启动成功,在网页上访问 服务IP:9200,如下图就启动成功了:

四 安装Kibana

1 解压:tar -zxvf  kibana-5.3.1-linux-x86_64.tar.gz

2 修改配置文件 :cd kibana-5.3.1-linux-x86_64/config,vi kibana.yml

主要修改:server.port,5601为Kibana监听的端口,server.host让别的机器可以访问Kibana,elasticsearch.url,就是Elasticsearch的IP地址和端口号

3 启动Kibana

  在/usr/local/elk/kibana-5.3.1-linux-x86_64/bin目录下./kibana

出现下面这个样子基本就成功了,可以再登录网页http://Kibana服务IP地址:5601查看:

4 使用Kibana

要想使用Kibana,首先要创建一个Index,如上图,点击Create。

五 logback+ELK联合使用

启动项目,使其有日志生成,观察Kibana有没有数据显示:

 

至此,一个简易的logback+ELK搭建结束

 

参考资料:https://blog.csdn.net/puhaiyang/article/details/69664891

                  https://www.cnblogs.com/yypbingo/p/6839555.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值