ELK日志分析系统
一、ELK日志分析系统
1、ELK的作用和特点
1)ELK的作用
集中化管理日志
对日志配置群集避免单节点故障,日志丢失
2)ELK特点
开源
不支持日志分析
支持集中化管理
2、ELK组成
1)elasticsearch
开源的日志搜索和存储引擎
采用分布式设计
自动配置日志群集
支持零配置负载均衡功能
2)logstash
负责日志采集
对客户端日志进行采集、格式化、输出到elasticsearch存储
安装在客户端上
3)kibana
支持图形化界面查看日志
兼容强
安装在服务器端
3、logstash组成
1)shipper
日志采集
实时监控日志变化
将日志格式化上传到elasticsearch
2)indexer
日志存储
创建索引
3)broker
接收多个shipper采集的日志
4)search and stroage
允许用户搜索和存储日志信息
5)web interface
支持kibana访问平台中的数据
支持WEB页面查看日志
二、配置ELK
1、Elasticsearch
安装
rpm -ivh /mnt/elasticsearch-5.5.0.rpm
修改配置文件
vim /etc/elasticsearch/elasticsearch.yml
18 cluster.name: my-elk //群集名字
25 node.name: centos01 //节点计算机名
46 bootstrap.memory_lock: false //不锁定内存
59 network.host: 192.168.100.10 //监听IP
64 http.port: 9200 //监听端口
74 discovery.zen.ping.unicast.hosts: ["centos01", "centos02"] //将节点加入群集
启动服务设置开机自动启动
systemctl daemon-reload
systemctl start elasticsearch.service
systemctl enable elasticsearch.service
监听端口
netstat -anptu | grep 9200
2、elasticsearch-head
解压node文件压缩包
tar zxvf /mnt/node-v8.2.1.tar.gz -C /usr/src/
将node文件剪切更换目录
mv /usr/src/node-v8.2.1/ /usr/local/node
进入到文件中并编译安装
./configure && make && make install
解压phantomjs
tar jxvf /mnt/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/src/
添加执行权限
cp phantomjs /usr/local/bin/
chmod +x /usr/local/bin/phantomjs
解压elasticsearch
tar zxvf /mnt/elasticsearch-head.tar.gz -C /usr/src/
移动elasticsearch-head
mv /usr/src/elasticsearch-head/ /usr/local/
安装工具
npm install
修改elasticsearch跨域访问
vim /etc/elasticsearch/elasticsearch.yml
65 http.cors.enabled: true
66 http.cors.allow-origin: "*"
重启
/etc/init.d/elasticsearch restart
修改elasticsearch-head配置文件监听9200
vim /usr/local/elasticsearch-head/_site/app.js
4329 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.100.10:9200";
修改修改elasticsearch-head配置文件监听9100端口
vim /usr/local/elasticsearch-head/Gruntfile.js
93 hostname:'192.168.100.10',
94 port: 9100,
启动服务
cd /usr/local/elasticsearch-head/
npm run start&
使用浏览器链接测试
3、安装配置logstash
安装logstash
rpm -ivh logstash-5.5.1.rpm
优化命令
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
启动服务设置开机自动启动
systemctl start logstash
systemctl enable logstash
插入测试数据
logstash -e 'input { stdin{}} output { stdout{}}'
logstash -e 'input { stdin{}} output { stdout{ codec=>rubydebug}}'
logstash -e 'input { stdin{}} output { elasticsearch{hosts => ["192.168.100.10:9200"]}}'
打开浏览器查看日志
4、采集apache成功日志
设置允许日志读取
chmod o+r /var/log/httpd/access_log
创建采集日志文件
touch /etc/logstash/conf.d/apache.conf
chmod +x /etc/logstash/conf.d/apache.conf
vim /etc/logstash/conf.d/apache.conf
检查日志采集文件是否有问题
logstash -f /etc/logstash/conf.d/apache.conf
重新启动logstash
systemctl restart logstash.service
5、安装配置kibana
安装kibana
rpm -ivh /mnt/kibana-5.5.1-x86_64.rpm
修改主配置文件
vim /etc/kibana/kibana.yml
3 server.port: 5601
9 server.host: "192.168.100.10"
24 elasticsearch.url: "http://192.168.100.10:9200"
启动服务
systemctl start kibana
systemctl enable kibana