ELk 搭建记录
ELK 分别对应三个应用分别为
- Elasticsearch 为数据库,提供优秀的查询性能和查询语法
- Logstash 为数据加工层,对客户端提供的日志进行过滤等二次加工
- Kibana 为呈现层,提供WEB界面,可查询日志,画各种统计面板
- 在先分布式的服务器部署上,通常还会加一个数据转发层(logstash太大,不适合在所有服务器上部署文中采用的方式为 FileBeat)
FIleBeat Go 语言编写的日志采集上报软件,性能高,体积小,适合大规模部署
- 对于画板要求很高的小伙伴,同时可以采用 Grafana,提供的面板更多样,维度更高
安装准备
CentOS 7 操作系统 Supervisor 作为守护进行进程管理
安装Java 运行环境
- 下载页面 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
添加Java 环境变量
sudo mkdir /usr/local/java
sudo mv jdk-11.0.6 /usr/local/java/
sudo vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
更改系统资源配置
sudo vim /etc/sysctl.conf
vm.max_map_count=655360
sudo sysctl -p
sudo vim /etc/security/limits.conf
# End of file
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
创建启动用户
groupadd elasticsearch
useradd elasticsearch -g elasticsearch
chown -R elasticsearch:elasticsearch /opt/elk
Elasticsearch
- 下载页面 https://www.elastic.co/cn/downloads/elasticsearch
解压下载软甲并移动到 /opt/elk 目录
修改配置
sudo vim config/elasticsearch.yml
## 添加配置文件是插件可以跨域访问
## enable origin request
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
运行测试&添加守护进程
./bin/elasticsearch -d -p pid
# 查看是否有报错,请求下面地址,查看是否正常运行
http://127.0.0.1:9200
Ctrl + C
sudo vim /etc/supervisor/conf.d/elk.ini
[program:elasticsearch]
command=/opt/elk/elasticsearch-6.4.2/bin/elasticsearch -p pid
numprocs=1
strout_events_enable=true
strerr_events_enable=true
supervisor update
supervisor status
数据页面
-
查看索引页面 http://127.0.0.1:9200/prod-nginx-access/_search?pretty
-
查看索引健康状态 http://127.0.0.1:9200/_cat/indices/?v
-
查看具体状态 http://127.0.0.1:9200/_cluster/health?pretty=true
-
处理黄色的健康状态
curl -H "Content-Type: application/json" -XPUT 'http://127.0.0.1:9200/_settings' -d ' { "index" : { "number_of_replicas" : 0 } }'
Kibana
- 下载页面 https://www.elastic.co/cn/downloads/kibana
解压下载软甲并移动到 /opt/elk 目录
修改配置
vim config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://127.0.0.1:9200"
运行测试&添加守护进程
./bin/kibana
# 查看是否有报错,请求下面地址,查看是否正常运行
http://127.0.0.1:5601
Ctrl + C
sudo vim /etc/supervisor/conf.d/elk.ini
[program:kibana]
command=/opt/elk/kibana-6.4.2-linux-x86_64/bin/kibana
stdout_events_enable=true
smcrypt.htderr_events_enable=true
supervisor update
supervisor status
Logstash
- 下载页面 https://www.elastic.co/cn/downloads/kibana
解压下载软甲并移动到 /opt/elk 目录
运行测试&添加守护进程
./bin/logstash -f input/logstash.conf
# 查看是否有报错
Ctrl + C
sudo vim /etc/supervisor/conf.d/elk.ini
[program:logstash]
command=/opt/elk/logstash-6.4.2/bin/logstash -f /opt/elk/logstash-6.4.2/input
strout_events_enable=true
strerr_events_enable=true
supervisor update
supervisor status
- 所有配置都可以放到一个目录中 logstash -f 可以读取目录中所有配置
监控错误
- 可以安装插件 logstash-output-exec ```bash ./bin/logstash-plugin install logstash-output-exec
### 访问权限控制
我们通过nginx的权限控制控制 Kibana,其他数据接口不暴露
```bash
sudo yum install -y httpd
sudo mkdir -p /data/nginx/db/
sudo htpasswd -c /data/nginx/db/passwd.db user_name
=> user_password
sudo vim /etc/nginx/conf.d/kibana.conf
server {
listen 80;
server_name elk.qjy-edu.com;
client_max_body_size 100m;
client_body_buffer_size 512k;
location / {
auth_basic "secret";
auth_basic_user_file /data/nginx/db/passwd.db;
proxy_pass http://127.0.0.1:5601/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nginx -s reload
配置监控数据
完成面上的安装后,就要开始具体调试监控信息了(实际就是调试logstash 信息) 具体请参见 elk-php、elk-nginx