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
それでも僕はzabbixと生きていく
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
youyo
October 07, 2017
Technology
510
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
160
Tried to create a deployment pipeline of AutoML Vision.
youyo
0
120
API GatewayのWebSocket対応について
youyo
0
1k
GCRと脆弱性検査
youyo
0
260
goodbye-ec2
youyo
0
910
About AWS Lambda and kintone
youyo
1
310
TerraformとWerckerとAWS Organizationsで始めるステージング・開発環境構築 / terraform-wercker-aws-organizations
youyo
1
34k
ServerlessのおさらいとIronFunctionsについて
youyo
0
500
Other Decks in Technology
See All in Technology
個人OSSが、机の上から世界に広がるまでの話
shinyasaita
1
370
바이브풀 라이프
arawn
0
110
制約理論(ToC)入門 2026版
recruitengineers
PRO
7
2.1k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
1
370
Goでデータパイプラインを作ろう
sansantech
PRO
1
360
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.4k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
140
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
サイバー捜査員研修(後半)
nomizone
1
810
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
660
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
10k
Marketing to machines
jonoalderson
1
5.7k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
210
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
Designing for Performance
lara
611
70k
Mobile First: as difficult as doing things right
swwweet
225
10k
Code Reviewing Like a Champion
maltzj
528
40k
Practical Orchestrator
shlominoach
191
12k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
420
Build your cross-platform service in a week with App Engine
jlugia
234
19k
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ͱ྆ํ͏·͍͚͍͖͍ͯͨ͘)