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
新卒がZabbix3でサーバ監視を冗長化!?H2Oにも移行した!
Search
miyazawaiti
September 14, 2017
Technology
0
21k
新卒がZabbix3でサーバ監視を冗長化!?H2Oにも移行した!
https://atnd.org/events/90730
miyazawaiti
September 14, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
450
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
200
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
530
Wantedly での Datadog 活用事例
bgpat
1
440
UI State設計とテスト方針
rmakiyama
2
550
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
150
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
45
7k
The Pragmatic Product Professional
lauravandoore
32
6.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
The Cult of Friendly URLs
andyhume
78
6.1k
We Have a Design System, Now What?
morganepeng
51
7.3k
Music & Morning Musume
bryan
46
6.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Transcript
৽ଔ͕ZABBIX3ͰαʔόࢹΛ Խ!?H2OʹҠߦͨ͠ʂ ITI GROUP INFRA SRE TEAM HIKARU MIYAZAWA
ɾ̏ɾ AGENDA 1. ࣗݾհ 2. ZABBIX3.0ͰࢹΛԽͨ͠ܦҢ 3. H2OΛ࠾༻ͯ͠Α͔ͬͨ͜ͱ 4. ZABBIX×H2O
5. ·ͱΊ
ɾ̏ɾ HIKARU MIYAZAWA ɾ2016/10ʙ2017/3 גࣜձࣾITIͷΠϯλʔϯɺ ΠϯϑϥͷۀΛܦݧ ɾ2017/4ʙࠓ·Ͱ גࣜձࣾITIೖࣾ ΠϯϑϥSREνʔϜ झຯɿυϥϜɺ݈߁ΦλΫɺήʔϜɺ
͖ͳςΩετΤσΟλɿSublime Text
ɾ̏ɾ ZABBIX3.0ͰࢹΛԽͨ͠ܦҢ ▸ ฐࣾࢹαʔόzabbix2.2ɺࣗࣾͰߏங,ӡ༻ ▸ 6݄ʹ͘͞Βͷϝϯςφϯε͕ൃද ▸ ϝϯςφϯεதࢹΛܧଓͰ͖ͳ͍ ▸ ͜ͷػձʹ͔ͤͬ͘ͳͷͰ2ମ੍ͰԽ
None
None
ɾ̏ɾ ZABBIX3.0 ▸ શແྉͰΦʔϓϯιʔεͷ ࢹιϑτΣΞ ‣ LAMPڥʴzabbix-serverͰಈ͘ ▸ ࢹରαʔόʹɺ zabbix-agentΛΠϯετʔϧ
▸ ฐࣾͷࢹରαʔόɿ200ʙ
ɾ̏ɾ ͖ʹࢹɺ௨ʂࣗ༝ʂ εΫϦʔϯͰՄࢹԽ →ϦΞϧλΠϜͰোঢ়گѲ SlackνϟοτϫʔΫͷ ௨ઃఆ؆୯
ɾ̏ɾ GMO ConoHa ͷ࠾༻ཧ༝ ▸ AWSଆͷোͷӨڹΛड͚ͳ͍ ▸ ZabbixͷεϖοΫཁ݅Λຬ͍ͨͭͭ҆͠ʂ(2GB,3ίΞ,1700ԁ/݄) ▸ DiskSSDͰ50GB
※ՃDiskߴ͍Ͱ͢(ຖ݄/2400ԁ)
ɾ̏ɾ OSͱϛυϧΣΞ ▸ CentOS6.9(Final) ▸ Apache2.2.15 ▸ MySQL5.7.19 ▸ PHP7.0.18
▸ zabbix-server3.0.10-1 ▸ (zabbix-agent3.0.10-1)
ZABBIXΠϯετʔϧ ؆୯ͳͷͰ ׂѪ͍͖ͤͯͨͩ͞·͢ʂ
ɾ̏ɾ طଘͷZABBIXࢹαʔόͷઃఆΛ৽αʔόʹө ▸ ZABBIXผόʔδϣϯҠߦ࣌ͷҙ ▸ ɾτϦΨʔͷ݅ࣜͷมߋ ▸ ɾෆ࠾༻ʹͳͬͨΞΠςϜ ▸ ɾো࣌ΞΫγϣϯͷઃఆ͕exportग़དྷͳ͍
▸ ɾexportͨ͠xmlϑΝΠϧॻ͖͕͑ඞཁ
ͦͯ͠͏·͘ ͍ͬͨͷ͔ʂʁ
▸ ͘͞ΒͷϝϯςφϯεલʹԽྃ ▸ ΄ͱΜͲ͋ͩͪΜ͞Μ͕Γ·ͨ͠ ▸ ݟ͍͑ͯͨ՝ ▸ DBͷఆظతͳόοΫΞοϓ ▸ zabbixDB͕ੜ͖͍ͯΕ༰қʹ෮چͰ͖Δɻ
ɾ̏ɾ ॕʂࢹԽʂʂ
ɾ̏ɾ ϝϯςφϯε3લͷҰίϚ ▸ ▸ ɹɹɹɹɹɹɹɹɹɹɹʮఆظతʹDBΛόοΫΞοϓ͢ΔγΣϧ,ॻ͚·ͨ͠ʂʯ ▸ ▸ ɹ͋ͩͪΜ͞Μʮςετͯ͠Έͨʁ ɹɹɹɹɹɹɹɹͪΐͬͱ֬ೝͯ͠ΈΑ͏ʯ(ΧλΧλ)
▸ mysqldump -u user -x -p --all-databases < mysqldump.sql
Μʁ
—all-databases < mysqldump.sql ͋……
None
ɾ̏ɾ ͓͔Γ͚ͨͩΖ͏͔ ▸ mysqldump -u user -x -p --all-databases <
mysqldump.sql ▸ ۭͬΆΛͿͪࠐΉ ۭͬΆ ZABBIXͷDB
None
ɾ̏ɾ ຊདྷ͜Ε ▸ mysqldump -u user -x -p --all-databases >
mysqldump.sql ۭͬΆ ZABBIXͷDB
࣍ͷɺ͋ͩͪΜ͞Μ͕ ޕલதͰ͠·ͨ͠ɻ(ૣ͗͢) (ࣗ༗څͰͨ͠ww)
ɾ̏ɾ εΫϦʔϯͷ࡞ ▸ ཁɿো࣌ʹࢹσʔλΛάϥϑͰ͙͢ʹݟ͍ͨʂ ▸ Γ·͢ʂͤͯԼ͍͞ʂ͋Εʁ ▸ ฐࣾͷࢹରϗετ200Ҏ্ ▸ 1ϗετʹ͖ͭ12ݸͷࢹ߲
▸ खಈͰϙνϙν͢Δ߹ ▸ 200ϗετ×12߲×4ΫϦοΫʹ9600…Ұສճͷ࡞ۀ…
ɾ̏ɾ ਖ਼͠ΜͲ͍…
ɾ̏ɾ ޮΑ͘Ζ͏ʂ
ɾ̏ɾ ZABBIXͷઃఆIMPORT/EXPORTͰ͖Δ ZabbixͷઃఆʢҰ෦ʣ ɹɹɹɹɹɹɹɹɹɹɹɾάϧʔϓɹɹɹɹɹ ɹɹɹɹɹɹɹɹɹɹɹɹɹɾςϯϓϨʔτ ɹɹɹɹɹɹɹɹɹɹɾϗετ ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɾωοτϫʔΫϚοϓ ɹɹɹɹɹɹɹɹɹɹɹɾΠϝʔδ ɹɹɹɹɹɹɹɹɹɹɹɹɾεΫϦʔϯ XMLorJSONܗࣜ
ɾ̏ɾ εΫϦʔϯ͜Μͳײ͡Ͱ͢
ɾ̏ɾ εΫϦʔϯͷXMLͱ࣮ࡍͷWEB্
ɾ̏ɾ XMLϑΝΠϧΛࣗಈੜ͢ΔSHELLΛ࡞
͜ ͜ Ͱ͕ ʂ
ɾ̏ɾ ͍ͬͦ͘ ▸ ϦΞϧλΠϜͰߋ৽͞ΕΔ120ݸͷάϥϑͷදࣔͬͺΓ ॏ͔ͬͨɻ
ͱͳΔͱNGINX ͕͍͍ͷ͔ʁ
▸ ݩDeNAͷԞҰึࢯ͕։ൃɻ ▸ HTTP/2ʹରԠͨ͠രͷWEBαʔόʔͰ͋Δ ▸ ͋ͩͪΜ͞Μਪ͠(ΏΔ;ΘΩϟϯύʔ͞Μ) ɾ̏ɾ H2Oͷ࠾༻
ɾ̏ɾ HTTP/1.1ͷͲ͕͜ѱ͍ͷʁ ‣ ʮHTTPύΠϓϥΠϯʯ ˠલճϦΫΤετͷྃΛͨͣʹ࣍ͷϦΫΤετΛૹ৴͢Δ͜ͱ͕Մೳ ‣ ʮαʔόʔϦΫΤετͷॱ൪௨ΓʹϨεϙϯεΛฦ͞ͳ͚ΕͳΒͳ͍ʯ →݁ہॱ൪͕ͪൃੜ͠ɺ Ԇ͍ͯͨ͠ɻ
ɾ̏ɾ HTTP/2ͰԿ͕มΘΔ͔ ‣ ଟॏԽ ɾಉ࣌ʹ100Ҏ্ͷϦΫΤετΛൃߦՄೳ ɾλΠϛϯάɺϨεϙϯεͷॱং͕ؔͳ͍ ɾෳฒྻॲཧ →HTTP/1.1Ͱͷॱ൪͕ͪͳ͍ ‣ ϔομѹॖ(HTTP/2ͷϔομେ͖͍300~500B)
ྫʣ100ճϦΫΤετ͕དྷͯɺຖճ300όΠτͷ ϔομΛૹΒͳͯ͘ࡁΉ →খ͞ͳϦΫΤετΛԿճૹͬͯ͘ͳΒͳ͍
ɾ̏ɾ ͦΜͳHTTP/2Λ࠷େݶʹ׆͔ͤΔ͔ ▸ ࣮HTTP/2ʹରԠ͔ͨ͠Βͱ͍ͬͯɺ αʔόଆͷઃఆ͕ͪΌΜͱ͍ͯ͠ͳ͍ͱ ͍͍ͱ͜ΖΛ׆͔ͤͳ͍ ▸ྫ͑…
ɾ̏ɾ ༏ઌ੍ޚ͕͍͢͝ ▸ ༏ઌ੍ޚ WEBϖʔδΛදࣔ͢ΔͷʹඞཁͳϑΝΠϧΛͲͷॱ൪Ͱ༏ઌతʹಡΈࠐΉ͔Λ͖Ί ͓ͯ͘ ᶃHTMLᶄCSSᶅJSᶆը૾ᶇը૾ᶈը૾ ▸ ΫϥΠΞϯτଆ →Firefoxݡ͍
→Chrome͋Δ͚Ͳશવ׆͔͍ͤͯͳ͍ Safari,IE-Edge,ͦͷଞͷϒϥβ༏ઌͷ֓೦͢Βແ͠ɻɻ αʔόଆͰͳΜͱ͔͢Δɻɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ
ɾ̏ɾ ༏ઌ੍ޚ͕͍͢͝ ▸ ʮhttp2-reprioritize-blocking-assetsʯ ▸ CSSͱJSΛ࠷༏ઌͰϨεϙϯεΛฦ͢ ▸ HTMLΛฦ͢ʢ͜ͷ࣌ͰɺWEBϖʔδͷϨϯμϦϯά͕ ։࢝Ͱ͖Δʣ ▸
ը૾Λฦ͢ʢฒྻॲཧͳͷͰॱ൪ΛؾʹͤͣҰؾʹૹΔʣ ▸ ※nginxͰؤுΕಉ͡Α͏ͳઃఆ͕ग़དྷΔΒ͍͠
ɾ̏ɾ αʔόϓογϡ ▸ αʔόϓογϡ ▸ ϦΫΤετΛઌಡΈͯ͠ඞཁͳϑΝΠϧΛૹΔ ྫʣHTMLͷϦΫΤετड͚ͨΒCSS·ͱΊͯૹΔ ▸ Ωϟογϡ༗ແΛ֬ೝͰ͖ΔͷͰɺແବʹૹΔ͜ͱͳ͍
Ͳ͏ͤઃఆ͢Δͷ ΊΜͲ͍͘͞Μ͡Ό Ζʁ
ɾ̏ɾ ͳΜͱνϡʔχϯάσϑΥϧτͰON ▸ ී௨ʹ্ཱͪ͛ͨॠ͔ؒΒരʂ ▸ νϡʔχϯάʹ͔͚ͯͨ࣌ؒΛଞͷλε Ϋʹ͑Δ
ɾ̏ɾ APACHE ઃఆϑΝΠϧ
ɾ̏ɾ H2O ઃఆϑΝΠϧ ▸ h2o.conf
ɾ̏ɾ ▸ zabbix.conf
ɾ̏ɾ ෛՙςετ ▸ AWS EC2Πϯελϯεt2.micro ▸ Apache2.4(νϡʔχϯάσϑΥϧτ) ▸ H2O2.2(νϡʔχϯάσϑΥϧτ) ▸
30ສϦΫΤετɺಉ࣌ଓ1000ϢʔβͰݕূɻ ▸ ςετπʔϧGoad
ɾ̏ɾ ෛՙςετ݁Ռ ▸ Apache 13.65ඵͰϑϦʔζ ▸ H2O 20ඵͰશϦΫΤετΛࡹ͘
ɾ̏ɾ ෛՙςετ݁Ռ Apache-2.4 H2O-2.2 300,000Requests 300,000Requests 1,000user 1,000user 1m3.65s 20.0s
ɾ̏ɾ ෛՙςετ݁Ռ Apache-2.4 H2O-2.2 300,000Requests 300,000Requests 1,000user 1,000user 1m3.65s 20.0s
Freeze… Done!
࣮ࡍʹH2Oͷ ͢͝͞Λ͓ݟͤ͠·͢
ɾ̏ɾ H2O×HTTP/2ͷ͗͢͢͝Δฒྻॲཧೳྗ
ɾ̏ɾ ZABBIX3.0×H2O×PHP7.0 ▸ H2O →ฒྻॲཧͰૣ͍ɺ࠷ॳ͔Βνϡʔχϯά͕͞ΕͯΔ Մಡੑͷߴ͍ઃఆϑΝΠϧ ▸ PHP7.0ૣ͍ ▸ ฐࣾͷ୲αʔϏεʹಋೖ͢Δ͖͔͚ͬʹͳͬͨɻ
▸ JoinsJob(δϣΠϯζδϣϒ),ITϓϩδΣΫτ໊ؑ,kiii(डୗ)
ɾ̏ɾ ·ͱΊ ▸ ࢹࣗࣾͰߏங ˠίετେ෯μϯˠ͔͠͠ӡ༻͕େม ▸ ࢹAWSҎ֎ͰԽ͢Δͷ͕͓͢͢Ί ˠAWSଆͷωοτϫʔΫো͕ى͖ͯࠔΔ͜ͱͳ͍ ▸ ͜Ε͔ΒͷWEBαʔόH2OʹมΘ͍͖ͬͯͦ͏
▸ Prometheusʹઓ͍ͨ͠
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝· ͨ͠ʂ