โ
เจเฉฐเจเจพเจฒ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพ เจฐเจฟเจนเจพ เจนเฉ, เจเจน เจเจธเจฆเฉ เจเจจเจพเจฒเจพเจเจธ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ เจคเฉ เจเฉฑเจ RAM เจฆเฉ เจเจชเจค เจฆเฉเจเจฐเจพ เจฆเจฐเจธเจพเจเจ เจเจฟเจ เจนเฉเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจธเจผเฉเฉฑเจงเจคเจพ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจซเฉฐเจเจธเจผเจจเจพเจ 'เจคเฉ เจฌเจนเฉเจค เจงเจฟเจเจจ เจฆเจฟเฉฑเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, เจกเจฟเจธเจ เจฆเฉ เจฌเจซเจฐ เจ เจคเฉ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉฐเจฎเจพเจเจฃ เจฒเจ เจจเจพ เจญเฉเจเฉเจเจ เจเจเจจเจพเจตเจพเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ.
เจเจฐเจเฉเจเฉเจเจเจฐเจฒ เจคเฉเจฐ 'เจคเฉ, เจตเฉเจเจเจฐ เจเฉฑเจ เจเจตเฉเจเจ เจฐเจพเจเจเจฐ เจนเฉ เจเฉ เจเฉฑเจ เจเจพเจ เจตเฉฑเจง เจคเฉเจ เจธเฉเจจเฉเจนเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเจพ เจนเฉ เจธเจฐเฉเจค, เจตเจฟเจเจฒเจชเจฟเจ เจคเฉเจฐ 'เจคเฉ เจเจนเจจเจพเจ เจธเฉเจจเฉเจนเจฟเจเจ 'เจคเฉ เจฒเจพเจเฉ เจเจฐเจจเจพ เจคเจฌเจฆเฉเจฒเฉเจเจ, เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจเจพเจ เจเฉฑเจ เจคเฉเจ เจตเฉฑเจง เจจเฉเฉฐ เจญเฉเจเจฃเจพ เจจเจพเจฒเฉเจเจ.
เจตเฉเจเจเจฐ เจซเจพเจเจฒเจฌเฉเจ เจ
เจคเฉ เจฒเฉเจเจธเจเฉเจธเจผ เจฆเจพ เจฌเจฆเจฒ เจนเฉ, เจเจน เจฆเฉเจตเฉเจ เจญเฉเจฎเจฟเจเจพเจตเจพเจ (เจฒเจพเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจ
เจคเฉ เจญเฉเจเจฃเจพ) เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเจพ เจนเฉ, เจเจนเจจเจพเจ เจฌเจพเจฐเฉ เจนเฉเจฐ เจตเฉเจฐเจตเฉ
เจเฉเจเจฐ เจฒเฉเจเจธเจเฉเจธเจผ เจตเจฟเฉฑเจ เจเฉเจจ เจจเฉเฉฐ เจเจจเจชเฉเจ โ เจซเจฟเจฒเจเจฐ โ เจเจเจเจชเฉเฉฑเจ เจฆเฉ เจคเฉเจฐ เจคเฉ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ เจคเจพเจ เจตเฉเจเจเจฐ เจตเจฟเฉฑเจ เจเจน เจนเฉ
เจเจฆเจพเจนเจฐเจจเจพเจ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจตเจฟเฉฑเจ เจฎเจฟเจฒ เจธเจเจฆเฉเจเจ เจนเจจเฅค
เจเจน เจนเจฆเจพเจเจค เจคเฉเจ เจเฉฑเจ เจธเฉเจงเจฟเจ เจนเฉเจเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจนเฉ
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=30
เจเฉ เจเจฟเจธเฉ เจจเฉเฉฐ เจเฉเจเจเจเจชเฉ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจฎเฉเจฒ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจจเฉเฉฐ เจตเฉเจเฉ
เจ เจธเฉเจ Nginx (เจเจเจธเฉเจธ เจฒเฉเจ) โ เจตเฉเจเจเจฐ (เจเจฒเจพเจเฉฐเจ | เจซเจพเจเจฒเจฌเฉเจ) โ เจตเฉเจเจเจฐ (เจธเจฐเจตเจฐ | เจฒเฉเจเจธเจเฉเจธเจผ) โ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจ เจคเฉ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ Elasticsearch เจตเจฟเฉฑเจ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจพเจเจเฉเฅค เจ เจธเฉเจ 4 เจธเจฐเจตเจฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจพเจเจเฉเฅค เจนเจพเจฒเจพเจเจเจฟ เจคเฉเจธเฉเจ เจเจธ เจจเฉเฉฐ 3 เจธเจฐเจตเจฐเจพเจ เจจเจพเจฒ เจฌเจพเจเจชเจพเจธ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจธเจเฉเจฎ เจเฉเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉเฅค
เจเจชเจฃเฉ เจธเจพเจฐเฉ เจธเจฐเจตเจฐเจพเจ 'เจคเฉ เจธเฉเจฒเจฟเจจเจเจธ เจจเฉเฉฐ เจ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
reboot
เจ เจธเฉเจ เจธเจพเจฐเฉ เจธเจฐเจตเจฐเจพเจ 'เจคเฉ เจเฉฑเจ HTTP เจธเจฐเจตเจฐ เจเจฎเฉเจฒเฉเจเจฐ + เจเจชเจฏเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจฆเฉ เจนเจพเจ
เจเฉฑเจ HTTP เจธเจฐเจตเจฐ เจเจฎเฉเจฒเฉเจเจฐ เจตเจเฉเจ เจ
เจธเฉเจ เจตเจฐเจคเจพเจเจเฉ
Nodejs-stub-server เจเฉเจฒ rpm เจจเจนเฉเจ เจนเฉเฅค
antonpatsev/nodejs-stub-server เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
yum -y install yum-plugin-copr epel-release
yes | yum copr enable antonpatsev/nodejs-stub-server
เจธเจพเจฐเฉ เจธเจฐเจตเจฐเจพเจ 'เจคเฉ nodejs-stub-server, Apache เจฌเฉเจเจเจฎเจพเจฐเจ เจ เจคเฉ เจธเจเฉเจฐเฉเจจ เจเจฐเจฎเฉเจจเจฒ เจฎเจฒเจเฉเจชเจฒเฉเจเจธเจฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ
yum -y install stub_http_server screen mc httpd-tools screen
เจฎเฉเจ /var/lib/stub_http_server/stub_http_server.js เจซเจพเจเจฒ เจตเจฟเฉฑเจ stub_http_server เจเจตเจพเจฌ เจธเจฎเจพเจ เจ เฉเจ เจเฉเจคเจพ เจนเฉ เจคเจพเจ เจเฉ เจนเฉเจฐ เจฒเฉเจเจธ เจนเฉเจฃเฅค
var max_sleep = 10;
เจเจฒเฉ stub_http_server เจฒเจพเจเจ เจเจฐเฉเจเฅค
systemctl start stub_http_server
systemctl enable stub_http_server
เจเจฒเจฟเจเจนเจพเจเจธ เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจธเจฐเจตเจฐ 3 'เจคเฉ
เจเจฒเจฟเจเจนเจพเจเจธ SSE 4.2 เจจเจฟเจฐเจฆเฉเจธเจผ เจธเฉเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจเจธเจฒเจ เจเจฆเฉเจ เจคเฉฑเจ เจนเฉเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ, เจตเจฐเจคเฉ เจเจ เจชเฉเจฐเฉเจธเฉเจธเจฐ เจตเจฟเฉฑเจ เจเจธเจฆเจพ เจธเจฎเจฐเจฅเจจ เจเฉฑเจ เจตเจพเจงเฉ เจธเจฟเจธเจเจฎ เจฒเฉเฉ เจฌเจฃ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจเจพเจเจ เจเจฐเจจ เจฒเจ เจเจฎเจพเจเจก เจนเฉ เจเจฟ เจเฉ เจฎเฉเจเฉเจฆเจพ เจชเฉเจฐเฉเจธเฉเจธเจฐ SSE 4.2 เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ:
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
เจชเจนเจฟเจฒเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจ เจงเจฟเจเจพเจฐเจค เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจจเจพเจฒ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
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_64
เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจ เจฒเจฟเจเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ:
sudo yum install -y clickhouse-server clickhouse-client
เจเจฒเจฟเฉฑเจเจนเจพเจเจธ-เจธเจฐเจตเจฐ เจจเฉเฉฐ เจซเจพเจเจฒ /etc/clickhouse-server/config.xml เจตเจฟเฉฑเจ เจจเฉเฉฑเจเจตเจฐเจ เจเจพเจฐเจก เจธเฉเจฃเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเจ
<listen_host>0.0.0.0</listen_host>
เจฒเฉเจเจฟเฉฐเจ เจชเฉฑเจงเจฐ เจจเฉเฉฐ เจเจฐเฉเจธ เจคเฉเจ เจกเฉเจฌเฉฑเจ เจคเฉฑเจ เจฌเจฆเจฒเจฃเจพ
เจกเฉเจฌเฉฑเจ
เจธเจเฉเจเจกเจฐเจก เจเฉฐเจชเจฐเฉเจธเจผเจจ เจธเฉเจเจฟเฉฐเจเจเจผ:
min_compress_block_size 65536
max_compress_block_size 1048576
Zstd เจเฉฐเจชเจฐเฉเจธเจผเจจ เจจเฉเฉฐ เจธเจฐเจเจฐเจฎ เจเจฐเจจ เจฒเจ, เจเจธ เจจเฉเฉฐ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจจเจพ เจเฉเจนเจฃ เจฆเฉ เจธเจฒเจพเจน เจฆเจฟเฉฑเจคเฉ เจเจ เจธเฉ, เจธเจเฉเจ DDL เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจธเจฒเจพเจน เจฆเจฟเฉฑเจคเฉ เจเจ เจธเฉเฅค
เจฎเฉเจจเฉเฉฐ Google เจตเจฟเฉฑเจ DDL เจฐเจพเจนเฉเจ zstd เจเฉฐเจชเจฐเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฟเจตเฉเจ เจเจฐเจจเฉ เจนเฉ เจเจน เจจเจนเฉเจ เจฒเฉฑเจญ เจธเจเจฟเจเฅค เจเจธ เจฒเจ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเจฟเจตเฉเจ เจนเฉ เจเฉฑเจก เจฆเจฟเฉฑเจคเจพ.
เจธเจนเจฟเจเจฐเจฎเฉ เจเฉ เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ zstd เจเฉฐเจชเจฐเฉเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจ, เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจจเฉเฉฐ เจธเจพเจเจเจพ เจเจฐเฉเฅค
เจธเจฐเจตเจฐ เจจเฉเฉฐ เจกเฉเจฎเจจ เจตเจเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจเจฒเจพเจ:
service clickhouse-server start
เจนเฉเจฃ เจเจ เจเจฒเจฟเจเจนเจพเจเจธ เจจเฉเฉฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจฒเจ เจ เฉฑเจเฉ เจตเจงเฉเจ
เจเจฒเจฟเจเจนเจพเจเจธ 'เจคเฉ เจเจพเจ
clickhouse-client -h 172.26.10.109 -m
172.26.10.109 โ เจธเจฐเจตเจฐ เจฆเจพ IP เจเจฟเฉฑเจฅเฉ เจเจฒเจฟเจเจนเจพเจเจธ เจเฉฐเจธเจเจพเจฒ เจนเฉเฅค
เจเจฒเฉ เจเฉฑเจ เจตเฉเจเจเจฐ เจกเฉเจเจพเจฌเฉเจธ เจฌเจฃเจพเจเจ
CREATE DATABASE vector;
เจเจฒเฉ เจเจพเจเจ เจเจฐเฉเจ เจเจฟ เจกเฉเจเจพเจฌเฉเจธ เจฎเฉเจเฉเจฆ เจนเฉเฅค
show databases;
เจเฉฑเจ vector.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;
เจ
เจธเฉเจ เจเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ เจเฉเจฌเจฒ เจฌเจฃเจพเจ เจเจ เจนเจจเฅค เจเจฒเฉ เจฒเจพเจเจ เจเจฐเฉเจ clickhouse-client
เจ
เจคเฉ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจเจฐเฉเฅค
เจเจฒเฉ เจตเฉเจเจเจฐ เจกเฉเจเจพเจฌเฉเจธ เจคเฉ เจเฉฑเจฒเฉเจเฅค
use vector;
Ok.
0 rows in set. Elapsed: 0.001 sec.
เจเจ เจเฉเจฌเจฒเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ.
show tables;
โโnameโโโโโโโโโโโโโโโโโ
โ logs โ
โโโโโโโโโโโโโโโโโโโโโโโ
เจเจฒเจฟเจเจนเจพเจเจธ เจจเจพเจฒ เจคเฉเจฒเจจเจพ เจเจฐเจจ เจฒเจ เจเจนเฉ เจกเฉเจเจพ Elasticsearch เจจเฉเฉฐ เจญเฉเจเจฃ เจฒเจ เจเฉเจฅเฉ เจธเจฐเจตเจฐ 'เจคเฉ elasticsearch เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเจจเจพ
เจเฉฑเจ เจเจจเจคเจ rpm เจเฉเฉฐเจเฉ เจเฉเฉเฉ
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
เจเจ 2 เจฐเฉเจชเฉ เจฌเจฃเจพเจเจ:
/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-md
elasticsearch เจ เจคเฉ kibana เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
yum install -y kibana elasticsearch
เจเจฟเจเจเจเจฟ เจเจน 1 เจเจพเจชเฉ เจตเจฟเฉฑเจ เจนเฉเจตเฉเจเจพ, เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจ เจฒเจฟเจเฉ เจจเฉเฉฐ /etc/elasticsearch/elasticsearch.yml เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
discovery.type: single-node
เจคเจพเจ เจเฉ เจตเฉเจเจเจฐ เจเจฟเจธเฉ เจนเฉเจฐ เจธเจฐเจตเจฐ เจคเฉเจ elasticsearch เจจเฉเฉฐ เจกเฉเจเจพ เจญเฉเจ เจธเจเฉ, เจเจ network.host เจจเฉเฉฐ เจฌเจฆเจฒเฉเจเฅค
network.host: 0.0.0.0
เจเจฟเจฌเจพเจจเจพ เจจเจพเจฒ เจเฉเฉเจจ เจฒเจ, เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเจฐเจตเจฐ.เจนเฉเจธเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฌเจฆเจฒเฉ /etc/kibana/kibana.yml
server.host: "0.0.0.0"
เจชเฉเจฐเจพเจฃเฉ เจ เจคเฉ เจเจเฉเจธเจเจพเจฐเจ เจตเจฟเฉฑเจ elasticsearch เจธเจผเจพเจฎเจฒ เจเจฐเฉ
systemctl enable elasticsearch
systemctl start elasticsearch
เจ เจคเฉ เจเจฟเจฌเจพเจจเจพ
systemctl enable kibana
systemctl start kibana
เจธเจฟเฉฐเจเจฒ-เจจเฉเจก เจฎเฉเจก 1 เจธเจผเจพเจฐเจก, 0 เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉ เจฒเจ Elasticsearch เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจเจพเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉ เจเจฟ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจตเฉฑเจกเฉ เจเจฟเจฃเจคเฉ เจตเจฟเฉฑเจ เจธเจฐเจตเจฐเจพเจ เจฆเจพ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจนเฉเจตเฉเจเจพ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจ เจเจฟเจนเจพ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
เจญเจตเจฟเฉฑเจเฉ เจธเฉเจเจเจพเจเจ เจฒเจ, เจกเจฟเจซเฉเจฒเจ เจเฉเจฎเจชเจฒเฉเจ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเฉ:
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"}}'
เจธเฉเจเจฟเฉฐเจ เจตเฉเจเจเจฐ เจธเจฐเจตเจฐ 2 'เจคเฉ Logstash เจฆเฉ เจฌเจฆเจฒ เจตเจเฉเจ
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpm mc httpd-tools screen
เจเจฒเฉ เจฒเฉเจเจธเจเฉเจธเจผ เจฆเฉ เจฌเจฆเจฒ เจตเจเฉเจ เจตเฉเจเจเจฐ เจจเฉเฉฐ เจธเฉเจ เจ เจช เจเจฐเฉเจเฅค เจซเจพเจเจฒ เจจเฉเฉฐ เจธเฉเจงเจฃเจพ /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"
เจคเฉเจธเฉเจ transforms.nginx_parse_add_defaults เจญเจพเจ เจจเฉเฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจฒเฉ
เจเจฆเจพเจนเจฐเจจ เจฒเจ:
"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"
เจเฉ เจเจน เจคเฉเจนเจพเจกเฉ เจธเจฅเจฟเจคเฉ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจธ เจญเจพเจ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ
เจเจฒเฉ 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.target
เจเฉเจฌเจฒ เจฌเจฃเจพเจเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจคเฉเจธเฉเจ เจตเฉเจเจเจฐ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ
systemctl enable vector
systemctl start vector
เจตเฉเจเจเจฐ เจฒเฉเจเจธ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
journalctl -f -u vector
เจฒเจพเจเจพเจ เจตเจฟเฉฑเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉเจเจ เจเจเจเจฐเฉเจเจ เจนเฉเจฃเฉเจเจ เจเจพเจนเฉเจฆเฉเจเจ เจนเจจ
INFO vector::topology::builder: Healthcheck: Passed.
INFO vector::topology::builder: Healthcheck: Passed.
เจเจฒเจพเจเฉฐเจ (เจตเฉเฉฑเจฌ เจธเจฐเจตเจฐ) 'เจคเฉ - เจชเจนเจฟเจฒเจพ เจธเจฐเจตเจฐ
nginx เจตเจพเจฒเฉ เจธเจฐเจตเจฐ 'เจคเฉ, เจคเฉเจนเจพเจจเฉเฉฐ ipv6 เจจเฉเฉฐ เจ
เจฏเฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฟเจเจเจเจฟ เจเจฒเจฟเฉฑเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจฒเฉเจเจธ เจเฉเจฌเจฒ เจเฉเจคเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ upstream_addr
IPv4, เจเจฟเจเจเจเจฟ เจฎเฉเจ เจจเฉเฉฑเจเจตเจฐเจ เจฆเฉ เจ
เฉฐเจฆเจฐ ipv6 เจฆเฉ เจตเจฐเจคเฉเจ เจจเจนเฉเจ เจเจฐเจฆเจพเฅค เจเฉเจเจฐ ipv6 เจฌเฉฐเจฆ เจจเจนเฉเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจคเจพเจ เจเจฒเจคเฉเจเจ เจนเฉเจฃเจเฉเจเจ:
DB::Exception: Invalid IPv4 value.: (while read the value of key upstream_addr)
เจธเจผเจพเจเจฆ เจชเจพเจ เจ, ipv6 เจธเจนเจฟเจฏเฉเจ เจเฉเฉเฉเฅค
เจซเจพเจเจฒ เจฌเจฃเจพเจ /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 = 1
เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ
sysctl --system
เจเจฒเฉ nginx เจเฉฐเจธเจเจพเจฒ เจเจฐเฉเจเฅค
nginx เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจซเจพเจเจฒ /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=true
nginx เจชเฉเจเฉเจ เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
yum install -y nginx
เจชเจนเจฟเจฒเจพเจ, เจธเจพเจจเฉเฉฐ Nginx เจตเจฟเฉฑเจ เจฒเจพเจ เจซเจพเจฐเจฎเฉเจ เจจเฉเฉฐ /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;
}
เจคเฉเจนเจพเจกเฉ เจฎเฉเจเฉเจฆเจพ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจจเจพ เจคเฉเฉเจจ เจฒเจ, Nginx เจคเฉเจนเจพเจจเฉเฉฐ เจเจ เจเจเจธเฉเจธ_เจฒเฉเจ เจจเจฟเจฐเจฆเฉเจธเจผเจพเจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ
access_log /var/log/nginx/access.log main; # ะกัะฐะฝะดะฐััะฝัะน ะปะพะณ
access_log /var/log/nginx/access.json.log vector; # ะะพะฒัะน ะปะพะณ ะฒ ัะพัะผะฐัะต json
เจจเจตเฉเจ เจฒเฉเจเจธ เจฒเจ เจฒเฉเจเจฐเฉเจเฉเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจจเจฟเจฏเจฎ เจเฉเฉเจจเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ (เจเฉเจเจฐ เจฒเฉเจ เจซเจพเจเจฒ .log เจจเจพเจฒ เจเจคเจฎ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉ)
/etc/nginx/conf.d/ เจคเฉเจ default.conf เจนเจเจพเจ
rm -f /etc/nginx/conf.d/default.conf
เจตเจฐเจเฉเจ เจฒ เจนเฉเจธเจ /etc/nginx/conf.d/vhost1.conf เจธเจผเจพเจฎเจฒ เจเจฐเฉ
server {
listen 80;
server_name vhost1;
location / {
proxy_pass http://172.26.10.106:8080;
}
}
เจตเจฐเจเฉเจ เจฒ เจนเฉเจธเจ /etc/nginx/conf.d/vhost2.conf เจธเจผเจพเจฎเจฒ เจเจฐเฉ
server {
listen 80;
server_name vhost2;
location / {
proxy_pass http://172.26.10.108:8080;
}
}
เจตเจฐเจเฉเจ เจฒ เจนเฉเจธเจ /etc/nginx/conf.d/vhost3.conf เจธเจผเจพเจฎเจฒ เจเจฐเฉ
server {
listen 80;
server_name vhost3;
location / {
proxy_pass http://172.26.10.109:8080;
}
}
เจตเจฐเจเฉเจ เจฒ เจนเฉเจธเจ /etc/nginx/conf.d/vhost4.conf เจธเจผเจพเจฎเจฒ เจเจฐเฉ
server {
listen 80;
server_name vhost4;
location / {
proxy_pass http://172.26.10.116:8080;
}
}
/etc/hosts เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจธเจฐเจตเจฐเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจเฉเจ เจฒ เจนเฉเจธเจ (เจธเจฐเจตเจฐ เจฆเจพ 172.26.10.106 ip เจเจฟเฉฑเจฅเฉ nginx เจเฉฐเจธเจเจพเจฒ เจนเฉ) เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
172.26.10.106 vhost1
172.26.10.106 vhost2
172.26.10.106 vhost3
172.26.10.106 vhost4
เจ เจคเฉ เจเฉ เจธเจญ เจเฉเจ เจคเจฟเจเจฐ เจนเฉ
nginx -t
systemctl restart nginx
เจนเฉเจฃ เจเจธ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจเฉฐเจธเจเจพเจฒ เจเจฐเฉเจ
yum install -y https://packages.timber.io/vector/0.9.X/vector-x86_64.rpm
เจเจฒเฉ 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.target
เจ เจคเฉ /etc/vector/vector.toml เจธเฉฐเจฐเจเจจเจพ เจตเจฟเฉฑเจ เจซเจพเจเจฒเจฌเฉเจ เจฌเจฆเจฒเจฃ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจเจฐเฉเฅค IP เจเจกเจฐเฉเฉฑเจธ 172.26.10.108 เจฒเจพเจ เจธเจฐเจตเจฐ (เจตเฉเจเจเจฐ-เจธเจฐเจตเจฐ) เจฆเจพ IP เจชเจคเจพ เจนเฉเฅค
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"
เจตเฉเจเจเจฐ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ เจคเจพเจ เจเฉ เจเจน เจฒเฉเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจชเฉเฉเจน เจธเจเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, centos เจตเจฟเฉฑเจ nginx adm เจธเจฎเฉเจน เจ เจงเจฟเจเจพเจฐเจพเจ เจจเจพเจฒ เจฒเฉเจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
usermod -a -G adm vector
เจเจ เจตเฉเจเจเจฐ เจธเฉเจตเจพ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ
systemctl enable vector
systemctl start vector
เจตเฉเจเจเจฐ เจฒเฉเจเจธ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
journalctl -f -u vector
เจฒเฉเจเจธ เจตเจฟเฉฑเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจเจเจเจฐเฉ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ
INFO vector::topology::builder: Healthcheck: Passed.
เจคเจฃเจพเจ เจเฉเจธเจเจฟเฉฐเจ
เจ เจธเฉเจ เจ เจชเจพเจเฉ เจฌเฉเจเจเจฎเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจธเจเจฟเฉฐเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
httpd-เจเฉเจฒ เจชเฉเจเฉเจ เจธเจญ เจธเจฐเจตเจฐเจพเจ เจเฉฑเจคเฉ เจเฉฐเจธเจเจพเจฒ เจเฉเจคเจพ เจเจฟเจ เจธเฉ
เจ
เจธเฉเจ เจธเจเฉเจฐเฉเจจ เจตเจฟเฉฑเจ 4 เจตเฉฑเจ-เจตเฉฑเจ เจธเจฐเจตเจฐเจพเจ เจคเฉเจ เจ
เจชเจพเจเฉ เจฌเฉเจเจเจฎเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจธเจ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจเฅค เจชเจนเจฟเจฒเจพเจ, เจ
เจธเฉเจ เจธเจเฉเจฐเฉเจจ เจเจฐเจฎเฉเจจเจฒ เจฎเจฒเจเฉเจชเจฒเฉเจเจธเจฐ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจฆเฉ เจนเจพเจ, เจ
เจคเฉ เจซเจฟเจฐ เจ
เจธเฉเจ เจ
เจชเจพเจเฉ เจฌเฉเจเจเจฎเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเจธเจ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเจพเจเฅค เจธเจเฉเจฐเฉเจจ เจฆเฉ เจจเจพเจฒ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจจเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ
1 เจธเจฐเจตเจฐ เจคเฉเจ
while true; do ab -H "User-Agent: 1server" -c 100 -n 10 -t 10 http://vhost1/; sleep 1; done
2 เจธเจฐเจตเจฐ เจคเฉเจ
while true; do ab -H "User-Agent: 2server" -c 100 -n 10 -t 10 http://vhost2/; sleep 1; done
3 เจธเจฐเจตเจฐ เจคเฉเจ
while true; do ab -H "User-Agent: 3server" -c 100 -n 10 -t 10 http://vhost3/; sleep 1; done
4 เจธเจฐเจตเจฐ เจคเฉเจ
while true; do ab -H "User-Agent: 4server" -c 100 -n 10 -t 10 http://vhost4/; sleep 1; done
เจเจ เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจฆเฉ เจเจพเจเจ เจเจฐเฉเจ
เจเจฒเจฟเจเจนเจพเจเจธ 'เจคเฉ เจเจพเจ
clickhouse-client -h 172.26.10.109 -m
เจเฉฑเจ 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 โ โ
โโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจเฉเจฌเจฒ เจฆเฉ เจเจเจพเจฐ เจฆเจพ เจชเจคเจพ เจฒเจเจพเจ
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;
เจเจ เจเจน เจชเจคเจพ เจเจฐเฉเจ เจเจฟ เจเจฒเจฟเจเจนเจพเจเจธ เจตเจฟเฉฑเจ เจเจฟเฉฐเจจเฉ เจฒเฉเจเจธ เจฒเจ เจเจ เจนเจจเฅค
เจฒเจพเจ เจเฉเจฌเจฒ เจฆเจพ เจเจเจพเจฐ 857.19 MB เจนเฉเฅค
Elasticsearch เจตเจฟเฉฑเจ เจธเฉเจเจเจพเจเจ เจตเจฟเฉฑเจ เจธเจฎเจพเจจ เจกเฉเจเจพ เจฆเจพ เจเจเจพเจฐ 4,5GB เจนเฉเฅค
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจตเจฟเฉฑเจ เจตเฉเจเจเจฐ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเจฟเจฐเจฆเจฟเจธเจผเจ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ Clickhouse Elasticsearch เจจเจพเจฒเฉเจ 4500/857.19 = 5.24 เจเฉเจฃเจพ เจเฉฑเจ เจฒเฉเจเจฆเจพ เจนเฉเฅค
เจตเฉเจเจเจฐ เจตเจฟเฉฑเจ, เจเฉฐเจชเจฐเฉเจธเจผเจจ เจซเฉเจฒเจก เจฎเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจฆเฉเจเจฐเจพ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ
เจฆเฉเจเจฐเจพ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ
เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ เจฆเฉเจเจฐเจพ "
เจธเจฐเฉเจค: www.habr.com