
, gidesinyo sa pagkolekta, pagbag-o ug pagpadala sa data sa log, metrics ug mga panghitabo.
β
Gisulat sa Rust nga pinulongan, kini gihulagway sa taas nga performance ug ubos nga konsumo sa RAM kumpara sa mga analogue niini. Dugang pa, daghang pagtagad ang gihatag sa mga gimbuhaton nga may kalabotan sa pagkatul-id, labi na, ang abilidad sa pagtipig sa wala ipadala nga mga panghitabo sa usa ka buffer sa disk ug pag-rotate sa mga file.
Sa arkitektura, ang Vector usa ka router sa panghitabo nga nakadawat mga mensahe gikan sa usa o daghan pa mga gigikanan, opsyonal nga mag-aplay niini nga mga mensahe mga pagbag-o, ug ipadala sila sa usa o daghan pa kanal.
Ang Vector usa ka puli sa filebeat ug logstash, mahimo kini molihok sa duha nga mga tahas (makadawat ug magpadala mga troso), daghang mga detalye bahin niini .
Kung sa Logstash ang kadena gitukod ingon input β filter β output unya sa Vector kini β β
Ang mga pananglitan makita sa dokumentasyon.
Kini nga instruksyon kay giusab nga instruksyon gikan sa . Ang orihinal nga mga panudlo naglangkob sa pagproseso sa geoip. Kung gisulayan ang geoip gikan sa usa ka internal nga network, ang vector naghatag usa ka sayup.
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=30Kung adunay kinahanglan nga magproseso sa geoip, i-refer ang orihinal nga mga panudlo gikan sa .
Atong i-configure ang kombinasyon sa Nginx (Access logs) β Vector (Client | Filebeat) β Vector (Server | Logstash) β gilain sa Clickhouse ug gilain sa Elasticsearch. Mag-instalar kami og 4 ka mga server. Bisan kung mahimo nimo kini laktawan sa 3 nga mga server.

Ang laraw sama niini.
I-disable ang Selinux sa tanan nimong mga server
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
rebootNag-instalar kami og HTTP server emulator + utilities sa tanang server
Ingon usa ka HTTP server emulator among gamiton gikan sa
Ang Nodejs-stub-server walay rpm. paghimo rpm alang niini. rpm i-compile gamit
Idugang ang repository sa antonpatsev/nodejs-stub-server
yum -y install yum-plugin-copr epel-release
yes | yum copr enable antonpatsev/nodejs-stub-serverI-install ang nodejs-stub-server, Apache benchmark ug screen terminal multiplexer sa tanang server
yum -y install stub_http_server screen mc httpd-tools screenGitul-id nako ang oras sa pagtubag sa stub_http_server sa /var/lib/stub_http_server/stub_http_server.js file aron adunay daghang mga troso.
var max_sleep = 10;Atong ilunsad ang stub_http_server.
systemctl start stub_http_server
systemctl enable stub_http_serversa server 3
Gigamit sa ClickHouse ang set sa panudlo sa SSE 4.2, busa gawas kung gitakda, ang suporta alang niini sa gigamit nga processor mahimong dugang nga kinahanglanon sa sistema. Ania ang sugo sa pagsusi kon ang kasamtangan nga processor nagsuporta sa SSE 4.2:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"Una kinahanglan nimo nga ikonektar ang opisyal nga repositoryo:
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_64Aron ma-install ang mga pakete kinahanglan nimo nga ipadagan ang mosunud nga mga mando:
sudo yum install -y clickhouse-server clickhouse-clientTugoti ang clickhouse-server nga maminaw sa network card sa file /etc/clickhouse-server/config.xml
<listen_host>0.0.0.0</listen_host>Pag-usab sa lebel sa pag-log gikan sa pagsubay ngadto sa debug
debug
Standard nga mga setting sa compression:
min_compress_block_size 65536
max_compress_block_size 1048576Aron ma-aktibo ang Zstd compression, gitambagan nga dili hikapon ang config, apan gamita ang DDL.

