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
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
990
GCRと脆弱性検査
youyo
0
250
goodbye-ec2
youyo
0
860
About AWS Lambda and kintone
youyo
1
310
TerraformとWerckerとAWS Organizationsで始めるステージング・開発環境構築 / terraform-wercker-aws-organizations
youyo
1
34k
ServerlessのおさらいとIronFunctionsについて
youyo
0
490
Other Decks in Technology
See All in Technology
40代で“やっとエンジニアになれた”――閉じた学びを開き、空の青さを知る / 20260628 Naoki Takahashi
shift_evolve
PRO
4
880
Zenoh on Zephyr on LiteX
takasehideki
2
110
徹底討論!ECS vs EKS!
daitak
3
1.7k
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
130
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.7k
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
200
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
320
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
200
2026 AI Memory Architecture
nagatsu
0
280
OTel × Datadog で 「AI活用」を計測し、改善に繋げる
shihochan
2
640
螺旋型キャリアの生存戦略 / kinoko-conf2026
rakus_dev
1
990
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
450
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
KATA
mclloyd
PRO
35
15k
Docker and Python
trallard
47
3.9k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Amusing Abliteration
ianozsvald
1
210
Information Architects: The Missing Link in Design Systems
soysaucechin
0
980
Bash Introduction
62gerente
615
220k
Designing for Performance
lara
611
70k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
270
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
430
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ͱ྆ํ͏·͍͚͍͖͍ͯͨ͘)