浏览 4.2k
1、
vi /etc/sysctl.conf
#在最后一行添加
vm.max_map_count=262144
#执行如下命令 立即生效
/sbin/sysctl -p
2、
#配置文件目录
mkdir -p /opt/es
#创建数据文件目录
注:建议服务器提前在数据目录下挂载两块大空量磁盘
/var/es-data/es-data1
/var/es-data/es-data1
#数据文件目录需要赋予权限
chmod -R 777 /var/es-data3、
#创建elasticsearch.yml配置文件
vi /opt/es/elasticsearch.yml
#如下配置信息供参考
#node名称
node.name: es-node-1
#
#数据存储目录
path.data: /usr/share/elasticsearch/data/es-data1,/usr/share/elasticsearch/data/es-data2
#
#网络地址
network.host: 0.0.0.0
#
#HTTP 端口
http.port: 9200
#
cluster.initial_master_nodes: ["es-node-1"]
#
#启用认证
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
#
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
#编辑完成,保存退出#拉取镜像,测试使用7.17.7版本
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.7
#启动容器
docker run --name es -d \
-v /opt/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /var/es-data:/usr/share/elasticsearch/data \
--log-opt max-size=100m --log-opt max-file=1 \
-e ES_JAVA_OPTS="-Xms2g -Xmx2g" \
-p 9200:9200 -p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:7.17.7
#设置容器的自动启动
docker update --restart always es
#进入容器
docker exec -it es /bin/bash
#设置密码
./bin/elasticsearch-setup-passwords interactive

#配置文件目录
mkdir -p /opt/kibana
2、宿主机创建kibana.yml配置文件
#创建kibana.yml配置文件
vi /opt/kibana/kibana.yml
#如下配置信息供参考
#kibana端口
server.port: 5601
#kibana地址
server.host: "0.0.0.0"
#es地址,根据实际情况修改
elasticsearch.hosts: "http://192.168.101.190:9200"
#index设置
kibana.index: ".kibana"
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.requestTimeout: 60000
#es用户名密码
elasticsearch.username: "elastic"
elasticsearch.password: "default"
#编辑完成,保存退出#拉取镜像
docker pull docker.elastic.co/kibana/kibana:7.17.7
#启动容器
docker run --name kibana -d \
-v /opt/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--log-opt max-size=100m --log-opt max-file=1 \
-p 5601:5601 docker.elastic.co/kibana/kibana:7.17.7
#启用容器的自动启动
docker update --restart always kibana
5、

#配置文件目录
mkdir -p /opt/logstash#创建Nginx 日志logstash配置文件
vi /opt/logstash/ng-http.conf
#如下配置信息供参考
input {
udp {
port => 8512
type => "ng-http"
}
}
filter {
if [type] == "ng-http" {
mutate {
split => ["message","nginx: "]
add_field => { "tmp_log" => "%{[message][1]}" }
remove_field => [ "message" ]
}
json {
skip_on_invalid_json => true
source => "tmp_log"
}
mutate {
gsub => [
"proxy_host", "^.*~", "" #将proxy_host字段值中的开头至第一个~号结束,替换为无
]
}
if "-" in [X-Forwarded-For] {
geoip {
source => "remote_addr"
target => "geoip"
}
} else {
geoip {
source => "X-Forwarded-For"
target => "geoip"
}
}
}
mutate{
convert => { "bytes_sent" => "integer" }
convert => { "body_bytes_sent" => "integer" }
convert => { "request_time" => "float" }
convert => { "upstream_connect_time" => "float" }
convert => { "upstream_header_time" => "float" }
convert => { "upstream_response_time" => "float" }
}
ruby {
code => "
event.set('request_time', event.get('request_time') * 1000.0).to_i
event.set('upstream_connect_time', event.get('upstream_connect_time') * 1000.0).to_i
event.set('upstream_header_time', event.get('upstream_header_time') * 1000.0).to_i
event.set('upstream_response_time', event.get('upstream_response_time') * 1000.0).to_i
"
}
}
output {
if [type] == "ng-http" {
elasticsearch {
hosts => ["192.168.101.190:9200"] #ES IP 根据这实际情况修改
index => "logstash-ng-http-%{+YYYY.MM.dd}"
user => "elastic"
password => "xxxx" #ES 密码,根据实际情况修改
}
}
}#拉取镜像
docker pull docker.elastic.co/logstash/logstash:7.17.7
#启动容器
docker run --name logs-ng-http -d \
-v /opt/logstash/ng-http.conf:/usr/share/logstash/pipeline/ng-http.conf \
-e LS_JAVA_OPTS="-Xms512m -Xmx512m" \
--log-opt max-size=100m --log-opt max-file=1 \
-p 8512:8512/udp \
docker.elastic.co/logstash/logstash:7.17.7
#启用容器的自动启动
docker update --restart always logs-ng-http
#数据文件目录
mkdir -p /var/grafana
#数据文件目录需要赋予权限
chmod -R 777 /var/grafana#拉取镜像
docker pull grafana/grafana
#启动容器
docker run --name grafana -d --restart always -p 3000:3000 \
-v /var/grafana:/var/lib/grafana \
--log-opt max-size=100m --log-opt max-file=1 \
grafana/grafana
#取消容器的自动启动
docker update --restart no grafana
4、


#修改nginx.conf配置文件
http {
#设置日志格式为json格式以及需要发送的日志信息
log_format json '{"remote_addr":"$remote_addr",'
'"remote_user":"$remote_user",'
'"X-Forwarded-For":"$http_x_forwarded_for",'
'"remote_port":"$remote_port",'
'"server_addr":"$server_addr",'
'"server_name":"$server_name",'
'"server_port":"$server_port",'
'"server_protocol":"$server_protocol",'
'"time_local":"$time_local",'
'"request":"$request",'
'"request_length":"$request_length",'
'"request_uri":"$request_uri",'
'"request_method":"$request_method",'
'"request_time":"$request_time",'
'"status":"$status",'
'"bytes_sent":"$bytes_sent",'
'"body_bytes_sent":"$body_bytes_sent",'
'"http_referer":"$http_referer",'
'"http_user_agent":"$http_user_agent",'
'"query_string":"$query_string",'
'"header_host":"$host",'
'"upstream_addr":"$upstream_addr",'
'"upstream_cache_status":"$upstream_cache_status",'
'"upstream_status":"$upstream_status",'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_connect_time":"$upstream_connect_time",'
'"upstream_header_time":"$upstream_header_time",'
'"proxy_host":"$proxy_host",'
'"proxy_port":"$proxy_port",'
'"content_type":"$content_type",'
'"content_length":"$content_length",'
'"scheme":"$scheme"}';
#建议注释掉本地日志
# access_log /var/log/nginx/access.log json;
#设置日志通过syslog外发,server和端口为logstash的地址和端口
access_log syslog:server=192.168.101.190:8512 json;
#修改完成,保存退出,并reload配置
nginx -s reload





链接:https://pan.baidu.com/s/1JmwPW56x5Lc3ynOAgzh5Yw
提取码:j108







,





按点赞数排序
按时间排序
微信公众号
加入微信群