Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
それでも僕はzabbixと生きていく
Search
youyo
October 07, 2017
Technology
530
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
それでも僕はzabbixと生きていく
youyo
October 07, 2017
More Decks by youyo
See All by youyo
家の快適度を計測してみた
youyo
1
240
Get started AWS CDK
youyo
0
180
Tried to create a deployment pipeline of AutoML Vision.
youyo
0
130
API GatewayのWebSocket対応について
youyo
0
1k
GCRと脆弱性検査
youyo
0
270
goodbye-ec2
youyo
0
950
About AWS Lambda and kintone
youyo
1
320
TerraformとWerckerとAWS Organizationsで始めるステージング・開発環境構築 / terraform-wercker-aws-organizations
youyo
1
34k
ServerlessのおさらいとIronFunctionsについて
youyo
0
510
Other Decks in Technology
See All in Technology
The future of architectural work
ufried
0
160
公共分野での生成AI活用
toru_kubota
1
190
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
410
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
230
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
170
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
4
220
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
210
Maestro MCPとClaude Code Skillsによる自律的なE2Eテスト支援
asmz
0
420
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
460
新卒エンジニア、 介護士になる
ryu1013
1
690
視野はAIに、視座は人に / ai-for-breadth-humans-for-perspective
nkzn
6
3.1k
Sinatra on PicoRuby ローカルでセルフホスト
bash0c7
0
100
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Google's AI Overviews - The New Search
badams
0
1.7k
Abbi's Birthday
coloredviolet
4
11k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
580
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
A designer walks into a library…
pauljervisheath
211
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
290
The SEO Collaboration Effect
kristinabergwall1
1
620
Navigating Team Friction
lara
192
16k
Transcript
ͦΕͰZabbixͱ ੜ͖͍ͯ͘
ࣗݾհ • ੴᖒਓ(Naoto Ishizawa) • twitter: @youyo_ • github: https://github.com/youyo
• Cloud Architect @ heptagon inc. • I love golang, python, ruby • ࠷ۙϋϚ͍ͬͯΔͷ: υϥΰϯϘʔϧυοΧϯότϧ LRଙޛ൧ͷݩΛखʹೖΕͨ͜ͱ͕࠷ۙҰ൪خ͔ͬͨ͠
mackerel͖Ͱ͔͢ʁ
mackerelͱ • ΤϯδχΞΛϫΫϫΫͤ͞ΔʮײతαʔόʔࢹαʔϏεʯ https://mackerel.io/ja/ • Monitoring as a service
͔Βݟͨmackerelͷ͍͍ͱ͜Ζ • ͍͍ײ͡ʹcloudwatch͔Βσʔλऔ͖ͬͯͯ͘ΕΔ • ͖Ε͍ͳUI • ϑϧϚωʔδυ • ๛ͳNotification
࠷ߴ
mackerelͷಛʹ͍͍ͱ͜Ζ • CloudWatch APIͱͷγʔϜϨεͳ࿈ܞ IUUQTNBDLFSFMJPKBGFBUVSFTBXTJOUFHSBUJPO
࠷ߴ
͔ΒݟͨmackerelͷؾʹͳΔͱ͜Ζ • 1,800ԁ ϗετ/month ->2,000ϗετࢹ͢ΔͱͳΔͱ360ສԁ ->ࣗલͰzabbixͰࢹ͢Ε30ສ͔͔Βͳ͍(ࣾൺ) • ϑϧϚωʔδυ ->ָͳΜ͚ͩͲͭ·Βͳ͍ʂ ->mackerelΈ͍ͨͳࢹγεςϜ࡞Γ͍ͨʂʂ
(ӡ༻͕ࣄͳΜͰͦͷࠜװͱͳΔͷࣗલͰ͖࣋ͭ)
mackerelʹ͋ͬͯzabbix ʹͳ͍ͷΛิ͍͍͑
͔Βݟͨmackerelͷ͍͍ͱ͜Ζ • ͍͍ײ͡ʹcloudwatch͔Βσʔλऔ͖ͬͯͯ͘ΕΔ • ͖Ε͍ͳUI • ϑϧϚωʔδυ • ๛ͳNotification
͜Ε͔ΒZabbixͱੜ͖͍ͯͨ͘Ίʹ ZabbixͰ͍͍ײ͡ʹ͑Δ AWS Integration࡞Ζ͏
Zabbixͱ
Zabbixͱ • ZabbixͱɺαʔόʔɺωοτϫʔΫɺΞϓϦέʔγϣϯΛࢹ͢ΔͨΊ ͷιϑτΣΞͰ͢ɻZabbixओʹҎԼͷ3ͭͷػೳΛ༗͍ͯ͠·͢ɻ • αʔόωοτϫʔΫʹଓ͞ΕͨσόΠεΛࢹ͢Δࢹػೳ • ऩूͨ͠σʔλΛͱʹάϥϑԽɺωοτϫʔΫϚοϓͷ࡞Λߦ͏ά ϥϑΟΧϧදࣔػೳ •
ऩूͨ͠σʔλʹᮢΛઃఆ͠ɺো/෮چ࣌ʹཧऀʹ௨Λߦ͏ো ݕ/௨ػೳ IUUQXXX[BCCJYKQEPDVNFOUTXIBU@JT@[BCCJY
ेͳػೳΛ͍࣋ͬͯΔ
ZabbixͷؾʹͳΔͱ͜Ζ • ΫϥυϑΝʔετͳ͜ͷ࣌͝ੈɺ͍͍ͪͪΠϯελϯεΛzabbixʹϗετ ొͱ͔ͨ͘͠ͳ͍ • ࣗಈొͰ͖Δɻ͚Ͳࣗಈআ… • zabbix-agentΛΠϯετʔϧͰ͖ͳ͍αʔϏεͷࢹͲ͏͢Δʁ
Ͳ͏Δʁ • ΫϥυϑΝʔετͳ͜ͷ࣌͝ੈɺ͍͍ͪͪΠϯελϯεΛzabbixʹϗετ ొͱ͔ͨ͘͠ͳ͍ • ࣗಈొͰ͖Δɻ͚Ͳࣗಈআ… =>LowLevelDiscovery • zabbix-agentΛΠϯετʔϧͰ͖ͳ͍αʔϏεͷࢹͲ͏͢Δʁ =>LowLevelDiscovery
Low Level Discovery
LLD (Low Level Discovery) • “ϩʔϨϕϧσΟεΧόϦʹΑΓɺίϯϐϡʔλʔ্ͷछʑͷཁૉʹରͯ͠ ΞΠςϜɺτϦΨʔɺάϥϑΛࣗಈతʹ࡞Ͱ͖·͢ɻྫ͑ɺZabbix ༻͍ͯ͠ΔϚγϯ্ͷϑΝΠϧγεςϜ·ͨωοτϫʔΫΠϯλʔϑΣʔ εͷࢹΛࣗಈతʹ։࢝Ͱ͖·͢ɻͦͷͨΊʹɺ֤ϑΝΠϧγεςϜ·ͨ ωοτϫʔΫΠϯλʔϑΣʔεʹରͯ͠खಈͰΞΠςϜΛ࡞͢Δඞཁ͋
Γ·ͤΜɻ͞Βʹɺఆظతʹ࣮ࢪ͞ΕΔσΟεΧόϦͷ࣮ࡍͷ݁Ռʹج͍ͮ ͯෆཁͳཁૉΛࣗಈతʹআ͢ΔΑ͏ʹɺZabbixΛઃఆ͢Δ͜ͱ͕Ͱ͖· ͢ɻ” IUUQTXXX[BCCJYDPNEPDVNFOUBUJPOKQNBOVBMEJTDPWFSZMPX@MFWFM@EJTDPWFSZ
LLD (Low Level Discovery) • ͍͍ײ͡ʹࢹରΛݟ͚ͭͯ • ͍͍ײ͡ʹσʔλूΊͯ • ͍͍ײ͡ʹࢹରফ͑ͨΒϗετొআͯ͘͠ΕΔ
“ϢʔβʔɺಛఆͷJSONϓϩτίϧʹै͏ͱ͍͏݅ͰɺಠࣗͷλΠϓ ͷσΟεΧόϦΛఆٛͰ͖·͢ɻ” IUUQTXXX[BCCJYDPNEPDVNFOUBUJPOKQNBOVBMEJTDPWFSZMPX@MFWFM@EJTDPWFSZ
࠷ߴ
Ͳ͏͢Ε͍͍ʁ • UserParameterͰεΫϦϓτΛ࣮ߦ͢Δ • Loadable modulesΛ࡞͠ɺݺͼग़͢
UserParameter & Loadale modules • UserParameter “رͷσʔλͷݕࡧΛߦ͏ίϚϯυΛॻ͖ɺΤʔδΣϯτઃఆϑΝΠϧͷ ϢʔβʔύϥϝʔλʢʮUserParameterʯઃఆύϥϝʔλʣʹؚΊΔ͜ͱ͕ Ͱ͖·͢ɻ” >UserParameter=<key>,<command>
• Loadable modules “loadable modulesɺZabbixͷػೳΛ֦ு͢ΔͨΊͷɺੑೳΛߟྀͨ͠ બࢶͱͳΓ·͢ɻZabbix 2.2͔ΒɺੑೳΛଛͶΔ͜ͱͳ͘ɺZabbixΤʔ δΣϯτ͓ΑͼαʔόʔΛ֦ு͢ΔͨΊͷloadable modules͕αϙʔτ͞ ΕΔΑ͏ʹͳΓ·ͨ͠ɻ” IUUQTXXX[BCCJYDPNEPDVNFOUBUJPOKQNBOVBMDPOpHJUFNTVTFSQBSBNFUFST IUUQTXXX[BCCJYDPNEPDVNFOUBUJPOKQNBOVBMDPOpHJUFNTMPBEBCMFNPEVMFT
Loadable modulesͰ AWS Integration Ͱ͖ΔΑ͏ʹ͠Α͏
Ͱࠔͬͨ͜ͱ͕… • loadable modulesCݴޠͰॻ͘ඞཁ͕͋Δ • ɺCݴޠॻ͚ͳ͍…
g2z
What is "g2z”? • https://github.com/cavaliercoder/g2z • loadable modulesΛgolangͰॻ͚Δ. (golangͰshared libraryͱͯ͠ੜ)
• Zabbix version 2.xܥ, 3.0ରԠ package main import ( "strings" "github.com/cavaliercoder/g2z" ) func main() { panic("THIS_SHOULD_NEVER_HAPPEN") } func Echo(request *g2z.AgentRequest) (string, error) { return strings.Join(request.Params, " "), nil } func init() { g2z.RegisterStringItem("go.echo", "Hello world!", Echo) }
উͬͨʂ
Ͱݱ࣮͘ͳ͔ͬͨ
ͳ͔ͥ͏·͘ಈ͔ͳ͍
Loadable modulesΛ ݺͼग़͢ͱzabbix-agent ϓϩηε͕ͨ·ʹݻ·Δ
IUUQTHJUIVCDPNDBWBMJFSDPEFSH[JTTVFT
ҙ༁ • ֎෦ʹhttpϦΫΤετΛߦ͏ͱɺݻ·Δ͜ͱ͕͋Δ • golangѱ͘ͳ͍ • zabbixѱ͘ͳ͍ • goroutine͕ؔͯ͠Δͷ͔ͳʁ •
single coreͷϚγϯͰͳΒਖ਼ৗʹಈͬ͘Ά͍Αʁ ->͍ಈ͔ͳ͍.. • ͪΐͬͱαϙʔτ͖͠Εͳ͍Θʔ
٧Μͩ…
UserParameterʹ Γସ͍͑ͯ͘
UserParameterͰLLD͢Δʹ • ϓϩάϥϜॻ͍ͯshell-scriptͰԿͰ͍͍ • ܾ·ͬͨϑΥʔϚοτ(json)ͰσʔλΛฦ͢ඞཁ͕͋Δ { "data":[ { "{#INSTANCE_ID}":"i-xxxxxxxxxx", "{#INSTANCE_NAME}":"test1"
}, { "{#INSTANCE_ID}":"i-yyyyyyyyyy", "{#INSTANCE_NAME}":"test2" }, { "{#INSTANCE_ID}":"i-zzzzzzzzzz", "{#INSTANCE_NAME}":"test3" } ] }
UserParameterͰLLDͨ͠ • https://github.com/youyo/zabbix-userparameter-script-aws-integration • EC2, RDS(and cluster)ͷdiscoveryʹରԠ • cloudwatchͷϝτϦΫεऔΕΔ •
zabbixͷtemplate࡞த • loadable modulesͱൺֱͯ͠ফඅϦιʔεͷ໘ͰྼΔ͕͠ΐ͏͕ͳ ͍
͍͍͍ͩͨײ͡ʹ ͳ͖ͬͯͨ
͍ͭͰʹzabbixڥΛ ࡞Γ͢͜ͱʹͨ͠
Zabbix3.4 Full containernized on k8s
·ͱΊ • zabbixUserParameterͱLoadale modulesΛ͏͜ͱͰࣗ༝ʹ֦ுͰ͖Δ • ཉ͍͠ػೳࣗͰ࡞͍͚͍͍ͬͯ • ผʹzabbixʹݻࣥ͢Δඞཁͳ͍ • mackerel࠷ߴͩ͠prometheus࠷ߴ
• zabbix࠷ߴ ࠓޙ͍ͬͯ͘ • Infrastracture as code • zabbixίʔυͰཧ͍ͨ͠ • terraformͷpluginΛॻ͍͍ͯͧ͘
͓·͚: prometheusࡶײ • prometheuszabbixͷΑ͏ͳࢹπʔϧ • ΠϯετʔϧͳͲόΠφϦஔ͚ͩ͘ͰࡁΉͷͰָ • Service discoveryͷػೳ͕͋Γɺࠓճ࡞ͨ͠Α͏ͳػೳॳΊ͔Β͍࣋ͬͯ ΔɻΫϥυωΠςΟϒɻ
• ίϯςφͷࢹ͍͍ײ͡ʹߦ͑ΔɻcAdvisorͱͷ࿈ܞ͕ૉΒ͍͠ɻ • σʔλͷอଘظؒσϑΥϧτ15ɻظอଘ(long term storage)ਪ͞ Εͳ͍ɻͨͩ͠࠷ۙ֎෦ετϨʔδͱͯ͠influxdb͕αϙʔτ͞Εͨؾ͕͢Δ ͷͰཁݕূ • Ͱͦͦࢹσʔλͷظอଘ͕ඞཁͳέʔεͬͯ͋·Γͳ͍ؾ͕ͯ͠Δɻ (zabbixʹ׳Ε͗ͨ͢) • Ξϥʔτϧʔϧͷهड़͕େมͦ͏ɻzabbixͷ΄͏͕ݸਓతʹΘ͔Γ͍͢ɻ • ΞϥʔτपΓΛ͏·͍͜ͱΕΔΑ͏ʹͳͬͨΒଈಋೖ͍ͨ͠Ϩϕϧ (zabbixͱ྆ํ͏·͍͚͍͖͍ͯͨ͘)