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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
グローバル基準のSREは、運用現場でどう機能したか:成熟度アセスメントの実践 / SRE NEXT 2026
sorawatanabe
0
140
関東Kaggler会発表資料
takoi
1
200
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
190
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
630
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
160
JavaScript 研修 (2026)
recruitengineers
PRO
2
460
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.1k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
ラジオの科学
frievea
0
280
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
450
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
We Are The Robots
honzajavorek
0
290
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Embracing the Ebb and Flow
colly
88
5.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
The Curious Case for Waylosing
cassininazir
1
450
Making the Leap to Tech Lead
cromwellryan
135
10k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Being A Developer After 40
akosma
91
590k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
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ͱ྆ํ͏·͍͚͍͖͍ͯͨ͘)