搭建ELK日志系统(笔记、整理)

系统环境

系统环境为:CentOS7
java版本为:1.8
elasticsearch版本为:elasticsearch-6.5.4
kibana版本为:kibana-6.5.4
logstash版本为:logstash-6.5.4
内部资源原本打算组件ELK+kafuka架构因时间原因暂时放弃了,
组建ELK+kafuka的资源可能不够。。。
组建简单的ELK日志系统还是可以的
资源下载地址:
链接:https://pan.baidu.com/s/1H1FMLgt_4es5oKuWKX5Tmw
提取码:bxn8

初始化环境: (可略过)
1、更新yum源为阿里云
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

2、之后运行yum makecache生成缓存
yum clean all

yum makecache

3、安装wget 
yum install wget

4、安装vim
yum install vim 

5:查看防火状态
systemctl status firewalld
6:关闭防火墙命令
systemctl disable firewalld

7:停止firewall
systemctl stop firewalld.service

8:禁止firewall开机启动
systemctl disable firewalld.service 

9:安装java1.8环境
yum install java-1.8.0-openjdk* -y

10、修改网卡IP为静态IP
地址:vi /etc/sysconfig/network-scripts/ifcfg-ens33
需要修改的参数:
BOOTPROTO=static
ONBOOT=yes
需要添加的参数 IP地址、网关自定义
IPADDR=192.168.191.132
GATEWAY=192.168.191.2
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4

主题:搭建ELK之ES

(1) 创建运行ES的普通用户(因为生产环境都是普通用户)
[root@mes-1 ~]# useradd elsearch
[root@mes-1 ~]# echo 123456 | passwd --stdin elsearch
(2)安装配置ES
[root@mes-1 ~]# tar xzf elasticsearch-6.5.4.tar.gz -C /usr/local/
[root@mes-1 ~]# cd /usr/local/elasticsearch-6.5.4/config/
[root@mes-1 config]# ls
elasticsearch.yml log4j2.properties roles.yml users_roles
jvm.options role_mapping.yml users
[root@mes-1 config]# cp elasticsearch.yml elasticsearch.yml.bak
//此处添加配置文件信息↓
[root@mes-1 config]# vim elasticsearch.yml ----找个地方添加如下内容
# ES集群配置文件
## 集群名称 各节点统一
cluster.name: elk
### 节点名称
node.name: elk01

### 数据和日志存放路径 2
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs

### 锁定物理内存地址,防止es内存被交换出去 ,需要配置ulimit参数参考前一篇安装文档
#bootstrap.memory_lock: true
### 启动进行系统检测
bootstrap.system_call_filter: false
### 绑定IP地址
network.host: 0.0.0.0
http.port: 9200
### 节点间交互的tcp 端口
transport.tcp.port: 9300
### 备用master节点
discovery.zen.ping.unicast.hosts: ["192.168.150.170", "192.168.150.168","192.168.150.167"]
### 集群节点quorum数量,quorum =master候选节点/2+1 2节点配置2错误,1可能会脑裂,建议最少3节点
#discovery.zen.minimum_master_nodes: 1
## 是否支持跨域 和允许的域范围,默认为* 所有,可用正则匹配
http.cors.enabled: true
http.cors.allow-origin: "*"
### 禁用xpack安全机制
xpack.security.enabled: false
### 是否开启监控
xpack.monitoring.enabled: true
### 收集集群统计信息的超时。默认为10s
xpack.monitoring.collection.cluster.stats.timeout: 10s
### index 缓冲区大小 
indices.memory.index_buffer_size: 20%
### 传输流量最大值
indices.recovery.max_bytes_per_sec: 10000mb
### 节点fielddata 的最大内存,达到则交换旧数据,建议设置小一点
indices.fielddata.cache.size: 10%
### fielddata限制大小,一定要大于cache 大小
indices.breaker.fielddata.limit: 60%
### request数量使用内存限制,默认为JVM堆的40%
indices.breaker.request.limit: 60%
#所有breaker使用的内存值,默认值为 JVM 堆内存的70%,当内存达到最高值时会触发内存回收
indices.breaker.total.limit: 80%
### 动作自动创建索引
action.auto_create_index: true

