elk简介:
在日常运维工作中,对于系统和业务日志的处理尤为重要
日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。
经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。
通常,日志被分散的储存在不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样繁琐且效率低下。
日志分析系统:ELK
是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮你汇总、分析和搜索重要数据日志。
E:Elasticsearch
接收Logstash提交的日志。存储日志.弹性搜索,日志存储
L:Logstash
部署在产生日志的应用服务器上,用于收集日志.
K:Kibana
通过WEB页面向用户展示。可以帮你汇总、分析和搜索重要数据日志
ELK部署:
Es:
两台es,域名解析。
elk-node1: 192.168.184.177 #master机器
elk-node2:192.168.184.178 #slave机器
验证密钥:
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
yum仓库:
vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
安装配件和es
yum install -y elasticsearch redis nginx java
自定义日志存储目录
mkdir -p /data/es-data
chown -R elasticsearch.elasticsearch /data/
vim /etc/elasticsearch/elasticsearch.yml
cluster.name: huanqiu # 组名(同一个组,组名必须一致)
node.name: elk-node1 # 节点名称,建议和主机名一致
path.data: /data/es-data # 数据存放的路径
path.logs: /var/log/elasticsearch/ # 日志存放的路径
bootstrap.mlockall: true # 锁住内存,不被使用到交换分区去(通常在内部不足时,休眠的程序内存信息会交换到交换分区)
network.host: 0.0.0.0 # 网络设置
http.port: 9200 # 端口
discovery.zen.ping.multicast.enabled: false 关闭多播
discovery.zen.ping.unicast.hosts: ["192.168.184.177","192.168.184.178"] 主服务器和自己的地址
systemctl start elasticsearch
systemctl enable elasticsearch
systemctl status elasticsearch
netstat -antlp |egrep "9200|9300"
测试:
192.168.184.177:9200
两台机器同时设置,2修改如下:
node.name: elk-node2
安装插件,1-2都要安装:
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/plugins
systemctl restart elasticsearch
测试插件:
http://192.168.184.177:9200/_plugin/head/
http://192.168.184.177:9200/_plugin/kop
L:
开启一个新服务器,179
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
# vim /etc/yum.repos.d/logstash.repo
[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
yum install -y logstash java-1.8.0
数据收集测试,命令行单行操作:
1:简单的控制台输入输出
/opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{} }
2:把内容写到elasticsearch中
/opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.184.177:9200"]} }'
数据收集测试,logstash的配置文件的编写:
vim /etc/logstash/conf.d/logstash1.conf
input {
file {
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
input {
file {
path => "/var/log/cron"
type => "cron"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["192.168.184.177:9200"]
index => "log-%{+YYYY.MM.dd}"
}
}
执行
/opt/logstash/bin/logstash -f /etc/logstash/conf.d/logstash1.conf
然后通过两个插件查看
K:
直接安装在179上
在官网上安装4.6版本,高版本会出现不兼容
https://download.elastic.co
tar zxf kibana-4.6.0-linux-x64.tar.gz -C /usr/local
cd /usr/local/kibana/config
vim kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.184.177:9200"
kibana.index: ".kibana"
因为他一直运行在前台,要么选择开一个shell窗口,要么选择使用screen。
/usr/local/kibana/bin/kibana
http://192.168.184.179:5601/
进入页面添加一个索引名称,点击进入
慢慢操作即可。
如果打开kibana查看日志,发现没有日志内容,出现“No results found”,
这说明要查看的日志在当前时间没有日志信息输出,可以点击右上角的时间钟来调试日志信息的查看。
elk部署完成。