Dili nako makit-an kung giunsa paggamit ang zstd compression pinaagi sa DDL sa Google. Mao nga gibiyaan ko kini nga ingon.
Mga kauban nga naggamit sa zstd compression sa Clickhouse, palihug ipaambit ang mga panudlo.
Aron masugdan ang server isip usa ka daemon, pagdagan:
service clickhouse-server startKaron magpadayon kita sa pag-set up sa Clickhouse
Adto sa Clickhouse
clickhouse-client -h 172.26.10.109 -m172.26.10.109 β IP sa server diin gi-install ang Clickhouse.
Magbuhat ta ug vector database
CREATE DATABASE vector;Atong susihon nga ang database anaa.
show databases;Paghimo ug vector.logs table.
/* ΠΡΠΎ ΡΠ°Π±Π»ΠΈΡΠ° Π³Π΄Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π»ΠΎΠ³ΠΈ ΠΊΠ°ΠΊ Π΅ΡΡΡ */
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;Atong susihon nga ang mga lamesa nahimo na. Maglansad ta clickhouse-client ug paghimo usa ka hangyo.
Adto ta sa vector database.
use vector;
Ok.
0 rows in set. Elapsed: 0.001 sec.Atong tan-awon ang mga lamesa.
show tables;
ββnameβββββββββββββββββ
β logs β
βββββββββββββββββββββββPag-instalar sa elasticsearch sa 4th server aron ipadala ang parehas nga datos sa Elasticsearch alang sa pagtandi sa Clickhouse
Pagdugang og public rpm key
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchMaghimo kita og 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-mdI-install ang elasticsearch ug kibana
yum install -y kibana elasticsearchTungod kay kini anaa sa 1 ka kopya, kinahanglan nimong idugang ang mosunod sa /etc/elasticsearch/elasticsearch.yml file:
discovery.type: single-nodeAron ang vector makapadala ug data sa elasticsearch gikan sa laing server, usbon nato ang network.host.
network.host: 0.0.0.0Aron makonektar sa kibana, usba ang server.host parameter sa file /etc/kibana/kibana.yml
server.host: "0.0.0.0"Daan ug naglakip sa elasticsearch sa autostart
systemctl enable elasticsearch
systemctl start elasticsearchug kibana
systemctl enable kibana
systemctl start kibanaPag-configure sa Elasticsearch alang sa single-node mode 1 shard, 0 replica. Lagmit adunay usa ka kumpol sa daghang mga server ug dili nimo kinahanglan buhaton kini.
Para sa umaabot nga mga index, i-update ang default template:
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"}}' Pag-instalar isip puli sa Logstash sa server 2
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpm mc httpd-tools screenAtong i-set up ang Vector isip puli sa Logstash. Pag-edit sa file /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"Mahimo nimong i-adjust ang transforms.nginx_parse_add_defaults nga seksyon.
sukad sa gigamit kini nga mga config alang sa usa ka gamay nga CDN ug adunay daghang mga kantidad sa upstream_*
Pananglitan:
"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"Kung dili kini ang imong kahimtang, nan kini nga seksyon mahimong pasimplehon
Himoon nato ang mga setting sa serbisyo para sa 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.targetHuman sa paghimo sa mga lamesa, mahimo nimong ipadagan ang Vector
systemctl enable vector
systemctl start vectorAng mga vector log mahimong tan-awon sama niini:
journalctl -f -u vectorKinahanglan adunay mga entries nga sama niini sa mga log
INFO vector::topology::builder: Healthcheck: Passed.
INFO vector::topology::builder: Healthcheck: Passed.Sa kliyente (Web server) - 1st server
Sa server nga adunay nginx, kinahanglan nimo nga i-disable ang ipv6, tungod kay ang logs table sa clickhouse naggamit sa field upstream_addr IPv4, tungod kay wala ko mogamit ipv6 sulod sa network. Kung ang ipv6 wala gipalong, adunay mga sayup:
DB::Exception: Invalid IPv4 value.: (while read the value of key upstream_addr)Tingali mga magbabasa, idugang ang suporta sa ipv6.
Paghimo sa file /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 = 1Pagpadapat sa mga setting
sysctl --systemAtong i-install ang nginx.
Gidugang ang nginx repository file /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=trueI-install ang nginx package
yum install -y nginxUna, kinahanglan natong i-configure ang log format sa Nginx sa file /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;
}Aron dili mabungkag ang imong kasamtangan nga pag-configure, gitugotan ka sa Nginx nga adunay daghang mga direktiba sa access_log
access_log /var/log/nginx/access.log main; # Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π»ΠΎΠ³
access_log /var/log/nginx/access.json.log vector; # ΠΠΎΠ²ΡΠΉ Π»ΠΎΠ³ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ jsonAyaw kalimti ang pagdugang ug lagda sa pag-logrotate para sa mga bag-ong log (kung ang log file dili matapos sa .log)
Kuhaa ang default.conf gikan sa /etc/nginx/conf.d/
rm -f /etc/nginx/conf.d/default.confIdugang ang virtual host /etc/nginx/conf.d/vhost1.conf
server {
listen 80;
server_name vhost1;
location / {
proxy_pass http://172.26.10.106:8080;
}
}Idugang ang virtual host /etc/nginx/conf.d/vhost2.conf
server {
listen 80;
server_name vhost2;
location / {
proxy_pass http://172.26.10.108:8080;
}
}Idugang ang virtual host /etc/nginx/conf.d/vhost3.conf
server {
listen 80;
server_name vhost3;
location / {
proxy_pass http://172.26.10.109:8080;
}
}Idugang ang virtual host /etc/nginx/conf.d/vhost4.conf
server {
listen 80;
server_name vhost4;
location / {
proxy_pass http://172.26.10.116:8080;
}
}Idugang ang mga virtual nga host (172.26.10.106 ip sa server diin gi-install ang nginx) sa tanan nga mga server sa /etc/hosts file:
172.26.10.106 vhost1
172.26.10.106 vhost2
172.26.10.106 vhost3
172.26.10.106 vhost4Ug kung andam na ang tanan
nginx -t
systemctl restart nginxKaron atong i-install kini sa atong kaugalingon
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpmMagbuhat ta ug settings file para sa 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.targetUg i-configure ang puli sa Filebeat sa /etc/vector/vector.toml config. Ang IP address 172.26.10.108 mao ang IP address sa log server (Vector-Server)
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"ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ·Π΅ΡΠ° vector Π² Π½ΡΠΆΠ½ΡΡ Π³ΡΡΠΏΠΏΡ ΡΡΠΎ Π±Ρ ΠΎΠ½ ΠΌΠΎΠ³ ΡΠΈΡΠ°ΡΡ log ΡΠ°ΠΉΠ»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, nginx Π² centos ΡΠΎΠ·Π΄Π°Π΅Ρ Π»ΠΎΠ³ΠΈ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π³ΡΡΠΏΠΏΡ adm.
usermod -a -G adm vectorAtong sugdan ang serbisyo sa vector
systemctl enable vector
systemctl start vectorAng mga vector log mahimong tan-awon sama niini:
journalctl -f -u vectorKinahanglan adunay usa ka entry nga sama niini sa mga troso
INFO vector::topology::builder: Healthcheck: Passed.Pagsulay sa Stress
Nagpahigayon kami og pagsulay gamit ang Apache benchmark.
Ang httpd-tools package na-install sa tanang server
Nagsugod kami sa pagsulay gamit ang Apache benchmark gikan sa 4 nga lainlaing mga server sa screen. Una, gilansad namo ang screen terminal multiplexer, ug dayon magsugod kami sa pagsulay gamit ang Apache benchmark. Giunsa pagtrabaho ang screen nga imong makit-an sa .
Gikan sa 1st server
while true; do ab -H "User-Agent: 1server" -c 100 -n 10 -t 10 http://vhost1/; sleep 1; doneGikan sa 2st server
while true; do ab -H "User-Agent: 2server" -c 100 -n 10 -t 10 http://vhost2/; sleep 1; doneGikan sa 3st server
while true; do ab -H "User-Agent: 3server" -c 100 -n 10 -t 10 http://vhost3/; sleep 1; doneGikan sa 4st server
while true; do ab -H "User-Agent: 4server" -c 100 -n 10 -t 10 http://vhost4/; sleep 1; doneAtong susihon ang datos sa Clickhouse
Adto sa Clickhouse
clickhouse-client -h 172.26.10.109 -mPaghimo usa ka pangutana sa SQL
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 β β
ββββββββββββββββ΄ββββββββββββββββββββββ΄ββββββββββββββ΄ββββββββββ΄βββββββββββββββββ΄βββββββββββββββββββββ΄ββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββββ΄βββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββββββββββββββ΄βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββHibal-i ang gidak-on sa mga lamesa sa Clickhouse
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;Atong hibal-an kung pila ang nakuha nga mga troso sa Clickhouse.

Ang gidak-on sa lamesa sa mga troso mao ang 857.19 MB.

Ang gidak-on sa parehas nga datos sa indeks sa Elasticsearch mao ang 4,5GB.
Kung dili nimo ipiho ang datos sa vector sa mga parameter, ang Clickhouse nagkuha 4500/857.19 = 5.24 ka beses nga mas ubos kaysa sa Elasticsearch.
Sa vector, ang compression field gigamit nga default.
Telegram chat pinaagi sa
Telegram chat pinaagi sa
Telegram chat pinaagi sa ""
Source: www.habr.com