(3) 设置JVM堆大小
[root@mes-1 config]# vim jvm.options -----Xms1g ----修改成 -Xms2g
-Xmx1g ----修改成 -Xms2g
或者:
推荐设置为4G,请注意下面的说明:
sed -i ‘s/-Xms1g/-Xms4g//usr/local/elasticsearch-6.5.4/config/jvm.options
sed -i ‘s/-Xmx1g/-Xmx4g//usr/local/elasticsearch-6.5.4/config/jvm.options
注意: 确保堆内存最小值(Xms)与最大值(Xmx)的大小相同,防止程序在运行时改变堆内存大小。 堆内存大
小不要超过系统内存的50%4)创建ES数据及日志存储目录
[root@mes-1 ~]# mkdir -p /data/elasticsearch/{data,logs}5)修改安装目录及存储目录权限
[root@mes-1 ~]# chown -R elsearch:elsearch /data/elasticsearch
[root@mes-1 ~]# chown -R elsearch:elsearch /usr/local/elasticsearch-6.5.4

ES优化

2.系统优化 下面两部都要做 不要忘了打乘号
(1)增加最大文件打开数
永久生效方法: echo “* - nofile 65536” >> /etc/security/limits.conf
(2)增加最大进程数
[root@mes-1 ~]# vim /etc/security/limits.conf —在文件最后面添加如下内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
(3)增加最大内存映射数
[root@mes-1 ~]# vim /etc/sysctl.conf —添加如下
vm.max_map_count=262144
vm.swappiness=0
[root@mes-1 ~]# sysctl -p

3启动ES
[root@mes-1 ~]# su - elsearch
Last login: Sat Aug 3 19:48:59 CST 2019 on pts/0
[root@mes-1 ~]$ cd /usr/local/elasticsearch-6.5.4/
[root@mes-1 elasticsearch-6.5.4]$ ./bin/elasticsearch #先启动看看报错不,需要多等一会
终止之后
[root@mes-1 elasticsearch-6.5.4]$ nohup ./bin/elasticsearch & #放后台启动
[1] 11462
[root@mes-1 elasticsearch-6.5.4]$ nohup: ignoring input and appending output to ‘nohup.out’
[root@mes-1 elasticsearch-6.5.4]$ tail -f nohup.out #看一下是否启动
或者:
su - elsearch -c “cd /usr/local/elasticsearch-6.5.4 && nohup bin/elasticsearch &

elasticsearch-Head安装方式

通过docker安装方法。自行百度吧。。找不到了 = =

安装Kibana

[root@es-3-head-kib ~]# tar zvxf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/
//进入配置文件目录并修改文件
[root@es-3-head-kib ~]# cd /usr/local/kibana-6.5.4-linux-x86_64/config/
[root@es-3-head-kib config]# vim kibana.yml
server.port: 5601
server.host: "IP地址"
elasticsearch.url: "http://IP地址:port"
kibana.index: ".kibana"
//启动kibana
[root@es-3-head-kib config]# cd ..
[root@es-3-head-kib kibana-6.5.4-linux-x86_64]# nohup ./bin/kibana &
[1] 12054
[root@es-3-head-kib kibana-6.5.4-linux-x86_64]# nohup: ignoring input and appending output to‘nohup.out’
访问测试http://IP地址:port

logstash 的配置及安装

(1).安装Logstash
[root@es-2-zk-log ~]# tar xvzf logstash-6.5.4.tar.gz -C /usr/local/

(2)配置文件
[root@test_server config]# cat syslog.conf 

input {    
    tcp {         
        port => 5044         
        codec => json_lines     
    } 
} 
output{  
    elasticsearch { 
    hosts => ["IP地址:9200"] 
    } 
    
}

代码中的日志收集器依赖包

 <!--日志收集器依赖start-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
                <version>2.1.7.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>4.7</version>
            </dependency>
  <!--日志收集器依赖End-->

配置文件名称:logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

    <springProperty scope="context" name="springAppName"
                    source="spring.application.name" />

    <!-- 日志在工程中的输出位置 -->
    <property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}" />

    <!-- 控制台的日志输出样式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />

    <!-- 控制台输出 -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!-- 日志输出编码 -->
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- 为logstash输出的JSON格式的Appender -->
    <appender name="logstash"
              class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>logstash端口:logstash配置文件中的端口号</destination>
        <!-- 日志输出编码 -->
        <encoder
                class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "severity": "%level",
                        "service": "${springAppName:-}",
                        "trace": "%X{X-B3-TraceId:-}",
                        "span": "%X{X-B3-SpanId:-}",
                        "exportable": "%X{X-Span-Export:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="logstash" />
    </root>
</configuration>

在这里插入图片描述
使用方法:
在这里插入图片描述
然后去kibana创建一个索引,然后再发现中就能看到输出的信息,有时间把结果图补上…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值