เดฑเดธเตเดฑเตเดฑเต เดญเดพเดทเดฏเดฟเตฝ เดเดดเตเดคเดฟเดฏเดคเดฟเดจเดพเตฝ, เด เดคเดฟเดจเตเดฑเต เด เดจเดฒเตเดเตเดเดณเต เด เดชเตเดเตเดทเดฟเดเตเดเต เดเดฏเตผเดจเตเดจ เดชเตเดฐเดเดเดจเดตเตเด เดเตเดฑเดเตเด เดฑเดพเด เดเดชเดญเตเดเดตเตเดฎเดพเดฃเต เดเดคเดฟเดจเตเดฑเต เดธเดตเดฟเดถเตเดทเดค. เดเตเดเดพเดคเต, เดเตเดคเตเดฏเดคเดฏเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดซเดเดเตโเดทเดจเตเดเดณเดฟเตฝ เดตเดณเดฐเตเดฏเดงเดฟเดเด เดถเตเดฐเดฆเตเดง เดเตเดฒเตเดคเตเดคเตเดจเตเดจเต, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด, เด เดฏเดฏเตโเดเตเดเดพเดคเตเดค เดเดตเดจเตเดฑเตเดเตพ เดกเดฟเดธเตโเดเดฟเดฒเต เดฌเดซเดฑเดฟเดฒเตเดเตเดเต เดธเดเดฐเดเตเดทเดฟเดเตเดเดพเดจเตเด เดซเดฏเดฒเตเดเตพ เดคเดฟเดฐเดฟเดเตเดเดพเดจเตเด เดเดณเตเดณ เดเดดเดฟเดตเต.
เดตเดพเดธเตเดคเตเดถเดพเดธเตเดคเตเดฐเดชเดฐเดฎเดพเดฏเดฟ, เดเดจเตเดจเต เด เดคเดฟเดฒเดงเดฟเดเดฎเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเดตเดจเตเดฑเต เดฑเตเดเตเดเดฑเดพเดฃเต เดตเตเดเตเดฑเตเดฑเตผ เดเดฑเดตเดฟเดเดเตเดเตพ, เดเดชเตเดทเดฃเดฒเดพเดฏเดฟ เด เดธเดจเตเดฆเตเดถเดเตเดเดณเดฟเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต เดฐเตเดชเดพเดจเตเดคเดฐเดเตเดเตพ, เดเตเดเดพเดคเต เดเดจเตเดจเต เด เดคเดฟเดฒเดงเดฟเดเดฎเต เดชเตเดฐเดฟเดฒเตเดเตเดเต เด เดตเดฐเต เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต เดเตเตผเดเตเด.
เดซเดฏเตฝเดฌเตเดฑเตเดฑเดฟเดจเตเด เดฒเตเดเตเดธเตเดฑเตเดฑเดพเดทเดฟเดจเตเด เดชเดเดฐเดฎเดพเดฃเต เดตเตเดเตเดฑเตเดฑเตผ, เดเดคเดฟเดจเต เดฐเดฃเตเดเต เดฑเตเดณเตเดเดณเดฟเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด (เดฒเตเดเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เด
เดฏเดฏเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด), เด
เดตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ
เดฒเตเดเตเดธเตเดฑเตเดฑเดพเดทเดฟเตฝ เดเตเดฏเดฟเตป เดเตปเดชเตเดเตเดเต โ เดซเดฟเตฝเดเตเดเตผ โ เดเดเตเดเตเดชเตเดเตเดเต เดเดฏเดฟเดเตเดเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดเตเดเดฟเตฝ เดตเตเดเตโเดเดฑเดฟเตฝ เด
เดคเต
เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเดฟเตฝ เดเดพเดฃเดพเด.
เด เดจเดฟเตผเดฆเตเดฆเตเดถเด เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเด เดจเดฟเตผเดฆเตเดฆเตเดถเดฎเดพเดฃเต
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 (เดเดเตเดธเดธเต เดฒเตเดเตเดเตพ) โ เดตเตเดเตเดฑเตเดฑเตผ (เดเตเดฒเดฏเดจเตเดฑเต | เดซเดฏเตฝเดฌเตเดฑเตเดฑเต) โ เดตเตเดเตเดฑเตเดฑเตผ (เดธเตเตผเดตเตผ | เดฒเตเดเตเดธเตเดฑเตเดฑเดพเดทเต) โ เดเดจเตเดจเดฟเดตเดฏเตเดเต เดธเดเดฏเตเดเดจเด เดเตเดฒเดฟเดเตเดเตเดนเตเดธเดฟเตฝ เดตเตเดตเตเดตเตเดฑเตเดฏเตเด เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดธเตเตผเดเตเดเดฟเดฒเตเด เดตเตเดตเตเดตเตเดฑเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเด. เดเดเตเดเตพ 4 เดธเตเตผเดตเดฑเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด. 3 เดธเตเตผเดตเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดฎเดฑเดฟเดเดเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดเตเดเดฟเดฒเตเด.
เดธเตเดเตเด เดเดคเตเดชเตเดฒเตเดฏเดพเดฃเต.
เดจเดฟเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด Selinux เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเตเด
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
reboot
เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด เดเดเตเดเตพ เดเดฐเต HTTP เดธเตเตผเดตเตผ เดเดฎเตเดฒเตเดฑเตเดฑเตผ + เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
เดเดฐเต HTTP เดธเตเตผเดตเตผ เดเดฎเตเดฒเตเดฑเตเดฑเตผ เดเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด
Nodejs-stub-server-เดจเต เดเดฐเต rpm เดเดฒเตเดฒ.
antonpatsev/nodejs-stub-server repository เดเตเตผเดเตเดเตเด
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
ClickHouse 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 เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดชเตเดเดพเด
เดเตเดฒเดฟเดเตเดเตเดนเตเดธเดฟเดฒเตเดเตเดเต เดชเตเดเตเด
clickhouse-client -h 172.26.10.109 -m
172.26.10.109 โ Clickhouse เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต 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 โ
โโโโโโโโโโโโโโโโโโโโโโโ
Clickhouse-เดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดคเดฟเดฐเดฏเดฒเดฟเดฒเตเดเตเดเต เด เดคเต เดกเดพเดฑเตเดฑ เด เดฏเดฏเตโเดเตเดเดพเตป เดจเดพเดฒเดพเดฎเดคเตเดคเต เดธเตเตผเดตเดฑเดฟเตฝ เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดคเดฟเดฐเดฏเตฝ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต
เดเดฐเต เดชเตเดคเต 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
เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดธเตเตผเดเตเดเตเด เดเดฟเดฌเดพเดจเดฏเตเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเด
yum install -y kibana elasticsearch
เดเดคเต 1 เดชเดเตผเดชเตเดชเดฟเตฝ เดเดณเตเดณเดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต /etc/elasticsearch/elasticsearch.yml เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
discovery.type: single-node
เดตเตเดเตโเดเดฑเดฟเดจเต เดฎเดฑเตเดฑเตเดฐเต เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดคเดฟเดฐเดฏเดฒเดฟเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เด เดฏเดฏเตโเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดจเดฎเตเดเตเดเต network.host เดฎเดพเดฑเตเดฑเดพเด.
network.host: 0.0.0.0
เดเดฟเดฌเดพเดจเดฏเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเตป, /etc/kibana/kibana.yml เดซเดฏเดฒเดฟเดฒเต server.host เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดฎเดพเดฑเตเดฑเตเด
server.host: "0.0.0.0"
เดชเดดเดฏเดคเตเด เดเดเตเดเตเดธเตเดฑเตเดฑเดพเตผเดเตเดเดฟเตฝ เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดคเดฟเดฐเดฏเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเตเด
systemctl enable elasticsearch
systemctl start elasticsearch
เดเดฟเดฌเดพเดจเดฏเตเด
systemctl enable kibana
systemctl start kibana
เดธเดฟเดเดเดฟเตพ-เดจเตเดกเต เดฎเตเดกเต 1 เดทเดพเตผเดกเต, 0 เดชเดเตผเดชเตเดชเดฟเดจเดพเดฏเดฟ เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดคเดฟเดฐเดฏเตฝ เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต. เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดจเดฟเดเตเดเตพเดเตเดเต เดงเดพเดฐเดพเดณเด เดธเตเตผเดตเดฑเตเดเดณเตเดเต เดเดฐเต เดเตเดฒเดธเตเดฑเตเดฑเตผ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดจเดฟเดเตเดเตพ เดเดคเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒ.
เดญเดพเดตเดฟ เดธเตเดเดฟเดเดเตพเดเตเดเดพเดฏเดฟ, เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดเตเดเดชเตเดฒเตเดฑเตเดฑเต เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด:
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
เดเดฆเตเดฏเด, เดจเดฎเตเดฎเตพ /etc/nginx/nginx.conf เดเดจเตเดจ เดซเดฏเดฒเดฟเตฝ Nginx-เตฝ เดฒเตเดเต เดซเตเตผเดฎเดพเดฑเตเดฑเต เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
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 เดจเดฟเตผเดฆเตเดฆเตเดถเดเตเดเตพ เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต
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 เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเดเตเดเตเด เดตเตเตผเดเตเดตเตฝ เดนเตเดธเตเดฑเตเดฑเตเดเตพ (nginx เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต 172.26.10.106 ip) เดเตเตผเดเตเดเตเด:
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"
เดฒเตเดเต เดซเดฏเดฒเตเดเตพ เดตเดพเดฏเดฟเดเตเดเดพเตป เดตเตเดเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเตเดฐเตเดชเตเดชเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเตเดจเตเดฑเตเดธเดฟเดฒเต nginx, adm เดเตเดฐเตเดชเตเดชเต เด เดตเดเดพเดถเดเตเดเดณเตเดณเตเดณ เดฒเตเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต.
usermod -a -G adm vector
เดจเดฎเตเดเตเดเต เดตเตเดเตเดฑเตเดฑเตผ เดธเตเดตเดจเด เดเดฐเดเดญเดฟเดเตเดเดพเด
systemctl enable vector
systemctl start vector
เดตเตเดเตเดฑเตเดฑเตผ เดฒเตเดเตเดเตพ เดเดคเตเดชเตเดฒเต เดเดพเดฃเดพเตป เดเดดเดฟเดฏเตเด:
journalctl -f -u vector
เดฒเตเดเตเดเดณเดฟเตฝ เดเดคเตเดชเตเดฒเต เดเดฐเต เดเตปเดเตเดฐเดฟ เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด
INFO vector::topology::builder: Healthcheck: Passed.
เดธเตเดเตเดฐเตเดธเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต
เด เดชเตเดชเดพเดเตเดเต เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดชเดฐเดฟเดถเตเดงเดจ เดจเดเดคเตเดคเตเดจเตเดจเดคเต.
เดเดฒเตเดฒเดพ เดธเตเตผเดตเดฑเตเดเดณเดฟเดฒเตเด httpd-tools เดชเดพเดเตเดเตเดเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเต
เดธเตโเดเตเดฐเตเดจเดฟเดฒเต 4 เดตเตเดฏเดคเตเดฏเดธเตโเดค เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตพ เด
เดชเตเดชเดพเดเตเดเต เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดฐเตเดเตเดทเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต. เดเดฆเตเดฏเด, เดเดเตเดเตพ เดธเตโเดเตเดฐเตเตป เดเตเตผเดฎเดฟเดจเตฝ เดฎเตพเดเตเดเดฟเดชเตเดฒเดเตโเดธเตผ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เดเดเตเดเตพ เด
เดชเตเดชเดพเดเตเดเต เดฌเตเดเตเดเตเดฎเดพเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดชเดฐเดฟเดถเตเดงเดจ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดเตเดฐเตเดจเดฟเตฝ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเด เดเดจเตเดจเดคเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด
เดเดจเตเดจเดพเด เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต
while true; do ab -H "User-Agent: 1server" -c 100 -n 10 -t 10 http://vhost1/; sleep 1; done
เดเดจเตเดจเดพเด เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต
while true; do ab -H "User-Agent: 2server" -c 100 -n 10 -t 10 http://vhost2/; sleep 1; done
เดเดจเตเดจเดพเด เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต
while true; do ab -H "User-Agent: 3server" -c 100 -n 10 -t 10 http://vhost3/; sleep 1; done
เดเดจเตเดจเดพเด เดธเตเตผเดตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต
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 เดเดฃเต.
เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดธเตเตผเดเตเดเดฟเดฒเต เดธเตเดเดฟเดเดฏเดฟเดฒเต เด เดคเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดตเดฒเตเดชเตเดชเด 4,5GB เดเดฃเต.
เดจเดฟเดเตเดเตพ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเดฟเตฝ เดตเตเดเตเดฑเตเดฑเดฑเดฟเตฝ เดกเดพเดฑเตเดฑ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดฒเดพเดธเตเดฑเตเดฑเดฟเดเต เดธเตเตผเดเตเดเดฟเตฝ เดเดณเตเดณเดคเดฟเดจเตเดเตเดเดพเตพ 4500/857.19 = 5.24 เดฎเดเดเตเดเต เดเตเดฑเดตเต เดเตเดฒเดฟเดเตเดเตเดนเตเดธเต เดเดเตเดเตเดเตเดจเตเดจเต.
เดตเตเดเตเดฑเตเดฑเดฑเดฟเตฝ, เดเดเดชเตเดฐเดทเตป เดซเตเตฝเดกเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดฑเตเดฑเต เดเตเดฏเตเดคเดคเต
เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดฑเตเดฑเต เดเตเดฏเตเดคเดคเต
เดเตเดฒเดฟเดเตเดฐเดพเด เดเดพเดฑเตเดฑเต เดเตเดฏเตเดคเดคเต "
เด เดตเดฒเดเดฌเด: www.habr.com