
, eyenzelwe ukuqokelela, ukuguqula kunye nokuthumela idatha yelog, i-metrics kunye neziganeko.
β
Ukubhalwa ngolwimi lwe-Rust, lubonakaliswa ngokusebenza okuphezulu kunye nokusetyenziswa kwe-RAM ephantsi xa kuthelekiswa ne-analogues yayo. Ukongezelela, ingqwalasela eninzi ihlawulwa kwimisebenzi ehambelana nokuchaneka, ngokukodwa, ukukwazi ukugcina iziganeko ezingathunyelwanga kwi-buffer kwidiski kunye nokujikeleza iifayile.
Uyilo, iVector yirouter yesiganeko efumana imiyalezo evela kwenye okanye ngaphezulu imithombo yolwazi, ngokukhetha ukufaka phezu kwale miyalezo iinguqu, kwaye uzithumele kwenye okanye ngaphezulu iidreyini.
IVector yindawo yokubethelwa kwefayile kunye nelogstash, inokusebenza kuzo zombini iindima (ukufumana kunye nokuthumela iilogi), iinkcukacha ezingaphezulu kuzo. .
Ukuba kwiLogstash ikhonkco lakhiwe njengegalelo β icebo lokucoca β imveliso ngoko kwiVektha iyiyo β β
Imizekelo inokufumaneka kumaxwebhu.
Lo myalelo ngumyalelo ohlaziyiweyo ovela . Imiyalelo yokuqala iqulathe inkqubo ye-geoip. Xa uvavanya i-geoip kwinethiwekhi yangaphakathi, i-vector inike impazamo.
Aug 05 06:25:31.889 DEBUG transform{name=nginx_parse_rename_fields type=rename_fields}: vector::transforms::rename_fields: Field did not exist field=Β«geoip.country_nameΒ» rate_limit_secs=30Ukuba nabani na ufuna ukuqhubekekisa i-geoip, ngoko bhekisa kwimiyalelo yokuqala evela .
Siza kuqwalasela indibaniselwano yeNginx (uFikelelo kwilog) β Vector (Client | Filebeat) β Vector (Server | Logstash) β ngokwahlukileyo kwiClickhouse kwaye ngokwahlukileyo kwi-Elasticsearch. Siza kufaka iiseva ezi-4. Nangona ungayigqitha ngeeseva ezi-3.

Iskimu siyinto enje.
Khubaza iSelinux kuzo zonke iiseva zakho
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
rebootSifaka i-emulator ye-HTTP yeseva + eziluncedo kuzo zonke iiseva
Njengomenzi weseva yeHTTP esiya kuyisebenzisa ukusuka
I-Nodejs-stub-server ayinayo i-rpm. yenza i-rpm kuyo. rpm iya kwakhiwa kusetyenziswa
Yongeza i-antonpatsev/nodejs-stub-server repository
yum -y install yum-plugin-copr epel-release
yes | yum copr enable antonpatsev/nodejs-stub-serverFaka i-nodejs-stub-server, i-Apache benchmark kunye ne-screen multiplexer yesikrini kuzo zonke iiseva
yum -y install stub_http_server screen mc httpd-tools screenNdilungise ixesha lokuphendula le-stub_http_server kwifayile /var/lib/stub_http_server/stub_http_server.js ukuze kubekho iilog ezininzi.
var max_sleep = 10;Masiqalise i-stub_http_server.
systemctl start stub_http_server
systemctl enable stub_http_serverkwiseva 3
I-ClickHouse isebenzisa isethi yomyalelo we-SSE 4.2, ngoko ke ngaphandle kokuba kuchazwe ngenye indlela, inkxaso yayo kwiprosesa esetyenzisiweyo iba yimfuno eyongezelelweyo yenkqubo. Nanku umyalelo wokukhangela ukuba iprosesa yangoku iyayixhasa i-SSE 4.2:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"Okokuqala kufuneka udibanise indawo yokugcina esemthethweni:
sudo yum install -y yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64Ukufakela iipakethe kufuneka wenze le miyalelo ilandelayo:
sudo yum install -y clickhouse-server clickhouse-clientVumela i-clickhouse-server ukumamela ikhadi lomsebenzi womnatha kwifayile /etc/clickhouse-server/config.xml
<listen_host>0.0.0.0</listen_host>Ukutshintsha umgangatho wokuloga ukusuka kumkhondo ukuya kwi-debug
ukuguqulwa
Iisetingi zoxinzelelo olusemgangathweni:
min_compress_block_size 65536
max_compress_block_size 1048576Ukwenza ucinezelo lweZstd lusebenze, kuye kwacetyiswa ukuba ungachukumisi uqwalaselo, kodwa endaweni yoko usebenzise iDDL.

