ELK 安装

ELK 对版本要求严格,建议 ELK+F 的版本都一致
首先需要设置 selinux 为 disabled
关闭防火墙或者开放 9200、5601、5044
此处不详述


一般架构图

image.png


各个软件的功能

Elasticsearch:是基于 Lucene 的开源全文搜索引擎,在这里充当日志存储的角色
Logstash:日志搜集、过滤的软件,在这里接收 FileBeat 传过来的日志,充当过滤日志角色
Kibana:是一个开源的分析和可视化平台,从 Elasticsearch 里把日志查询展现出来。
FileBeat:负责日志收集,传输到 Logstash 进行过滤处理后,再录入到 Elasticsearch。


下载 ELK

因条件所限,这里把 ELK 均装在同一台服务器中,这里使用最新稳定的 6.5.0 版本
ELK 要求 java 环境,先自行安装 jdk8

Elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
Logstash:https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.zip
Kibana:https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz
具体命令:

cd /usr/local/src
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.zip
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz

安装 Elasticsearch

01:新建一个 elk 用户,因为 elk 不能以 root 用户启动

[root@FDT-144 src]# adduser elk
[root@FDT-144 src]# passwd elk
更改用户 elk 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

02:配置系统打开文件数的限制(在文件的最后 end 之前添加)

[root@FDT-144 src]# vi /etc/security/limits.conf
* soft nofile 1024000
* hard nofile 1024000
[root@FDT-144 src]# vim /etc/security/limits.d/20-nproc.conf
*          soft    nproc     1024000
*          soft    nofile     1024000
*          hard   nofile     1024000

03:调整进程中内存映射区域的最大数量(01 - 03都做完后需重启服务器)

[root@FDT-144 src]# vim /etc/sysctl.conf
vm.max_map_count=1024000

04:开始安装

[root@FDT-144]# cd /usr/local/src/
[root@FDT-144 src]# tar xvf /usr/local/src/elasticsearch-6.5.0.tar.gz 
[root@FDT-144 src]# mkdir /data/elk
[root@FDT-144 src]# mv elasticsearch-6.5.0 /data/elk/elasticsearch

05:修改配置文件

[root@FDT-144 src]# cd /data/elk/elasticsearch/config/
[root@FDT-144 config]# vim elasticsearch.yml
network.host: 192.168.36.144
http.port: 9200

安装 Kibana

01:解压包并剪切到合适位置

[root@FDT-144 config]# cd /usr/local/src/
[root@FDT-144 src]# tar xvf kibana-6.5.0-linux-x86_64.tar.gz
[root@FDT-144 src]# mv kibana-6.5.0-linux-x86_64 /data/elk/kibana

02:修改配置文件(配置 kibana 的端口为 5601,host 是 192.168.36.144,以及连接 Elasticsearch 的信息)

[root@FDT-144 src]# cd /data/elk/kibana/config/
[root@FDT-144 config]# vim kibana.yml
server.port: 5601
server.host: "192.168.36.144"
elasticsearch.url: "http://192.168.36.144:9200"

安装 Logstash

01:解压包并剪切到合适位置

[root@FDT-144 config]# cd /usr/local/src/
[root@FDT-144 src]# unzip logstash-6.5.0.zip
[root@FDT-144 src]# mv logstash-6.5.0 /data/elk/logstash

02:修改配置文件
port=>5044:这个是 Logstash 监听的端口,filebeat 到时发送的日志就是发送到 Logstash 的 5044 端口
host:意思是 Logstash 把日志发送到这个 host 的 Elasticsearch 上。
index:发送到 Elasticsearch 的时候创建的 index 命名规则
user 和 password:Elasticsearch 有设置相关的用户名密码,这里不用,注释掉。

[root@FDT-144 src]# cd /data/elk/logstash/config/
[root@FDT-144 config]# mv logstash-sample.conf logstash.conf
[root@FDT-144 config]# vim logstash.conf
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.36.144:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

启动各个应用

01:授权

[root@FDT-144 config]# cd /data/
[root@FDT-144 data]# chmod -R 777 elk/

02:启动 Elasticsearch
切换到 elk 用户,cd 到 Elasticsearch 的 bin 目录下,启动 Elasticsearch

[root@FDT-144 data]# su elk
[elk@FDT-144 data]$ cd /data/elk/elasticsearch/bin/
[elk@FDT-144 bin]$ ./elasticsearch -d

03:启动 Kibana

[elk@FDT-144 bin]$ cd /data/elk/kibana/bin/
[elk@FDT-144 bin]$ ./kibana &

04:启动 Logstash

[elk@FDT-144 bin]$ cd /data/elk/logstash/bin/
[elk@FDT-144 bin]$ ./logstash -f ../config/logstash.conf &

测试是否正确启动

浏览器访问 http://192.168.36.144:5601
浏览器访问 http://192.168.36.144:9200/
能正常访问则正常启动


汉化 Kibana

请注意,汉化是不可逆行为,建议先备份

[root@FDT-144 ~]# cd /usr/local/src/
[root@FDT-144 src]# wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip
[root@FDT-144 src]# unzip master.zip
[root@FDT-144 src]# cd Kibana_Hanization-master/
[root@FDT-144 Kibana_Hanization-master]# lsof -i:5601
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    3165  elk   10u  IPv4  18962      0t0  TCP 192.168.36.144:esmagent (LISTEN)
[root@FDT-144 Kibana_Hanization-master]# kill -9 3165
[root@FDT-144 Kibana_Hanization-master]# python2.7 main.py /data/elk/kibana/
[root@FDT-144 Kibana_Hanization-master]# su elk
[elk@FDT-144 Kibana_Hanization-master]$ cd /data/elk/kibana/bin/
[elk@FDT-144 bin]$ ./kibana &

在客户端安装 FileBeat

这里用一台测试服务器做实验(36.68)

[root@zabbix ~]# cd /usr/local/src/
[root@zabbix src]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.0-linux-x86_64.tar.gz
[root@zabbix src]# tar xvf filebeat-6.5.0-linux-x86_64.tar.gz
[root@zabbix src]# mv filebeat-6.5.0-linux-x86_64 /data/filebeat
[root@zabbix src]# cd /data/filebeat/
[root@zabbix filebeat]# vim filebeat.yml
- type: log
  enabled: true
  paths:
    - /var/log/zabbix/zabbix_server.log
  multiline.pattern: ^\d{4}
  multiline.negate: true
  multiline.match: after
  scan_frequency: 60
output.logstash:
  hosts: ["192.168.36.144:5044"]
  index: "zabbix_server"
[root@zabbix filebeat]# mv filebeat.yml filebeat_zabbix.yml
[root@zabbix filebeat]# ./filebeat -e -c filebeat_zabbix.yml &

验证

刷新 Kibana 页面即可看到有新的内容
27066-5z8vyi63bhp.png


文章作者: Runfa Li
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Linux 小白鼠
Linux Linux elk elkf
觉得文章不错,打赏一点吧,1分也是爱~
打赏
微信 微信
支付宝 支付宝