ELK初探
需求背景:
业务发展越来越大,服务器越来越多,各种访问日志,应用日志,错误日志也越来越多,开发人员排查问题,需要上服务器查,不方便,运营人员需要一些数据,也需要运维人员上服务器分子日志。
Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等。
Logstash是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。
kibana也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 Elastic Search 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
一、准备工作
三台服务器环境:
192.168.153.13 (主节点)cnetos7
192.168.153.14 (数据节点)centos7
192.168.153.15 (数据节点)centos7
角色划分:
3台全部安装elasticsearch
主节点上安装kibana
其中一个(192.168.153.15 )数据节点上安装logstash
二、部署工作:
1、三台机器上都安装jdk
yum install -y java-1.8.0-openjdk
2、安装elasticsearch
下载6.3版本的
在一台机器上执行
wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
用scp同步到另外两台机器上
然后分别在三台机器上执行:
rpm -ivh elasticsearch-6.3.0.rpm
3、配置es
在主节点上配置如下信息:
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: test
node.name: test-01
node.master: true
node.data: false
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 192.168.153.13
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.153.13","192.168.153.14", "192.168.153.15"]
配置完保存,分别拷贝到其他两个节点上
在一个从节点:
vim /etc/elasticsearch/elasticsearch.yml #修改以下4行数据
node.name: test-14
node.master: false
node.data: true
network.host: 192.168.153.14
在另一个从节点也是同样的修改(注意ip和node.name不一样)
4、启动es
顺序:主,从,从
systemctl start elasticsearch
#curl '192.168.153.13:9200/_cluster/health?pretty'
查看集群节点有没有问题
5、安装kibana(主机器上)
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-x86_64.rpm
rpm -ivh kibana-6.3.0-x86_64.rpm
vim /etc/kibana/kibana.yml #配置kibana
server.port: 5601
server.host: 192.168.153.13
elasticsearch.url: "http://192.168.153.13:9200"
启动:
systemctl start kibana
查看进程,端口,检查服务是否启动起来
浏览器访问:192.168.153.13:5601,可以访问到说明成功了
6、安装logstash
在192.168.153.15机器上安装
wgethttps://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.rpm
rpm -ivh logstash-6.3.0.rpm
配置logstash
vim /etc/logstash/conf.d/syslog.conf #以收集系统日志为例
input{
syslog{
type => "syslog-syslog"
port => 10514
}
}
output{
stdout{
codec => rubydebug
}
}
检查配置文件是否有错:
cd /usr/share/logstash/bin
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te
st_and_exit
显示Configuration OK,说明可以启动了
注:启动之前要做一件事,检查10514端口是否打开,没有打开,那么配置一下
vim /etc/rsyslog.conf
在#### RULES #### 下面添加一行
*.*@@192.168.153.15:10514
启动:
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf
注:此处一个小实验
执行了./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf ,终端页面不会退出,在新打开一个终端页面,执行systemctl restart rsyslog,然后反过去看之前的终端页面,会出现日志信息(图略)
三、配置logstash收集信息展示在kibana上
1、配置并启动logstash
vim /etc/logstash/conf.d/syslog.conf
input{
syslog{
type => "syslog-syslog"
port => 10514
}
}
output{
elasticsearch{
hosts => ["192.168.153.13:9200"]
index => "system-syslog-%{+YYYY.MM}"
}
}
检查配置:
/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.te
st_and_exit
为对logstash的日志和数据目录授权:
chown -R logstash /var/lib/logstash/
chown -R logstash /log/lib/logstash/
启动:
systemctl restart logstash
稍等查看端口9600是否启动起来
2、kibana上看日志
配置logstash监听192.168.153.15这个ip
vim /etc/logstash/logstash.yml
http.host: "192.168.153.15"
启动:systemctl restart logstash
web页面打开kibana并配置索引;
索引可以执行:curl '192.168.153.13:9200/_cat/indices?v' 来获取
然后下一步,create;
回到首页discover,可以看到
3、实验:
终端窗口关闭192.168.153.15这个页面,再重新连接,会看到/var/log/messages下会生成新的日志;
刷新kibana页面,可以看到新生成的日志
注:查看集群状态:
curl '192.168.153.13:9200/_cluster/health?pretty'
curl '192.168.153.13:9200/_cluster/state?pretty'
curl '192.168.153.13:9200/_cat/indices?v' 获取索引信息
网友评论