elk日志分析系统简单架构部署

es服务器部署

1.创建运行es的普通用户

 useradd elsearch
 passwd  elsearch

2.安装配置es

 tar xzf elasticsearch-6.5.4.tar.gz -C /usr/local/
 
 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 ----找个地方添加如下内容

cluster.name: elk
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
#discovery.zen.ping.unicast.hosts: ["192.168.246.234", "192.168.246.231","192.168.246.235"]
#discovery.zen.minimum_master_nodes: 2
#discovery.zen.ping_timeout: 150s
#discovery.zen.fd.ping_retries: 10
#client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"

配置项含义:

cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.master 指示某个节点是否符合成为主节点的条件。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
path.data 数据存储目录。
path.logs 日志存储目录。
bootstrap.memory_lock 内存锁定,是否禁用交换。
bootstrap.system_call_filter 系统调用过滤器。
network.host 绑定节点IP。
http.port 端口。
discovery.zen.ping.unicast.hosts 提供其他 Elasticsearch 服务节点的单点广播发现功能。
discovery.zen.minimum_master_nodes 集群中可工作的具有Master节点资格的最小数量,官方的推荐值是
(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping_timeout 节点在发现过程中的等待时间。
discovery.zen.fd.ping_retries 节点发现重试次数。
http.cors.enabled 是否允许跨源 REST 请求,表示支持所有域名,用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。

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 
[root@mes-1 ~]# mkdir -p /data/elasticsearch/logs 

5.修改安装目录及存储目录权限

[root@mes-1 ~]# chown -R elsearch:elsearch /data/elasticsearch
[root@mes-1 ~]# chown -R elsearch:elsearch /usr/local/elasticsearch-6.5.4

系统优化
(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

更多的参数调整可以直接用这个
解释:
soft xxx : 代表警告的设定,可以超过这个设定值,但是超过后会有警告。
hard xxx : 代表严格的设定,不允许超过这个设定的值。
nofile : 是每个进程可以打开的文件数的限制
nproc : 是操作系统级别对每个用户创建的进程数的限制

增加最大内存映射数

[root@mes-1 ~]# vim /etc/sysctl.conf ---添加如下
vm.max_map_count=262144 #elasticsearch用户拥有的内存权限太小,至少需要262144;
vm.swappiness=0 #表示最大限度使用物理内存,在内存不足的情况下,然后才是 swap空间
[root@mes-1 ~]# sysctl -p
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
或者:
[root@mes-1 ~]# sysctl -w vm.max_map_count=262144
增大用户使用内存的空间(临时)

4.启动es
注意: 启动的时候需要切换到创建的elsearch用户去启动

[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
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 &"

之后就可以去访问一下es服务器的9200端口看是否成功

注意:云服务器需要配置安全组并关联实例

kibana部署

1.安装配置kibana

tar zvxf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local/kibana-6.5.4-linux-x86_64/config/

vim kibana.yml #前提条件是在执行了上一条命令之后,即在/usr/local/kibana-6.5.4-linux-x86_64/config/目录下
在kibana.yml文件里添加:
 
server.port: 5601  # 服务端口,默认5601
server.host: "localhost"  #kibana主机IP地址,默认localhost 
elasticsearch.url: "http://192.168.246.234:9200" #ES服务器节点的URL加端口 默认http://localhost:9200
kibana.index: ".kibana" # kibana在Elasticsearch中使用索引来存储保存的searches, visualizations和dashboards,默认.kibana

其他配置项可参考: https://www.elastic.co/guide/en/kibana/6.5/settings.html

2.启动kibana

cd /usr/local/kibana-6.5.4-linux-x86_64/  # cd 到kibana目录下面

nohup ./bin/kibana & # 启动并放到后台运行

#可以去查看nohup.out 
tail -f nohup.out 

注意:kibana占用的是5601端口,访问的时候需要加上端口
或者有需要的话可以下载nginx做个反向代理。将本地ip反向代理到本地ip的5601端口。

logstash部署

1.jdk安装部署

[root@es-2-zk-log ~]  tar -xvzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@es-2-zk-log ~]   cd /usr/local/
[root@es-2-zk-log ~]   mv jdk1.8.0_211/ java
[root@es-2-zk-log ~]    vim /etc/profile #添加环境变量
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH

添加完环境变量之后再执行以下source :   source /etc/profile

2.安装logstash

tar xvzf logstash-6.5.4.tar.gz -C /usr/local/

3.要收集什么服务的日志
在这里举例收集本机的nginx日志

 systemctl start nginx #nginx启动之后再启动logstash才会收集到ngin的日志信息

4.配置logstash

 mkdir -p /usr/local/logstash-6.5.4/etc/conf.d
 # 创建配置文件的相关目录
 cd /usr/local/logstash-6.5.4/etc/conf.d/
 
 vim wxm.conf  # 在这个目录下创建配置文件

可以将输入和输出的配置文件分开创建

input{ #让logstash可以读取特定的事件源。
file{ #从文件读取
path => ["/var/log/nginx/*.log"] #要输入的文件路径
# code => "json" #定义编码,用什么格式输入和输出.
type => "shopweb" #定义一个类型,通用选项. 用于激活过滤器,和kibanna定义的类型要一致
}
}
output{ #输出插件,将事件发送到特定目标
elasticsearch { #输出到es
hosts => ["192.168.246.234:9200"] #指定es服务的ip加端口
index => ["%{type}-%{+YYYY.MM.dd}"] #引用input中的type名称,定义输出的格式
}
}

启动logstash

cd /usr/local/logstash-6.5.4/
# 启动并放到后台运行
nohup bin/logstash -f etc/conf.d/  &  #-f参数是指定配置文件或者说配置文件目录来启动

查看nohup.out输出,需要等待一会。可以通过ps -ef |grep logstash 的命令查看有没有运行成功,在这里默认的监听端口是9600

tail -f nohup.out

之后去kibana添加索引就好了
需要注意的是添加的索引名称和logstash输入配置文件里的type要一致

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值