资源路径
JAVA
http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
ELK
https://www.elastic.co/
安装目录:
/usr/local/elasticsearch
/usr/local/logstash
/usr/local/kibana
服务端安装
一、JDK安装
1、上传JDK8
rz
2、解压JDK8
tar -zxvf jdk-8u181-linux-x64.tar.gz
3、将JDK移动到/usr/local/java
cp -r jdk1.8.0_181 /usr/local/java
4、修改环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
5、使改变生效并检测版本
source /etc/profile
java -version
二、安装ELK
1、上传并解压
tar -zxvf elasticsearch-6.4.1.tar.gz
tar -zxvf logstash-6.4.1.tar.gz
tar -zxvf kibana-6.4.1-linux-x86_64.tar.gz
mv elasticsearch-6.4.1 /usr/local/elasticsearch
mv logstash-6.4.1 /usr/local/logstash
mv kibana-6.4.1-linux-x86_64 /usr/local/kibana
2、修改权限(elasticsearch不能以root用户运行)
useradd elk
passwd elk
chkown -R elk.elk /usr/local/elasticsearch
chown -R elk.elk /usr/local/elasticsearch
3、修改配置:
修改文件描述符:ulimited
vim /etc/security/limits.conf
elk soft nofile 102400
elk hard nofile 102400
其他也为 102400
vim /etc/security/limits.d/90-nproc.conf
- soft nproc 65535
修改/etc/sysctl.conf配置文件,添加
vm.max_map_count=262144
需要重启机器
elasticsearch.yml:
注意要在Network下面:
network.host: 0.0.0.0
http.port: 9200
在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
kibana/config/kibana.yml
server.host: "10.10.10.101"
elasticsearch.url: "http://10.10.10.100:9200"
4、运行
elasticsearch:(注意,保存nohup.out的目录,elk必须有写入权限)
su elk
nohup /usr/local/elasticsearch/bin/elasticsearch &
kibana:
nohup /usr/local/kibana/bin/kibana &
logstash:(如果不加入redis,可以不用这个)
nohup /usr/local/logstash/bin/logstash agent -f ../conf/logstash.conf &
5、安装Nginx并配置
在 location/ 下增加
auth_basic "secret";
auth_basic_user_file /data/nginx/db/passwd.db;
创建认证数据文件
htpasswd -c /usr/opt/nginx/passwd.db root
如果没有htpasswd,则要安装httpd
yum -y install httpd
客户端安装
安装目录:
/usr/local/logstash
运行目录:
/data/ELK/logstash
配置目录:
/data/ELK/logstash/conf
一、JDK安装
1、上传JDK8
rz
2、解压JDK8
tar -zxvf jdk-8u181-linux-x64.tar.gz
3、将JDK移动到/usr/local/java
cp -r jdk1.8.0_181 /usr/local/java
4、修改环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH
5、使改变生效并检测版本
source /etc/profile
java -version
二、安装ELK
1、上传并解压
tar -zxvf logstash-6.4.1.tar.gz
mv logstash-6.4.1 /usr/local/logstash
2、配置logstash
logstash_nginx.conf内容
input {
file {
add_field => {"server_name"=>"nginx_33"}
path => [ "/data/nginx_log/*access.log" ]
start_position => "beginning"
ignore_older => 0
}
}
filter {
grok {
patterns_dir => ["/data/ELK/logstash/conf/patterns"]
match => { "message" => "%{NGINXACCESS}" }
}
geoip {
source => "clientip"
target => "geoip"
database => "/data/ELK/logstash/conf/GeoLite2-City.mmdb"
fields => ["country_name","region_code", "city_name", "ip"]
#add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
#add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
}
mutate {
# convert => [ "[geoip][coordinates]", "float" ]
convert => [ "response","integer" ]
convert => [ "bytes","integer" ]
replace => { "type" => "nginx_access" }
remove_field => "message"
}
date {
match => [ "timestamp","dd/MMM/yyyy:HH:mm:ss Z"]
}
mutate {
remove_field => "timestamp"
}
}
output {
elasticsearch {
hosts => ["10.10.10.100:9200"]
index => "logstash-nginx-access-%{+YYYY.MM.dd}"
}
#stdout {codec => rubydebug}
}
/data/ELK/logstash/conf/patterns中nginx 文件内容:
WZ ([^ ]*)
NGINXACCESS %{IP:clientip} - - [%{HTTPDATE:timestamp}] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}
GeoLite2
cd /data/ELK/logstash/conf
wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz
tar zxvf GeoLite2-City.tar.gz
cp GeoLite2-City_20180911/GeoLite2-City.mmdb ./
3、运行
nohup /usr/local/logstash/bin/logstash -f conf/logstash_nginx.conf &