הסופר בחר ב־קרן הקוד הפתוח והחופשית כדי לקבל תרומה כחלק מתוכנית כתוב בשביל תרומות.
הקדמה
מעקב בסיסי הנתונים הוא תהליך רציף של מעקב מערכתי אחר מדדים שונים שמציינים כיצד הבסיס נתונים מבצע. על ידי צפייה בנתוני הביצועים, ניתן לרכוש הבנה עמוקה ולזהות מכשולים אפשריים, וכן למצוא דרכים נוספות לשיפור ביצועי הבסיס. מערכות כאלה תמיד מיישמות התראה המודיעה למנהלים כאשר יש תקלות. הסטטיסטיקות שנאספו יכולות לשמש לא רק לשיפור הגדרת הבסיס ולזרימת העבודה שלו, אלא גם לאלה של יישומי לקוח.
היתרון בשימוש ב- Elastic Stack (ELK stack) למעקב אחר בסיס הנתונים שלך הוא התמיכה המעולה שלו בחיפוש וביכולת לשאול נתונים חדשים בקלות רבה. הוא לא מצטיין בעדכון הנתונים, אך המחאה הזו מתקבלת עבור מטרות מעקב ולוגים, שבהן הנתונים הקודמים נערכים נדיבות. Elasticsearch מציע דרך עוצמתית לשאילתת הנתונים, אשר ניתן להשתמש בה דרך Kibana כדי לקבל הבנה טובה יותר של כיצד המסד נתונים מתנהל בתקופות זמן שונות. זה יאפשר לך להתאים את העומס על מסד הנתונים עם אירועים בחיים אמיתיים כדי להשיג הבנה על איך המסד משמש.
במדריך זה, תייבא מדדי בסיס הנתונים, שנוצרו על ידי פקודת ה-INFO של Redis, לתוך Elasticsearch דרך Logstash. זה כולל הגדרת Logstash להריץ באופן תקופתי את הפקודה, לנתח את הפלט שלה, ולשלוח אותו אל Elasticsearch לאינדקסציה מיידית לאחר מכן. הנתונים שייובאו יכולים להיות מנותחים ומודגמים מאוחר יותר ב-Kibana. בסוף המדריך, תהיה לך מערכת אוטומטית המושכת סטטיסטיקות של Redis לניתוח מאוחר יותר.
דרישות מוקדמות
- שימושי התקנה ראשונית
- איך להתקין את ג'אווה עם apt באובונטו 18.04
- איך להתקין את Nginx על אובונטו 18.04
- איך להתקין Elasticsearch, Logstash ו־Kibana (Elastic Stack) על אובונטו 18.04
- A Redis managed database provisioned from DigitalOcean with connection information available. Make sure that your server’s IP address is on the whitelist. For a guide on creating a Redis database using the DigitalOcean Control Panel, visit the Redis Quickstart guide.
- Redliאיך להתחבר למסד נתונים מנוהל על אובונטו 18.04
שלב 1 — התקנת והגדרת Logstash
בסעיף זה, תתקין את Logstash ותגדיר אותו כך שישוף סטטיסטיקות מאשכול מסד הנתונים שלך של Redis, ואז יפרש אותם כדי לשלוח ל-Elasticsearch לאינדוקס.
התחל על ידי להתקין את Logstash עם הפקודה הבאה:
לאחר שהתקנת את Logstash, הפעל את השירות כך שיתחיל אוטומטית בעת האתחול:
לפני שנגדיר את Logstash כך שישוף את הסטטיסטיקות, בואו נראה איך הנתונים נראים בפועל. כדי להתחבר למסד הנתונים שלך של Redis, עבור אל לוח הבקרה של בסיס הנתונים הניהולי שלך ותחת לוח הפרטים התקשרות, בחר דגלים מהתפריט הנפתח:
תוצג לך פקודה שהוגדרה מראש עבור לקוח ה־Redli, אותו תשתמש להתחברות לבסיס הנתונים שלך. לחץ העתק והרץ את הפקודה הבאה על השרת שלך, במקום פקודת_דגלי_redli
עם הפקודה שהעתקת כעת:
מאחר שהפלט מהפקודה הזו ארוך, נסביר זאת מחולקת לחלקים שונים.
בפלט של פקודת Redis info
, סעיפים מסומנים עם #
, שמציין הערה. הערכים מומלאים בצורת key:value
, שהופכת אותם ליחסית קלים לניתוח.
המקטע Server
מכיל מידע טכני אודות בניית ה-Redis, כמו הגרסה שלו והקומיט של Git שהוא מבוסס עליו, בעוד המקטע Clients
מספק את מספר החיבורים הפתוחים כרגע.
Output# Server
redis_version:6.2.6
redis_git_sha1:4f4e829a
redis_git_dirty:1
redis_build_id:5861572cb79aebf3
redis_mode:standalone
os:Linux 5.11.12-300.fc34.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:11.2.1
process_id:79
process_supervised:systemd
run_id:b8a0aa25d8f49a879112a04a817ac2acd92e0c75
tcp_port:25060
server_time_usec:1640878632737564
uptime_in_seconds:1679
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:13488680
executable:/usr/bin/redis-server
config_file:/etc/redis.conf
io_threads_active:0
# Clients
connected_clients:4
cluster_connections:0
maxclients:10032
client_recent_max_input_buffer:24
client_recent_max_output_buffer:0
...
Memory
מאשר כמה זיכרון RAM הוקצה ל-Redis עבור עצמו, וגם את כמות הזיכרון המקסימלית שהוא יכול להשתמש בה. אם הוא מתחיל לגמור את הזיכרון, הוא ישחרר מפתחות באמצעות האסטרטגיה שציינת בלוח הבקרה (מוצגת בשדה maxmemory_policy
בפלט זה).
Output...
# Memory
used_memory:977696
used_memory_human:954.78K
used_memory_rss:9977856
used_memory_rss_human:9.52M
used_memory_peak:977696
used_memory_peak_human:954.78K
used_memory_peak_perc:100.00%
used_memory_overhead:871632
used_memory_startup:810128
used_memory_dataset:106064
used_memory_dataset_perc:63.30%
allocator_allocated:947216
allocator_active:1273856
allocator_resident:3510272
total_system_memory:1017667584
total_system_memory_human:970.52M
used_memory_lua:37888
used_memory_lua_human:37.00K
used_memory_scripts:0
used_memory_scripts_human:0B
number_of_cached_scripts:0
maxmemory:455081984
maxmemory_human:434.00M
maxmemory_policy:noeviction
allocator_frag_ratio:1.34
allocator_frag_bytes:326640
allocator_rss_ratio:2.76
allocator_rss_bytes:2236416
rss_overhead_ratio:2.84
rss_overhead_bytes:6467584
mem_fragmentation_ratio:11.43
mem_fragmentation_bytes:9104832
mem_not_counted_for_evict:0
mem_replication_backlog:0
mem_clients_slaves:0
mem_clients_normal:61504
mem_aof_buffer:0
mem_allocator:jemalloc-5.1.0
active_defrag_running:0
lazyfree_pending_objects:0
...
במקטע Persistence
, ניתן לראות את הפעם האחרונה שבה ה-Redis שמר על המפתחות שהוא אחסן בדיסק, והאם זה היה מוצלח. המקטע Stats
מספק מספרים הקשורים לחיבורי לקוח ולחיבורים בתוך האשף, מספר הפעמים שבהן נמצא (או לא נמצא) המפתח שביקשו, ועוד.
Output...
# Persistence
loading:0
current_cow_size:0
current_cow_size_age:0
current_fork_perc:0.00
current_save_keys_processed:0
current_save_keys_total:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1640876954
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:217088
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
module_fork_in_progress:0
module_fork_last_cow_size:0
# Stats
total_connections_received:202
total_commands_processed:2290
instantaneous_ops_per_sec:0
total_net_input_bytes:38034
total_net_output_bytes:1103968
instantaneous_input_kbps:0.01
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
expired_stale_perc:0.00
expired_time_cap_reached_count:0
expire_cycle_cpu_milliseconds:29
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:452
total_forks:1
migrate_cached_sockets:0
slave_expires_tracked_keys:0
active_defrag_hits:0
active_defrag_misses:0
active_defrag_key_hits:0
active_defrag_key_misses:0
tracking_total_keys:0
tracking_total_items:0
tracking_total_prefixes:0
unexpected_error_replies:0
total_error_replies:0
dump_payload_sanitizations:0
total_reads_processed:2489
total_writes_processed:2290
io_threaded_reads_processed:0
io_threaded_writes_processed:0
...
על ידי הסתכלות על ה-role
תחת Replication
, תדע אם אתה מחובר לצומת ראשית או רפליקה. שאר המקטע מספק את מספר הרפליקות המחוברות כעת ואת כמות הנתונים שהרפליקה חסרה לה ביחס לצומת הראשית. ייתכן ויהיו שדות נוספים אם המופע שאתה מחובר אליו הוא רפליקה.
הערה: פרויקט ה-Redis משתמש במונחים "מאסטר" ו"עבד" בתיעוד שלו ובפקודות שונות. דיגיטל אושן מעדיף בדרך כלל את המונחים החלופיים "ראשי" ו"רפליקה". מדריך זה יעדיף באופן ברירת המחדל את המונחים "ראשי" ו"רפליקה" ככל הניתן, אך שים לב כי ישנם מקרים חלופיים בהם המונחים "מאסטר" ו"עבד" יופיעו באופן לא נמנע.
Output...
# Replication
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:f727fad3691f2a8d8e593b087c468bbb83703af3
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:45088768
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
...
תחת CPU
, תראה את כמות המערכת (used_cpu_sys
) והמשתמש (used_cpu_user
) של המעבד שה-Redis צורך כרגע. המקטע Cluster
מכיל רק שדה ייחודי אחד, cluster_enabled
, אשר מציין כי האשכול של Redis פועל.
Output...
# CPU
used_cpu_sys:1.617986
used_cpu_user:1.248422
used_cpu_sys_children:0.000000
used_cpu_user_children:0.001459
used_cpu_sys_main_thread:1.567638
used_cpu_user_main_thread:1.218768
# Modules
# תקלות
# אשכול
cluster_enabled:0
# Keyspace
Logstash תטפל בפעם לפעם בהפעלת הפקודה info
על בסיס הנתונים שלך ב-Redis (דומה לכיצד שעשית עכשיו), תפענח את התוצאות ותשלח אותם ל-Elasticsearch. תוכל לגשת אליהם מאוחר יותר מ-Kibana.
תאחסן את התצורה לאינדקסציה של סטטיסטיקות Redis ב-Elasticsearch בקובץ בשם redis.conf
תחת התיקייה /etc/logstash/conf.d
, היכן ש-Logstash אחסנה קבצי ההגדרה. כאשר מופעל כשירות, זה יפעל אותם ברקע באופן אוטומטי.
צור את redis.conf
באמצעות העורך האהוב עליך (לדוגמה, nano):
הוסף את השורות הבאות:
input {
exec {
command => "redis_flags_command info"
interval => 10
type => "redis_info"
}
}
filter {
kv {
value_split => ":"
field_split => "\r\n"
remove_field => [ "command", "message" ]
}
ruby {
code =>
"
event.to_hash.keys.each { |k|
if event.get(k).to_i.to_s == event.get(k) # is integer?
event.set(k, event.get(k).to_i) # convert to integer
end
if event.get(k).to_f.to_s == event.get(k) # is float?
event.set(k, event.get(k).to_f) # convert to float
end
}
puts 'Ruby filter finished'
"
}
}
output {
elasticsearch {
hosts => "http://localhost:9200"
index => "%{type}"
}
}
זכור להחליף את redis_flags_command
עם הפקודה המוצגת בלוח הבקרה שהשתמשת בה בשלב הקודם.
אתה מגדיר input
, שהוא סט של פילטרים שירוצו על הנתונים שנאספים, ופלט שישלח את הנתונים שעברו דימות ל־Elasticsearch. הקלט מורכב מפקודת exec
, שתריץ command
על השרת מדי פרק זמן, לאחר זמן שנקבע interval
(ביטוי בשניות). זה גם מגדיר פרמטר type
שמגדיר את סוג המסמך כאשר הוא מפונקן ב־Elasticsearch. הבלוק exec
מעביר מטה אובייקט המכיל שני שדות, command
ו־message
מחרוזת. שדה command
יכיל את הפקודה שנרץ, ו־message
יכיל את הפלט שלה.
ישנם שני פילטרים שירוצו סיבוכים בנתונים שנאספו מהקלט. פילטר kv
מייצג פילטר מפתח־ערך, ונמצא מובנה ב־Logstash. הוא משמש לפירוק הנתונים בצורה הכללית של keyvalue_separatorvalue
ומספק פרמטרים לציון מהו מפריד הערך והשדה. מפריד השדה מתייחס למחרוזות שמפרידות את הנתונים בצורת הכלל מאחדתם והפריד של הערך (value_split
) הוא :
. שורות שאינן עוקבות אחר הצורה המוגדרת יישלכו, כולל הערות.
כדי להגדיר את מסנן kv
, אתה מעביר :
לפרמטר value_split
, ו־\r\n
(המציין שורה חדשה) לפרמטר field_split
. אתה גם מזמין אותו להסיר את השדות command
ו־message
מאובייקט הנתונים הנוכחי על ידי מעברם ל־remove_field
כאיברים של מערך, משום שהם מכילים נתונים שכעת אינם שימושיים.
מסנן kv
מייצג את הערך שהוא פירסם כסוג מחרוזת (טקסט) לפי העיצוב. זה גורם לבעיה מכיוון ש־Kibana לא יכולה בקלות לעבד סוגי מחרוזות, גם אם זה בעצם מספר. כדי לפתור זאת, תשתמש בקוד Ruby מותאם אישית כדי להמיר את המחרוזות המכילות רק מספרים למספרים, כאשר זה אפשרי. המסנן השני הוא בלוק ruby
שמספק פרמטר code
המקבל מחרוזת המכילה את הקוד שיש להריץ.
event
הוא משתנה שהופק Logstash לקוד שלך, ומכיל את הנתונים הנוכחיים בצינור המסננים. כפי שצוין קודם, המסננים מריצים אחרי זה אחרי זה, המשמעות היא שמסנן ה־Ruby יקבל את הנתונים המפורסמים מהמסנן kv
. הקוד של Ruby עצמו ממיר את ה־event
ל־Hash ומעבור דרך המפתחות, ואז בודק אם הערך המשויך למפתח יכול להיות מיוצג כמספר שלם או כמספר עם נקודה עשרונית (מספר עם נקודה עשרונית). אם כן, הערך של המחרוזת מוחלף במספר שנפרס. כאשר הלולאה מסתיימת, היא מדפיסה הודעה (Ruby filter finished
) כדי לדווח על התקדמות התהליך.
הפלט שולח את הנתונים שעובדו ל-Elasticsearch לאינדקסציה. המסמך התוצאה יאוחסן באינדקס redis_info
, הוגדר בקובץ הקלט והועבר כפרמטר לבלוק הפלט.
שמור וסגור את הקובץ.
התקנת Logstash באמצעות apt
והגדרתו לבקש סטטיסטיקות בתדירות מ-Redis, לעבד אותם, ולשלוח אותם למופע ה-Elasticsearch שלך.
שלב 2 — בדיקת התצורה של Logstash
עכשיו תבדוק את התצורה על ידי הפעלת Logstash כדי לוודא שהוא יחלוץ את הנתונים בצורה תקינה.
Logstash תומך בהרצת תצורה מסוימת על ידי מעבר נתיב הקובץ שלה לפרמטר -f
. הפעל את הפקודה הבאה כדי לבדוק את התצורה החדשה שלך מהשלב האחרון:
יכול להיות זמן קצת לפני שהפלט יוצג, אך בקרוב תראה משהו דומה לזה:
OutputUsing bundled JDK: /usr/share/logstash/jdk
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
[INFO ] 2021-12-30 15:42:08.887 [main] runner - Starting Logstash {"logstash.version"=>"7.16.2", "jruby.version"=>"jruby 9.2.20.1 (2.5.8) 2021-11-30 2a2962fbd1 OpenJDK 64-Bit Server VM 11.0.13+8 on 11.0.13+8 +indy +jit [linux-x86_64]"}
[INFO ] 2021-12-30 15:42:08.932 [main] settings - Creating directory {:setting=>"path.queue", :path=>"/usr/share/logstash/data/queue"}
[INFO ] 2021-12-30 15:42:08.939 [main] settings - Creating directory {:setting=>"path.dead_letter_queue", :path=>"/usr/share/logstash/data/dead_letter_queue"}
[WARN ] 2021-12-30 15:42:09.406 [LogStash::Runner] multilocal - Ignoring the 'pipelines.yml' file because modules or command line options are specified
[INFO ] 2021-12-30 15:42:09.449 [LogStash::Runner] agent - No persistent UUID file found. Generating new UUID {:uuid=>"acc4c891-936b-4271-95de-7d41f4a41166", :path=>"/usr/share/logstash/data/uuid"}
[INFO ] 2021-12-30 15:42:10.985 [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600, :ssl_enabled=>false}
[INFO ] 2021-12-30 15:42:11.601 [Converge PipelineAction::Create<main>] Reflections - Reflections took 77 ms to scan 1 urls, producing 119 keys and 417 values
[WARN ] 2021-12-30 15:42:12.215 [Converge PipelineAction::Create<main>] plain - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[WARN ] 2021-12-30 15:42:12.366 [Converge PipelineAction::Create<main>] plain - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[WARN ] 2021-12-30 15:42:12.431 [Converge PipelineAction::Create<main>] elasticsearch - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[INFO ] 2021-12-30 15:42:12.494 [[main]-pipeline-manager] elasticsearch - New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>["http://localhost:9200"]}
[INFO ] 2021-12-30 15:42:12.755 [[main]-pipeline-manager] elasticsearch - Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[http://localhost:9200/]}}
[WARN ] 2021-12-30 15:42:12.955 [[main]-pipeline-manager] elasticsearch - Restored connection to ES instance {:url=>"http://localhost:9200/"}
[INFO ] 2021-12-30 15:42:12.967 [[main]-pipeline-manager] elasticsearch - Elasticsearch version determined (7.16.2) {:es_version=>7}
[WARN ] 2021-12-30 15:42:12.968 [[main]-pipeline-manager] elasticsearch - Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7}
[WARN ] 2021-12-30 15:42:13.065 [[main]-pipeline-manager] kv - Relying on default value of `pipeline.ecs_compatibility`, which may change in a future major release of Logstash. To avoid unexpected changes when upgrading Logstash, please explicitly declare your desired ECS Compatibility mode.
[INFO ] 2021-12-30 15:42:13.090 [Ruby-0-Thread-10: :1] elasticsearch - Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[INFO ] 2021-12-30 15:42:13.147 [Ruby-0-Thread-10: :1] elasticsearch - Installing Elasticsearch template {:name=>"logstash"}
[INFO ] 2021-12-30 15:42:13.192 [[main]-pipeline-manager] javapipeline - Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>250, "pipeline.sources"=>["/etc/logstash/conf.d/redis.conf"], :thread=>"#<Thread:0x5104e975 run>"}
[INFO ] 2021-12-30 15:42:13.973 [[main]-pipeline-manager] javapipeline - Pipeline Java execution initialization time {"seconds"=>0.78}
[INFO ] 2021-12-30 15:42:13.983 [[main]-pipeline-manager] exec - Registering Exec Input {:type=>"redis_info", :command=>"redli --tls -h db-redis-fra1-68603-do-user-1446234-0.b.db.ondigitalocean.com -a hnpJxAgoH3Om3UwM -p 25061 info", :interval=>10, :schedule=>nil}
[INFO ] 2021-12-30 15:42:13.994 [[main]-pipeline-manager] javapipeline - Pipeline started {"pipeline.id"=>"main"}
[INFO ] 2021-12-30 15:42:14.034 [Agent thread] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
Ruby filter finished
Ruby filter finished
Ruby filter finished
...
תראה את ההודעה Ruby filter finished
מודפסת במרווחים קבועים (הוגדרו ל-10 שניות בשלב הקודם), שזה אומר שהסטטיסטיקות נשלחות ל-Elasticsearch.
תוכל לצאת מ-Logstash על ידי לחיצה על CTRL + C
על המקלדת שלך. כפי שצוין מראש, Logstash יפעל באופן אוטומטי את כל קבצי התצורה הנמצאים תחת /etc/logstash/conf.d
ברקע כאשר מופע השירות מופעל. הפעל את הפקודה הבאה כדי להתחיל:
שוחררת את Logstash כדי לבדוק האם הוא יכול להתחבר לאשף שלך ולאסוף נתונים. לאחר מכן, תסתכל על חלק מהנתונים הסטטיסטיים ב-Kibana.
שלב 3 — חקירת הנתונים שיובאו ב-Kibana
בסעיף זה, תבחן ותחזור על הנתונים הסטטיסטיים המתארים את ביצועי מסד הנתונים שלך ב-Kibana.
בדפדפן האינטרנט שלך, נווט לדומיין שלך שבו חשפת את Kibana כחלק מהנדרשים. תראה את דף הבית המברך המותקן כברירת מחדל:
לפני בידוד הנתונים ש-Logstash שולח אל Elasticsearch, עליך תחילה להוסיף את אינדקס ה-redis_info
ל-Kibana. כדי לעשות זאת, בחר תחילה לחקור לבד מדף הבית ולאחר מכן פתח את תפריט ההמבורגר בפינה השמאלית העליונה. בתוך ניתוחים, לחץ על לגלות.
כעת, Kibana תבקש ממך ליצור דפוס אינדקס חדש:
לחץ על צור דפוס אינדקס. תראה טופס ליצירת דפוס אינדקס חדש. דפוסי אינדקס ב-Kibana מספקים דרך למשוך נתונים מאינדקסי Elasticsearch מרובים בו זמנית, וניתן להשתמש בהם כדי לחקור רק אינדקס אחד.
בצד ימין, Kibana מפרטת את כל האינדקסים הזמינים, כגון redis_info
שהגדרת להשתמש בו ב־Logstash. הקלד אותו בשדה הטקסט Name ובחר @timestamp
מהרשימה הנפתחת כשדה ה־Timestamp. כאשר תסיים, לחץ על הלחצן Create index pattern למטה.
כדי ליצור ולראות ויזואליזציות קיימות, פתח את תפריט ההמבורגר. בתת־תפריט Analytics, בחר Dashboard. כאשר הוא נטען, לחץ על Create visualization כדי להתחיל ליצור אחת חדשה:
הפאנל בצד שמאל מספק רשימת ערכים שבאמצעותם Kibana יכולה לצייר את הויזואליזציה, שתוצג בחלק המרכזי של המסך. בחלק הימני העליון של המסך נמצאת תיבת הבחירה של טווח התאריכים. אם שדה ה־@timestamp
משמש בויזואליזציה, Kibana תציג רק את הנתונים השייכים לטווח הזמן שצויין בתיבת הבחירה.
מהתיבת הנפתחת בחלק הראשי של העמוד, בחר Line תחת האזור Line and area. לאחר מכן, מצא את השדה used_memory
מהרשימה בצד שמאל וגרור אותו לחלק המרכזי. בקרוב תראה ויזואליזציה של קו של כמות הזיכרון המשומשת בינונית דרך הזמן:
בצד ימין, תוכל להגדיר איך ציר האופקי והאנכי מעובדים. שם, תוכל להגדיר את ציר האנכי להציג את הערכים הממוצעים במקום התיכון על ידי לחיצה על הציר שמוצג:
תוכל לבחור פונקציה שונה, או לספק את שלך:
הגרף יתעדכן מיידית עם הערכים המעודכנים.
בשלב זה, ייחוסת את שימוש הזיכרון במסד הנתונים שלך שמנוהל באמצעות Redis באמצעות Kibana. זה יאפשר לך להבין טוב יותר איך המסד הנתונים שלך משמש, וזה יסייע לך לייעל את יישומי הלקוח וכן את המסד הנתונים שלך בעצמו.
מסקנה
עכשיו יש לך את חבילת האלסטיק מותקנת על השרת שלך ומוגדרת למשוך נתוני סטטיסטיקה ממסד הנתונים שלך שמנוהל באמצעות Redis בקביעות. באפשרותך לנתח ולהציג את הנתונים באמצעות Kibana, או תוכנה מתאימה אחרת, שתעזור לך לאסוף תובנות יקרות על כיצד המסד הנתונים שלך פועל בפועל.
למידע נוסף על מה שאפשר לעשות עם מסד הנתונים שלך שמנוהל באמצעות Redis, בקר ב-מסמכי המוצר. אם ברצונך להציג את נתוני הנתונים של מסד הנתונים באמצעות סוג תצוגה אחר, עיין ב-מסמכי Kibana להוראות נוספות.