一、ELK简介
Elk是指elasticsearch,logstash,kibana三件套,我们一般使用它们做日志分析 ELK+redis关系
rsyslog 启动---->
logstash
elasticsearch---logstash---->
kibana
elasticsearch---logstash---->redis
实时文件存储,每个字段都可被索引
分布式实时分析搜索引擎
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
X-pack 监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装在X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据。
二、ELK安装部署
2.1准备环境
yum update
Java 1.8 环境
yum -y
install java
java -
version
yum -y
install lrzsz
2.2安装elasticsearch
2.2.1官网选择版本下载安装
官网
rz elastic
mkdir /data/
server #
目录建设规范
tar -zxvf 解压包 /data/server/
mv elastic /data/
server # 放到标准目录里
useradd elastic # 新建elastic用户
chown -R elastic.elastic /data/server/elasticserver/
ll # 查看所属用户
ps aux |
grep elastic
su elastic
./bin/
elasticsearch
vim /etc/security/
limit
elastic soft memlock unlimited
elastic hard memlock unlimited
* soft nofile
655366
* hard nofile
100002
vim /etc/
sysctl.conf
vm.max_map_count=
362144
sysctl -
p
vim config/elasticsearch/
yml
bootstrap.memory_lock: true
network.host: 192.168.
234.129
http.port: 9200
node.max_local_storage_nodes: 256
rm -rf data/nodes/
0/
node.lock # 若锁住错误
vim config/
jvm.options
-
Xms1g
-
Xmx1g
ulimit -
n
ulimit -s
655355
2.2.2 启动elasticsearch
/data/server/elasticsearch-
5.6.
8/bin/
elasticsearch
netstat -pantu |
grep "9200"
tips
1.关闭防火墙
永久关闭selinux
修改 /etc/selinux/config 文件中的 SELINUX=
"" 为 disabled ,然后重启。
setenforce 0 #即时生效
systemctl stop firewalld.service
2.elastic需要专用的用户启动
useradd elastic # 新建elastic用户
chown -R elastic.elastic /data/server/elasticserver/
3.Java地址问题
ps aux |
grep java
pkill -
9 java
4.要求改变data
出现data错误时
ps aux |
grep log
kill log 进程
kill -
9
5.若遇见lock 锁住
vim config/elasticsearch/
yml
node.max_local_storage_nodes: 256
rm -rf data/nodes/
0/node.lock # 若锁住错误
6.系统内存不足需要elastic优化
vim config/
jvm.options
-
Xms1g
-
Xmx1g
ulimit -
n
ulimit -s
655355
7.主机优化
vim /etc/
sysctl.conf
vm.max_map_count=
362144
sysctl -p
8.FATAL Port 5601 is already in use. Another instance of Kibana may be running!
fuser -n tcp
5601
kill -
9 56948
3.安装配置logstash
Logstash 是Elasticsearch 数据管道
Logstash :input output 可选:filter
3.1上传文件并且安装
tar -
zxvf logstash
mv logstash /data/server/
vim /etc/
rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
*.* @
192.168.
23.166:
5000
vim /data/server/conf/
syslog.conf
input{
tcp{
port =>
5000
type =>
syslog
}
udp{
port =>
5000
type =>
syslog
}
}
output{
elasticsearch {
hosts =>[
"192.168.23.166:9200"]
index =>
"zhj"
}
stdout {}
}
3.2启动
systemctl start rsyslog
su elastic
/data/server/elasticsearch-
5.6.
8/bin/
elasticsearch
exit
/data/server/logstash-
5.6.
8/bin/logstash -f /data/server/conf/
syslog.conf
logger -p
info "hello, remote rsyslog"#手工添加日志信息
4.安装配置kibana
4.1安装kibana
vim /data/server/conf/
syslog.conf
input{
tcp{
port =>
5000
type =>
syslog
}
udp{
port =>
5000
type =>
syslog
}
}
output{
elasticsearch {
hosts => [
"192.168.23.166:9200"]
index =>
"zhj-%{+YYYY.MM.dd}"
}
stdout {
codec =>
rubydebug
}
}
su kibana
vim /data/server/kibana-
5.6.
8-linux-x86_64/config/
kibana.yml
server.port: 5601
server.host: "192.168.23.166"
elasticsearch.url: "http://192.168.23.166:9200"
:wq
4.2启动
/data/server/kibana-
5.6.
8-linux-x86_64/bin/
kibana
登录kibana
http://192.168.23.166:5601
查看索引:
http://192.168.23.166:9200/_cat/indices?v
tips
1.kibana 不能实时抓日志
修改主机服务时间
date -s
"2018-05-20 10:00:00"
2.kibana在使用
ps -ef|
grep kibana
ps -ef|
grep 5601
都找不到
尝试 使用 fuser -n tcp
5601
kill -
9 端口
启动即可 ./kibana
5.安装配置redis
5.1安装redis
将log日志放在redis上,然后redis将日志转到elastic上
上传Redis-
3.2.
1.
tar.gz包,解压到/data/server/
yum -y
install tcl*
# redis 库依赖
cd /data/server/redis-
3.2.
1
make &&
make install
vim /data/server/conf/
syslog.conf
input{
tcp{
port =>
5000
type =>
syslog
}
udp{
port =>
5000
type =>
syslog
}
}
output {
redis {
host =>
"192.168.23.166"
port =>
"6379"
data_type =>
"list"
key =>
"sys_log:redis"
}
}
input {
redis {
host =>
"192.168.23.166"
port =>
"6379"
data_type =>
"list"
key =>
"sys_log:redis"
type =>
"redis-input"
}
}
output {
elasticsearch {
hosts =>
"192.168.23.166:9200"
index =>
"zhj"
}
stdout {
codec =>
rubydebug
}
}
5.2启动
连接客户端,查看日志
配置中redis.conf文件中修改bind值为192.
168.23.
166
systemctl start rsyslog
su elastic
/data/server/elasticsearch-
5.6.
8/bin/
elasticsearch
/data/server/redis-
3.2.
1/src/redis-server /data/server/redis-
3.2.
1/
redis.conf
/data/server/logstash-
5.6.
8/bin/logstash -f /data/server/conf/
syslog.conf
/data/server/redis-
3.2.
1/src/redis-cli -h
192.168.
234.129
#启动kibana
/data/server/kibana-
5.6.
8-linux-x86_64/bin/
kibana
/data/server/redis-
3.2.
1/src/redis-cli -p
6379
keys *
6 x-pack 插件的安装
6.1elasticsearch 安装x-pack
/data/server/elasticsearch-
5.6.
8/bin/elasticsearch-plugin
install x-pack
一路 y
6.2kibana 安装x-pack
/data/server/kibana-
5.6.
8-linux-x86_64/bin/kibana-plugin
install x-
pack
增加
elastic
user =>
"elastic"
password =>
"changeme"
6.3手动离线安装
6.4破解graph 版本
luyten java反编译
参考
1.自己的有道笔记
2.各组件原理介绍请看 ELK原理
未来计划
找时间在优化下排版和配图吧...太糟糕了-.-||
转载于:https://www.cnblogs.com/Rightsec/p/10306523.html