Andikwazanga ukufumana indlela yokusebenzisa i-zstd compression nge-DDL kuGoogle. Ndiye ndayishiya injalo.
Oogxa abasebenzisa i-zstd compression kwiClickhouse, nceda wabelane ngemiyalelo.
Ukuqala iseva njengedaemon, sebenzisa:
service clickhouse-server startNgoku masiqhubele phambili ukuseta iClickhouse
Yiya kwiClickhouse
clickhouse-client -h 172.26.10.109 -m172.26.10.109 β IP yomncedisi apho iClickhouse ifakwe khona.
Masenze isiseko sedatha yevektha
CREATE DATABASE vector;Masijonge ukuba uvimba weenkcukacha ukhona.
show databases;Yenza itafile yevector.logs.
/* ΠΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π»ΠΎΠ³ΠΈ ΠΊΠ°ΠΊ Π΅ΡΡΡ */
CREATE TABLE vector.logs
(
`node_name` String,
`timestamp` DateTime,
`server_name` String,
`user_id` String,
`request_full` String,
`request_user_agent` String,
`request_http_host` String,
`request_uri` String,
`request_scheme` String,
`request_method` String,
`request_length` UInt64,
`request_time` Float32,
`request_referrer` String,
`response_status` UInt16,
`response_body_bytes_sent` UInt64,
`response_content_type` String,
`remote_addr` IPv4,
`remote_port` UInt32,
`remote_user` String,
`upstream_addr` IPv4,
`upstream_port` UInt32,
`upstream_bytes_received` UInt64,
`upstream_bytes_sent` UInt64,
`upstream_cache_status` String,
`upstream_connect_time` Float32,
`upstream_header_time` Float32,
`upstream_response_length` UInt64,
`upstream_response_time` Float32,
`upstream_status` UInt16,
`upstream_content_type` String,
INDEX idx_http_host request_http_host TYPE set(0) GRANULARITY 1
)
ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(timestamp)
ORDER BY timestamp
TTL timestamp + toIntervalMonth(1)
SETTINGS index_granularity = 8192;Sijonga ukuba iitafile zenziwe. Masiqalise clickhouse-client kwaye wenze isicelo.
Makhe siye kwisiseko sedatha yevektha.
use vector;
Ok.
0 rows in set. Elapsed: 0.001 sec.Makhe sijonge ezitafileni.
show tables;
ββnameβββββββββββββββββ
β logs β
βββββββββββββββββββββββUkufakela i-elasticsearch kwi-server yesi-4 ukuthumela idatha efanayo kwi-Elasticsearch ukuze ithelekiswe kunye neClickhouse
Yongeza iqhosha likawonke-wonke le-rpm
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchMasidale i-2 repo:
/etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md/etc/yum.repos.d/kibana.repo
[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-mdFaka elasticsearch kunye nekibana
yum install -y kibana elasticsearchKuba iya kuba kwikopi enye, kufuneka udibanise oku kulandelayo kwifayile /etc/elasticsearch/elasticsearch.yml:
discovery.type: single-nodeKe loo vector inokuthumela idatha kwi-elasticsearch kwenye iseva, masitshintshe network.host.
network.host: 0.0.0.0Ukuqhagamshela kwi-kibana, tshintsha i-server.host parameter kwifayile /etc/kibana/kibana.yml
server.host: "0.0.0.0"Indala kwaye iquka i-elasticsearch kwi-autostart
systemctl enable elasticsearch
systemctl start elasticsearchkunye nekibana
systemctl enable kibana
systemctl start kibanaUkuqwalasela i-Elasticsearch yemowudi ye-single-node i-1 shard, i-0 replica. Okunokwenzeka ukuba uya kuba neqela lenani elikhulu labancedisi kwaye awudingi ukwenza oku.
Kwizalathisi zexesha elizayo, hlaziya itemplate ehlala ikho:
curl -X PUT http://localhost:9200/_template/default -H 'Content-Type: application/json' -d '{"index_patterns": ["*"],"order": -1,"settings": {"number_of_shards": "1","number_of_replicas": "0"}}' isicwangciso njengokutshintsha kweLogstash kwiseva yesi-2
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpm mc httpd-tools screenMasiseke iVector njengokutshintsha kweLogstash. Ukuhlela ifayile /etc/vector/vector.toml
# /etc/vector/vector.toml
data_dir = "/var/lib/vector"
[sources.nginx_input_vector]
# General
type = "vector"
address = "0.0.0.0:9876"
shutdown_timeout_secs = 30
[transforms.nginx_parse_json]
inputs = [ "nginx_input_vector" ]
type = "json_parser"
[transforms.nginx_parse_add_defaults]
inputs = [ "nginx_parse_json" ]
type = "lua"
version = "2"
hooks.process = """
function (event, emit)
function split_first(s, delimiter)
result = {};
for match in (s..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match);
end
return result[1];
end
function split_last(s, delimiter)
result = {};
for match in (s..delimiter):gmatch("(.-)"..delimiter) do
table.insert(result, match);
end
return result[#result];
end
event.log.upstream_addr = split_first(split_last(event.log.upstream_addr, ', '), ':')
event.log.upstream_bytes_received = split_last(event.log.upstream_bytes_received, ', ')
event.log.upstream_bytes_sent = split_last(event.log.upstream_bytes_sent, ', ')
event.log.upstream_connect_time = split_last(event.log.upstream_connect_time, ', ')
event.log.upstream_header_time = split_last(event.log.upstream_header_time, ', ')
event.log.upstream_response_length = split_last(event.log.upstream_response_length, ', ')
event.log.upstream_response_time = split_last(event.log.upstream_response_time, ', ')
event.log.upstream_status = split_last(event.log.upstream_status, ', ')
if event.log.upstream_addr == "" then
event.log.upstream_addr = "127.0.0.1"
end
if (event.log.upstream_bytes_received == "-" or event.log.upstream_bytes_received == "") then
event.log.upstream_bytes_received = "0"
end
if (event.log.upstream_bytes_sent == "-" or event.log.upstream_bytes_sent == "") then
event.log.upstream_bytes_sent = "0"
end
if event.log.upstream_cache_status == "" then
event.log.upstream_cache_status = "DISABLED"
end
if (event.log.upstream_connect_time == "-" or event.log.upstream_connect_time == "") then
event.log.upstream_connect_time = "0"
end
if (event.log.upstream_header_time == "-" or event.log.upstream_header_time == "") then
event.log.upstream_header_time = "0"
end
if (event.log.upstream_response_length == "-" or event.log.upstream_response_length == "") then
event.log.upstream_response_length = "0"
end
if (event.log.upstream_response_time == "-" or event.log.upstream_response_time == "") then
event.log.upstream_response_time = "0"
end
if (event.log.upstream_status == "-" or event.log.upstream_status == "") then
event.log.upstream_status = "0"
end
emit(event)
end
"""
[transforms.nginx_parse_remove_fields]
inputs = [ "nginx_parse_add_defaults" ]
type = "remove_fields"
fields = ["data", "file", "host", "source_type"]
[transforms.nginx_parse_coercer]
type = "coercer"
inputs = ["nginx_parse_remove_fields"]
types.request_length = "int"
types.request_time = "float"
types.response_status = "int"
types.response_body_bytes_sent = "int"
types.remote_port = "int"
types.upstream_bytes_received = "int"
types.upstream_bytes_send = "int"
types.upstream_connect_time = "float"
types.upstream_header_time = "float"
types.upstream_response_length = "int"
types.upstream_response_time = "float"
types.upstream_status = "int"
types.timestamp = "timestamp"
[sinks.nginx_output_clickhouse]
inputs = ["nginx_parse_coercer"]
type = "clickhouse"
database = "vector"
healthcheck = true
host = "http://172.26.10.109:8123" # ΠΠ΄ΡΠ΅Ρ Clickhouse
table = "logs"
encoding.timestamp_format = "unix"
buffer.type = "disk"
buffer.max_size = 104900000
buffer.when_full = "block"
request.in_flight_limit = 20
[sinks.elasticsearch]
type = "elasticsearch"
inputs = ["nginx_parse_coercer"]
compression = "none"
healthcheck = true
# 172.26.10.116 - ΡΠ΅ΡΠ²Π΅Ρ Π³Π΄Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π΅Π½ elasticsearch
host = "http://172.26.10.116:9200"
index = "vector-%Y-%m-%d"Ungalungisa icandelo transforms.nginx_parse_add_defaults.
ukususela isebenzisa olu qwalaselo lweCDN encinci kwaye kunokubakho amaxabiso amaninzi kumlambo_*
Umzekelo:
"upstream_addr": "128.66.0.10:443, 128.66.0.11:443, 128.66.0.12:443"
"upstream_bytes_received": "-, -, 123"
"upstream_status": "502, 502, 200"Ukuba oku akusiyo imeko yakho, ke eli candelo linokwenziwa lula
Masenze useto lwenkonzo ye-systemd /etc/systemd/system/vector.service
# /etc/systemd/system/vector.service
[Unit]
Description=Vector
After=network-online.target
Requires=network-online.target
[Service]
User=vector
Group=vector
ExecStart=/usr/bin/vector
ExecReload=/bin/kill -HUP $MAINPID
Restart=no
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=vector
[Install]
WantedBy=multi-user.targetEmva kokudala iitafile, unokuqhuba iVector
systemctl enable vector
systemctl start vectorIilog zeVector zinokujongwa ngolu hlobo:
journalctl -f -u vectorKufuneka kubekho amangeno anjengala kwiilog
INFO vector::topology::builder: Healthcheck: Passed.
INFO vector::topology::builder: Healthcheck: Passed.Kumxhasi (umncedisi wewebhu) - umncedisi we-1
Kumncedisi nge nginx, kufuneka ukhubaze ipv6, kuba itafile yelog kwindlu yokucofa isebenzisa umhlaba. upstream_addr IPv4, kuba andisebenzisi ipv6 ngaphakathi kuthungelwano. Ukuba i-ipv6 ayicinywanga, kuya kubakho iimpazamo:
DB::Exception: Invalid IPv4 value.: (while read the value of key upstream_addr)Mhlawumbi bafundi, yongeza inkxaso ye-ipv6.
Yenza ifayile /etc/sysctl.d/98-disable-ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1Ukusebenzisa useto
sysctl --systemMasifake nginx.
Yongezwe ifayile yenginx /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=trueFaka ipakethe ye nginx
yum install -y nginxOkokuqala, kufuneka siqwalasele ifomati yelog kwiNginx kwifayile /etc/nginx/nginx.conf
user nginx;
# you must set worker processes based on your CPU cores, nginx does not benefit from setting more than that
worker_processes auto; #some last versions calculate it automatically
# number of file descriptors used for nginx
# the limit for the maximum FDs on the server is usually set by the OS.
# if you don't set FD's then OS settings will be used which is by default 2000
worker_rlimit_nofile 100000;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
# provides the configuration file context in which the directives that affect connection processing are specified.
events {
# determines how much clients will be served per worker
# max clients = worker_connections * worker_processes
# max clients is also limited by the number of socket connections available on the system (~64k)
worker_connections 4000;
# optimized to serve many clients with each thread, essential for linux -- for testing environment
use epoll;
# accept as many connections as possible, may flood worker connections if set too low -- for testing environment
multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
log_format vector escape=json
'{'
'"node_name":"nginx-vector",'
'"timestamp":"$time_iso8601",'
'"server_name":"$server_name",'
'"request_full": "$request",'
'"request_user_agent":"$http_user_agent",'
'"request_http_host":"$http_host",'
'"request_uri":"$request_uri",'
'"request_scheme": "$scheme",'
'"request_method":"$request_method",'
'"request_length":"$request_length",'
'"request_time": "$request_time",'
'"request_referrer":"$http_referer",'
'"response_status": "$status",'
'"response_body_bytes_sent":"$body_bytes_sent",'
'"response_content_type":"$sent_http_content_type",'
'"remote_addr": "$remote_addr",'
'"remote_port": "$remote_port",'
'"remote_user": "$remote_user",'
'"upstream_addr": "$upstream_addr",'
'"upstream_bytes_received": "$upstream_bytes_received",'
'"upstream_bytes_sent": "$upstream_bytes_sent",'
'"upstream_cache_status":"$upstream_cache_status",'
'"upstream_connect_time":"$upstream_connect_time",'
'"upstream_header_time":"$upstream_header_time",'
'"upstream_response_length":"$upstream_response_length",'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_status": "$upstream_status",'
'"upstream_content_type":"$upstream_http_content_type"'
'}';
access_log /var/log/nginx/access.log main;
access_log /var/log/nginx/access.json.log vector; # ΠΠΎΠ²ΡΠΉ Π»ΠΎΠ³ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ json
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}Ukuze ungaphuli ulungelelwaniso lwakho lwangoku, i-Nginx ikuvumela ukuba ube ne-access_log imiyalelo emininzi
access_log /var/log/nginx/access.log main; # Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π»ΠΎΠ³
access_log /var/log/nginx/access.json.log vector; # ΠΠΎΠ²ΡΠΉ Π»ΠΎΠ³ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ jsonUngalibali ukongeza umthetho kwi-logrotate yelog ezintsha (ngaphandle kokuba ifayile yelog iphela nge.log)
Susa default.conf ukusuka /etc/nginx/conf.d/
rm -f /etc/nginx/conf.d/default.confYongeza umamkeli obonakalayo /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name vhost1;
location / {
proxy_pass http://172.26.10.106:8080;
}
}Yongeza umamkeli obonakalayo /etc/nginx/conf.d/vhost2.conf
server {
listen 80;
server_name vhost2;
location / {
proxy_pass http://172.26.10.108:8080;
}
}Yongeza umamkeli obonakalayo /etc/nginx/conf.d/vhost3.conf
server {
listen 80;
server_name vhost3;
location / {
proxy_pass http://172.26.10.109:8080;
}
}Yongeza umamkeli obonakalayo /etc/nginx/conf.d/vhost4.conf
server {
listen 80;
server_name vhost4;
location / {
proxy_pass http://172.26.10.116:8080;
}
}Yongeza iinginginya ezibonakalayo (172.26.10.106 ip yomncedisi apho inginx ifakwe khona) kubo bonke abancedisi kwifayile /etc/hosts:
172.26.10.106 vhost1
172.26.10.106 vhost2
172.26.10.106 vhost3
172.26.10.106 vhost4Kwaye ukuba yonke into ilungile ngoko
nginx -t
systemctl restart nginxNgoku masiyifake ngokwethu
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpmMasenze ifayile yesethingi ye-systemd /etc/systemd/system/vector.service
[Unit]
Description=Vector
After=network-online.target
Requires=network-online.target
[Service]
User=vector
Group=vector
ExecStart=/usr/bin/vector
ExecReload=/bin/kill -HUP $MAINPID
Restart=no
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=vector
[Install]
WantedBy=multi-user.targetKwaye uqwalasele indawo yeFayilebeat kwi-/etc/vector/vector.toml config. Idilesi ye-IP 172.26.10.108 yidilesi ye-IP yomncedisi welog (Umncedisi weVector)
data_dir = "/var/lib/vector"
[sources.nginx_file]
type = "file"
include = [ "/var/log/nginx/access.json.log" ]
start_at_beginning = false
fingerprinting.strategy = "device_and_inode"
[sinks.nginx_output_vector]
type = "vector"
inputs = [ "nginx_file" ]
address = "172.26.10.108:9876"Ungalibali ukongeza i-user vector kwiqela elifanelekileyo ukuze ikwazi ukufunda iifayile zelog. Umzekelo, i-nginx kwi centos yenza iilog ngamalungelo eqela le-adm.
usermod -a -G adm vectorMasiqale inkonzo ye-vector
systemctl enable vector
systemctl start vectorIilog zeVector zinokujongwa ngolu hlobo:
journalctl -f -u vectorKufuneka kubekho ukungena okunje kwiilog
INFO vector::topology::builder: Healthcheck: Passed.Uvavanyo loxinzelelo
Uvavanyo lwenziwa kusetyenziswa i-Apache benchmark.
Iphakheji ye-httpd yezixhobo ifakwe kuzo zonke iiseva
Siqala ukuvavanya usebenzisa i-Apache benchmark ukusuka kwiiseva ezi-4 ezahlukeneyo kwisikrini. Okokuqala, siqalisa i-terminal ye-multiplexer yesikrini, kwaye emva koko siqala ukuvavanya usebenzisa i-Apache benchmark. Usebenza njani ngesikrini onokufumana kuyo .
Ukusuka kwiseva yoku-1
while true; do ab -H "User-Agent: 1server" -c 100 -n 10 -t 10 http://vhost1/; sleep 1; doneUkusuka kwiseva yoku-2
while true; do ab -H "User-Agent: 2server" -c 100 -n 10 -t 10 http://vhost2/; sleep 1; doneUkusuka kwiseva yoku-3
while true; do ab -H "User-Agent: 3server" -c 100 -n 10 -t 10 http://vhost3/; sleep 1; doneUkusuka kwiseva yoku-4
while true; do ab -H "User-Agent: 4server" -c 100 -n 10 -t 10 http://vhost4/; sleep 1; doneMakhe sijonge idatha kwiClickhouse
Yiya kwiClickhouse
clickhouse-client -h 172.26.10.109 -mUkwenza umbuzo weSQL
SELECT * FROM vector.logs;
ββnode_nameβββββ¬βββββββββββtimestampββ¬βserver_nameββ¬βuser_idββ¬βrequest_fullββββ¬βrequest_user_agentββ¬βrequest_http_hostββ¬βrequest_uriββ¬βrequest_schemeββ¬βrequest_methodββ¬βrequest_lengthββ¬βrequest_timeββ¬βrequest_referrerββ¬βresponse_statusββ¬βresponse_body_bytes_sentββ¬βresponse_content_typeββ¬βββremote_addrββ¬βremote_portββ¬βremote_userββ¬βupstream_addrββ¬βupstream_portββ¬βupstream_bytes_receivedββ¬βupstream_bytes_sentββ¬βupstream_cache_statusββ¬βupstream_connect_timeββ¬βupstream_header_timeββ¬βupstream_response_lengthββ¬βupstream_response_timeββ¬βupstream_statusββ¬βupstream_content_typeββ
β nginx-vector β 2020-08-07 04:32:42 β vhost1 β β GET / HTTP/1.0 β 1server β vhost1 β / β http β GET β 66 β 0.028 β β 404 β 27 β β 172.26.10.106 β 45886 β β 172.26.10.106 β 0 β 109 β 97 β DISABLED β 0 β 0.025 β 27 β 0.029 β 404 β β
ββββββββββββββββ΄ββββββββββββββββββββββ΄ββββββββββββββ΄ββββββββββ΄βββββββββββββββββ΄βββββββββββββββββββββ΄ββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββββββββββββββ΄βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββFumana ubungakanani beetafile eClickhouse
select concat(database, '.', table) as table,
formatReadableSize(sum(bytes)) as size,
sum(rows) as rows,
max(modification_time) as latest_modification,
sum(bytes) as bytes_size,
any(engine) as engine,
formatReadableSize(sum(primary_key_bytes_in_memory)) as primary_keys_size
from system.parts
where active
group by database, table
order by bytes_size desc;Makhe sifumanise ukuba zingaphi iinkuni ezithathwe kwiClickhouse.

Ubungakanani betafile yelog yi-857.19 MB.

Ubungakanani bedatha efanayo kwisalathiso kwi-Elasticsearch yi-4,5GB.
Ukuba awukhankanyi idatha kwi-vector kwiiparameters, i-Clickhouse ithatha i-4500 / 857.19 = amaxesha angama-5.24 ngaphantsi kwe-Elasticsearch.
Kwi-vector, indawo yoxinzelelo isetyenziswa ngokungagqibekanga.
Incoko yeTelegram ngu
Incoko yeTelegram ngu
Incoko yeTelegram ngu ""
umthombo: www.habr.com
