Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
最近の監視(仮)/Recent system monitoring with mackerel
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kazeburo
December 23, 2019
Technology
5.5k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近の監視(仮)/Recent system monitoring with mackerel
mackerel day #2
kazeburo
December 23, 2019
More Decks by kazeburo
See All by kazeburo
さくらのクラウド開発ふりかえり2025
kazeburo
2
3.8k
国産クラウドを支える設計とチームの変遷 “技術・組織・ミッション”
kazeburo
7
18k
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
2.6k
さくらのクラウド 開発の挑戦とその舞台裏
kazeburo
1
1.5k
[SRE kaigi 2025] ガバメントクラウドに向けた開発と変化するSRE組織のあり方 / Development for Government Cloud and the Evolving Role of SRE Teams
kazeburo
4
4.5k
[さくらのTech Day] ガバメントクラウド開発と変化と成長する組織 / sakura techday, Develop govcloud and the team
kazeburo
0
9.8k
ガバメントクラウド開発と変化と成長する組織 / Organizational change and growth in developing a government cloud
kazeburo
4
3.9k
DNS水責め攻撃と監視 / DNS water torture attack Monitoring and SLO
kazeburo
5
4.6k
DBやめてみた / DNS water torture attack and countermeasures
kazeburo
13
14k
Other Decks in Technology
See All in Technology
自宅NWにISR4331を導入してみた話
okaits
0
100
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
500
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
280
Sets in Go
ramalho
1
910
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.4k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
ホームラボ紹介
y_sera15
0
190
制約理論(ToC)入門 2026版
recruitengineers
PRO
8
2.4k
2026-08-05 IBM Z開発最前線!IBM Bob Premium Package for Zって何がすごいの?
yutanonaka
0
140
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
270
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
780
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Spectacular Lies of Maps
axbom
PRO
1
910
Technical Leadership for Architectural Decision Making
baasie
3
490
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
Speed Design
sergeychernyshev
33
2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Color Theory Basics | Prateek | Gurzu
gurzu
0
420
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Transcript
࠷ۙͷࢹ(Ծ) Mackerel Day #2 kazeburo
Me • Masahiro Nagano • @kazeburo • Mackerel Ξϯόαμʔ •
Ұ൪͖ͳ mackerelϓϥάΠϯ mackerel-plugin-axslog (ࣗ࡞)ͩͳɻ ʹཱͭͱ͜ΖͰ diff-detector(ࣗ࡞)
https://ihara2525.tumblr.com/ “Ұߦͷϩάͷ͜͏ʹɺҰਓͷϢʔβ͕͍Δ”
• ΤϥʔόδΣοτͱ͍͏ߟ͑ • ೦ʹࢥ͏ϢʔβΛগͳ͍͖͍ͯͨ͘͠ • ࢹϢʔβͷظʹԠ͑ΔͨΊͷπʔϧ
• ʮࢹʯʹΑΓ • োΛະવʹ͙ • োʹૉૣ͘ؾͮ͘ • োͷݪҼಛఆͷώϯτ/MTTRͷॖ
mackerel-plugin-axslog ͱੜ
None
• mackerel-plugin-axslog • https://github.com/kazeburo/mackerel-plugin-axslog • mackerel-plugin-accesslog ͱಉ͘͡accesslogͷՄࢹԽ • status͝ͱͷͱׂ߹ɺresponse timeͷpercentileΛܭଌ
• ूܭ͢ΔlabelΛมߋՄೳɾJSONαϙʔτ • ߴ
0 2 4 6 8 accesslog(ltsv) axslog(ltsv) axslog(json) 1.17s 0.584s
7.976s 120ສߦ(20000req/sec)ͷϩάΛॲཧ͢Δ࣌ؒ
• ߴԽͷར • γεςϜෛՙΛؾʹͤͣɺʮΨϯΨϯʯϝτϦΫεΛ૿ͤΔ • ϑΟϧλػೳͷՃ
[plugin.metrics.axslog-web-googlebot] command = "/usr/local/bin/mackerel-plugin-axslog --key-prefix=googlebot \ --logfile /var/log/nginx/access.log --filter Googlebot"
[plugin.metrics.axslog-web-adsbot] command = "/usr/local/bin/mackerel-plugin-axslog --key-prefix=adsbot \ --logfile /var/log/nginx/access.log --filter AdsBot-Google"
• mackerel-plugin-postfix-log • https://github.com/kazeburo/mackerel-plugin-postfix-log • SMTP • AxlogͰlogrotateΛै͢Δίʔυॻ͍ͨͷͰ͙͢Ͱ͖ͨ
None
postfixlog.total_delay.average 0.240476 1555681849 postfixlog.total_delay.99_percentile 0.250000 1555681849 postfixlog.total_delay.95_percentile 0.240000 1555681849 postfixlog.total_delay.90_percentile
0.240000 1555681849 postfixlog.recving_delay.average 0.040000 1555681849 postfixlog.recving_delay.99_percentile 0.040000 1555681849 postfixlog.recving_delay.95_percentile 0.040000 1555681849 postfixlog.recving_delay.90_percentile 0.040000 1555681849 postfixlog.queuing_delay.average 0.000476 1555681849 postfixlog.queuing_delay.99_percentile 0.010000 1555681849 postfixlog.queuing_delay.95_percentile 0.000000 1555681849 postfixlog.queuing_delay.90_percentile 0.000000 1555681849 postfixlog.connection_delay.average 0.090000 1555681849 postfixlog.connection_delay.99_percentile 0.090000 1555681849 postfixlog.connection_delay.95_percentile 0.090000 1555681849 postfixlog.connection_delay.90_percentile 0.090000 1555681849 postfixlog.transmission_delay.average 0.090000 1555681849 postfixlog.transmission_delay.99_percentile 0.090000 1555681849 postfixlog.transmission_delay.95_percentile 0.090000 1555681849 postfixlog.transmission_delay.90_percentile 0.090000 1555681849 postfixlog.transfer_num.2xx_count 1.615385 1555681849 postfixlog.transfer_num.4xx_count 0.000000 1555681849 postfixlog.transfer_num.5xx_count 0.000000 1555681849 postfixlog.transfer_total.count 1.615385 1555681849 postfixlog.transfer_ratio.2xx_percentage 100.000000 1555681849 postfixlog.transfer_ratio.4xx_percentage 0.000000 1555681849 postfixlog.transfer_ratio.5xx_percentage 0.000000 1555681849 ड৴࣌ͷԆ Ωϡʔʹೖ͍ͬͯΔ࣌ؒ ૹ৴ઌͷଓʹ͔͔Δ࣌ؒ ૹ৴ͷԆ
• mackerel-plugin-log-incr-rate • https://github.com/kazeburo/mackerel-plugin-log-incr-rate • ͋Δϩάʹର͢Δผͷϩάͷߦͷ૿Ճׂ߹Λࢹ͢Δ • accesslogʹର͢Δapplication_log, errorlogͷ݅ͳͲ •
application_logͷॻ͖ࠐΈ͕രൃͯ͠ϩάܭଌʹӨڹͨ͠োʹର͢Δࢹ
None
• mackerel-plugin-gzip-response • Not OSS • ϨεϙϯεͷGzipѹॖ͕ߦΘΕ͍ͯΔ͔ࢹ • Ұ෦ΫϥΠΞϯτͷ࣮ͰGzip͕ແޮʹͳͬͨ··ɺେ͖ͳ৴ͱͳΔϚε λʔߋ৽͕ߦΘΕɺωοτϫʔΫʹෛՙ͕͔͔Δࣄଶ͕͋ͬͨ
• ϩάʹϨεϙϯεͷ Conent-Encoding ϔομΛه͠ूܭ
None
• Mackerel Plugin ࡞ύλʔϯ • ো/োʹܨ͕Δͷൃݟ • Metrics Plugin ͷ࡞ͱαʔόͷө
• MetricsΛΈͯͷɺᮢઃఆɾਵ࣌ݟ͠
DB ӡ༻ͱࢹ
• ϗετͷεςʔλεΛࢹ͢Δ • ϗετεςʔλε Standby ͷDB(slave)αʔόΛ production ʹೖ • ϝϯςφϯε࡞ۀͷͨΊϨϓϦέʔγϣϯ͕ࢭ·͍͕ͬͯͨɺ௨དྷͳ͍
App App consul consul DNS consul consul 1) look up
DNS 2) connect DB check mysql uptime before slave slave slave
App App consul consul DNS consul consul 1) look up
DNS 2) connect DB A) check mysql uptime After Mackerel batch batch batch B) check host status file B’ ) update host status file by cron slave slave slave
• Consul ͷαʔϏε͕༗ޮʹͳΔͨΊʹɺmackerelͷεςʔλεͷมߋ͕ ඞཁɻΞϥʔτʹؾ͕ͭ͘Մೳੑˢ • ϗετεςʔλεΛϩʔΧϧͷͲ͔͜ʹॻ͖ࠐΉػೳɺ mackerel-agent ʹ͋Δͱศར?
• Slave Ͱͷ Trigger ࣮ߦΛकΔ • ProductionͷҰ෦ͷslaveΛɺௐࠪɾूܭ༻ͱͯ͑͠ΔΑ͏ʹ͍ͯ͠Δ • ηϯγςΟϒͳใʹ͍ͭͯSlave্ͷTriggerͰআ
• MySQLͱϨϓϦέʔγϣϯͱTrigger • MySQLͷϨϓϦέʔγϣϯͷํࣜʹSQL͕సૹ͞Εͯ͘ΔStatementํࣜͱɺ σʔλ͕ૹΒΕͯ͘ΔRow Basedํࣜɺ·ͨͲͪΒ͔͕ࣗಈͰબ͞ΕΔMixed ํ͕ࣜ͋ΔɻMixedํࣜͰجຊStatementํ͕ࣜͩɺඇܾఆੑΫΤϦ͕Θ ΕΔͱɺRow BasedͱͳΔ •
ϨϓϦέʔγϣϯΛड͚Δslaveαʔό্ͰͷTriggerɺStatementํࣜͷ߹ͷ Έ࣮ߦ͞ΕΔ • SlaveͰtriggerΛ҆શʹར༻͢ΔͨΊʹҙਤ͠ͳ͍ Row basedͳϨϓϦέʔ γϣϯΛൃݟ͢Δඞཁ͕͋Δ
• check-mysqlbinlog-rbr-fallbacks • No OSS • mysqlbinlog ίϚϯυ͍ɺRow BasedʹͳͬͨςʔϒϧΛݕग़
Master Backup Anon Slave Trigger binlog binlog check-mysqlbinlog-rbr-fallbacks Detect the
SQL and fix data and applications if necessary App
• ઓ͍ͯ͠ΔݶΓɺࢹ૿͑Δ • Application Server: 175 Metrics • DB Server:
245 Metrics
• Ҏ্