CentOS 7安装部署ELK 6.2.4-SUCCESS
一、ELK介绍
ELK是三款开源软件的缩写,即:ElasticSearch + Logstash + Kibana。这三个工具组合形成了一套实用、易用的监控架构,可抓取系统日志、apache日志、nginx日志、mysql日志等多种日志类型,目前很多公司用它来搭建可视化的集中式日志分析平台。
ElasticSearch:是一个分布式的RESTful风格的搜索和数据分析引擎,同时还提供了集中存储功能,它主要负责将logstash抓取来的日志数据进行检索、查询、分析等。
Logstash:日志处理工具,负责日志收集、转换、解析等,并将解析后的日志推送给ElasticSearch进行检索。
Kibana:Web前端,可以将ElasticSearch检索后的日志转化为各种图表,为用户提供数据可视化支持。
Filebeat:轻量型日志采集器,负责采集文件形式的日志,并将采集来的日志推送给logstash进行处理。
Winlogbeat:轻量型windows事件日志采集器,负责采集wondows的事件日志,并将采集来的日志推送给logstash进行处理。
二、部署环境
由于我这边是测试环境,所以ElasticSearch + Logstash + Kibana这三个软件我都是装在一台机器上面,如果是生产环境,建议分开部署,并且ElasticSearch可配置成集群方式。
IP:192.168.2.207(ELK服务器,CentOS 7)
IP:192.168.2.203(filebeat,nginx服务器,CentOS 7)
IP:192.168.2.204(filebeat,apache服务器,CentOS 7)
IP:192.168.2.206(winlogbeat,windows 10)
三、安装前的准备工作
1、关闭 selinux 和防火墙(这里暂时关闭iptables,部署完成后再开启)
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i 's/SELINUXTYPE=targeted/#&/' /etc/selinux/config
setenforce 0 # 可以设置配置文件永久关闭
systemctl stop firewalld.service
2、安装配置iptables
yum -y install iptables iptables-services
vim /etc/sysconfig/iptables # 添加如下端口策略
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5601 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5044 -j ACCEPT
启动iptables
systemctl start iptables.service
systemctl enable iptables.service # 将iptables加入开机启动
查看iptables状态systemctl status iptables.service
重启系统reboot # 更改selinux需要重启系统才会生效
3、安装java 8及相关软件yum -y install vim wget java java-devel
查看java版本java -version
4、下载ELK及相关软件
ELK服务器需下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm
Linux节点服务器需下载
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-x86_64.rpm
windows节点服务器需下载
四、安装配置ELK
1、yum方式安装ELK
yum localinstall -y elasticsearch-6.2.4.rpm
yum localinstall -y kibana-6.2.4-x86_64.rpm
yum localinstall -y logstash-6.2.4.rpm
2、创建ELK存放数据和日志目录
mkdir -pv /data/elasticsearch/{data,logs}
mkdir -pv /data/logstash/{data,logs}
chown -R elasticsearch.elasticsearch /data/elasticsearch/
chown -R logstash.logstash /data/logstash/
3、修改ELK配置文件
vim /etc/elasticsearch/elasticsearch.yml
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200
vim /etc/logstash/logstash.yml
path.data: /data/logstash/data
path.logs: /data/logstash/logs
vim /etc/logstash/conf.d/logstash.conf # 添加如下内容
input {
beats {
port => 5044
codec => plain {
charset => "UTF-8"
}
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
vim /etc/kibana/kibana.yml
server.port: 5601
server.host: "192.168.2.207"
elasticsearch.url: "http://localhost:9200"
4、安装配置nginx
安装nginx和http用户认证工具
yum -y install epel-release
yum -y install nginx httpd-tools
修改nginx配置
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf
把下图中这一段注释掉
vim /etc/nginx/conf.d/kibana.conf # 添加如下内容
server {
listen 80;
server_name kibana;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/kibana-user; //http认证文件
location / {
proxy_pass http://192.168.2.207:5601; //代理的kibana地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
生成http用户认证文件,生成文件kibana-user,并添加用户henhhhtpasswd -cm /etc/nginx/kibana-user henhh
此处需要输入两遍密码
5、启动ELK和nginx
systemctl daemon-reload # 重新加载所有配置文件
systemctl start elasticsearch logstash kibana nginx # 启动ELK和nginx
systemctl enable elasticsearch logstash kibana nginx # 将ELK和nginx加入开机启动
systemctl status elasticsearch logstash kibana nginx #查看ELK和nginx启动状态
查看端口是否已监听
6、查看elasticsearch状态curl -XGET 'http://192.168.2.207:9200/_cluster/state/nodes?pretty'
查看elasticsearch的master
curl -XGET 'http://192.168.2.207:9200/_cluster/state/master_node?pretty'
curl -XGET 'http://192.168.2.207:9200/_cat/master?v'
查看健康状态
curl -XGET 'http://192.168.2.207:9200/_cat/health?v'
curl -XGET 'http://192.168.2.207:9200/_cluster/health?pretty'
对于这个健康状态green(绿色)为最好
五、Linux节点服务器安装配置filebeat
安装filebeat,进入到之前下载安装包的目录,执行yum方式安装yum localinstall -y filebeat-6.2.4-x86_64.rpm
修改filebeat配置
vim /etc/filebeat/filebeat.yml
- type: log
enabled: true
- /var/log/*.log
- /var/log/messages
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 3
setup.kibana:
host: "192.168.2.207:5601"
#output.elasticsearch: //我们输出到logstash,把这行注释掉
#hosts: ["localhost:9200"] //这行也注释掉
output.logstash:
hosts: ["192.168.2.207:5044"]
启用nginx模块filebeat modules enable nginx
修改nginx模块配置
vim /etc/filebeat/modules.d/nginx.yml
- module: nginx
access:
enabled: true
var.paths: ["/var/log/nginx/access.log*"]
error:
enabled: true
var.paths: ["/var/log/nginx/error.log*"]
启用apache模块filebeat modules enable apache2
修改apache模块配置
vim /etc/filebeat/modules.d/apache2.yml
- module: apache2
access:
enabled: true
var.paths: ["/var/log/httpd/access_log*"]
error:
enabled: true
var.paths: ["/var/log/httpd/error_log*"]
启动filebeat
systemctl start filebeat
systemctl enable filebeat
systemctl status filebeat
六、windows节点服务器安装配置winlogbeat
解压winlogbeat-6.2.4-windows-x86_64.zip,以管理员方式运行PowerShell,进入到解压后的目录,执行.\install-service-winlogbeat.ps1来安装服务。如果报错提示在此系统上禁止脚本运行,那就执行PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1,便可安装成功。
修改配置文件 :winlogbeat.yml
winlogbeat.event_logs:
- name: Application
ignore_older: 72h
- name: Security
- name: System
setup.template.settings:
index.number_of_shards: 3
setup.kibana:
host: "192.168.2.207:5601"
#output.elasticsearch: //我们输出到logstash,所以这行注释掉
#hosts: ["localhost:9200"] //这行也注释掉
output.logstash:
hosts: ["192.168.2.207:5044"]
logging.to_files: true
logging.files:
path: D:/winlogbeat/winlogbeat/Logs
logging.level: info
使用以下命令检查配置文件的正确性,出现Config OK说明配置文件正确。.\winlogbeat.exe test config -c .\winlogbeat.yml -e
启动winlogbeat服务
打开service(服务),找到winlogbeat,启动它。
命令行启动方式,执行下面命令Start-Service winlogbeat
七、创建索引模式
浏览器访问http://192.168.2.207,输入之前通过htpasswd认证的用户名和密码登陆kibana。
点击Management,然后点击Index Patterns,再点击Create index pattern
输入filebeat-,然后点击Next step
选择@timestamp,然后点击Create index pattern
按照此方法再创建一个名为winlogbeat-的索引模式。
创建好后,点击Discover,就可以看到如下图页面的日志内容了。
CentOS 7安装部署ELK 6.2.4-SUCCESS的更多相关文章
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一)
环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建 ...
- [转]Centos 7 安装部署 GitLab 服务器
Centos 7 安装部署 GitLab 服务器 转自:https://www.jianshu.com/p/79bfded68899 文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总 ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践
原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践 环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输 ...
- 一、CentOS 7安装部署GitLab服务器
一.CentOS 7安装部署GitLab服务器 1.安装依赖软件 yum -y install policycoreutils policycoreutils-python openssh-serve ...
- 【CentOS】安装部署jenkins从git获取代码[转]
持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...
- CentOS 7 快速部署 ELK
先简单说一下部署思路及原理(不一定正确,只是个人理解而已) 1.修改系统参数,以便安装软件 2.安装配置elasticsearch,这个相当于总监测中心,用来收集logstash监测的各种服务应用日志 ...
- Centos 7安装部署zabbix 3.0LTS
1.环境准备 OS:CentOS 7.2 64bit Zabbix版本:3.0.12 MySQL版本:5.6 注意:zabbix3.0相关要求 mysql5.0以上版本.apache1.3以上版本.p ...
- centos 7安装部署docker
1.centos 7 在windows下通过vm虚拟机安装centos 7: VMware-workstation-full-10.0.3-1895310 centos 7 2.要求 操作系统的内核版 ...
随机推荐
- 用keytool制作证书并在tomcat配置https服务(二 )
用keytool制作证书并在tomcat配置https服务(一) 双向认证: 我们上边生成了服务端证书,并发送给客户端进行了验证. 双向认证是双向的,因此还差客户端证书. 1.为方便导入浏览器,生成p ...
- 【模板】快速幂&取余运算
输入\(b\),\(p\),\(k\)的值,求\(b^p mod k\)的值.其中\(b\),\(p\),\(k^2\)为长整型数. 1.普通做法 \(print\) \(pow(b,p)\)\(mo ...
- 【Alpha】Scrum Meeting 9
目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第9次会议于4月13日20:00在一公寓3楼召开. 交流确认了任务进度,对下一阶段任务进行分配.时长20min. 任务分配 姓名 当前阶段 ...
- 18B20驱动小经验
在写命令时P14拉高在最后 在读命令时P14在拉低后拉高
- Android中本地广播的实现
其实Android的本地广播并没有什么好讲的,他就是用了一个localbroadcastmanager类来sendbroadcast,以及注册和注销广播,没有什么特点,其中实例该类的时候用了getin ...
- js的eval代码快速解密
有一段js代码内容如下: eval(function(E,I,A,D,J,K,L,H){function C(A)后面内容省略... 解密可以采用如下方法: 方法一: 打开谷歌浏览器,按F12,在Co ...
- mysql workbench快捷键小结
执行整篇sql脚本, ctrl+shift+enter 执行当前行,ctrl+enter 注释/取消注释, ctrl+/ [注意]这里的 / 指的是小键盘中的除法Divide符号格式化sql语句( ...
- MySQL单表多次查询和多表联合查询,哪个效率高?
很多高性能的应用都会对关联查询进行分解. 简单地,可以对每个表进行一次单表查询,然后将结果在应用程序中进行关联.例如,下面这个查询: select * from tag join tag_post o ...
- linux运行进程实时监控pidstat详解
- java非阻塞NIO和阻塞IO
1 非阻塞NIO和阻塞IO 1.1 定义 阻塞IO:线程被阻塞,去处理一个读取和写入,中间如果有等待时间,则线程被占用,也不能处理其他任务: 非阻塞IO(new I ...