-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
2833 lines (1557 loc) · 165 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html class="theme-next pisces use-motion" lang="zh-Hans">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />
<link href="//fonts.proxy.ustclug.org/css?family=Monda:300,300italic,400,400italic,700,700italic|Roboto Slab:300,300italic,400,400italic,700,700italic|Lobster Two:300,300italic,400,400italic,700,700italic|PT Mono:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />
<link href="/css/main.css?v=5.1.1" rel="stylesheet" type="text/css" />
<meta name="keywords" content="Hexo, NexT" />
<link rel="alternate" href="/atom.xml" title="Nero Blog" type="application/atom+xml" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=5.1.1" />
<meta name="description" content="这里就是一堆流水账和技术笔记 | LINUX初学者 | 黑苹果初学者">
<meta property="og:type" content="website">
<meta property="og:title" content="Nero Blog">
<meta property="og:url" content="http://blog.neroxps.cn/index.html">
<meta property="og:site_name" content="Nero Blog">
<meta property="og:description" content="这里就是一堆流水账和技术笔记 | LINUX初学者 | 黑苹果初学者">
<meta property="og:locale" content="zh-Hans">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Nero Blog">
<meta name="twitter:description" content="这里就是一堆流水账和技术笔记 | LINUX初学者 | 黑苹果初学者">
<script type="text/javascript" id="hexo.configurations">
var NexT = window.NexT || {};
var CONFIG = {
root: '/',
scheme: 'Pisces',
sidebar: {"position":"left","display":"post","offset":12,"offset_float":0,"b2t":false,"scrollpercent":false,"onmobile":false},
fancybox: true,
motion: true,
duoshuo: {
userId: '0',
author: '博主'
},
algolia: {
applicationID: 'WJLDIEBAYI',
apiKey: '084e9f2e63c4b34a4aecc924a43f504e',
indexName: 'nero',
hits: {"per_page":10},
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
}
};
</script>
<link rel="canonical" href="http://blog.neroxps.cn/"/>
<title>Nero Blog</title>
<script type="text/javascript">
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6990360e021ae3bf2debc80fd3be44dd";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">
<div class="container sidebar-position-left
page-home
">
<div class="headband"></div>
<header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-wrapper">
<div class="site-meta ">
<div class="custom-logo-site-title">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<span class="site-title">Nero Blog</span>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<p class="site-subtitle"></p>
</div>
<div class="site-nav-toggle">
<button>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section">
<i class="menu-item-icon fa fa-fw fa-home"></i> <br />
首页
</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section">
<i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
归档
</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags" rel="section">
<i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
标签
</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories" rel="section">
<i class="menu-item-icon fa fa-fw fa-th"></i> <br />
分类
</a>
</li>
<li class="menu-item menu-item-search">
<a href="javascript:;" class="popup-trigger">
<i class="menu-item-icon fa fa-search fa-fw"></i> <br />
搜索
</a>
</li>
</ul>
<div class="site-search">
<div class="algolia-popup popup search-popup">
<div class="algolia-search">
<div class="algolia-search-input-icon">
<i class="fa fa-search"></i>
</div>
<div class="algolia-search-input" id="algolia-search-input"></div>
</div>
<div class="algolia-results">
<div id="algolia-stats"></div>
<div id="algolia-hits"></div>
<div id="algolia-pagination" class="algolia-pagination"></div>
</div>
<span class="popup-btn-close">
<i class="fa fa-times-circle"></i>
</span>
</div>
</div>
</nav>
</div>
</header>
<main id="main" class="main">
<div class="main-inner">
<div class="content-wrap">
<div id="content" class="content">
<section id="posts" class="posts-expand">
<article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
<link itemprop="mainEntityOfPage" href="http://blog.neroxps.cn/2017/07/15/Zabbix-agent-installation-Debian/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Nero Hau">
<meta itemprop="description" content="">
<meta itemprop="image" content="/uploads/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Nero Blog">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2017/07/15/Zabbix-agent-installation-Debian/" itemprop="url">zabbix-agent 安装及升级</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2017-07-15T00:00:00+08:00">
2017-07-15
</time>
</span>
<span class="post-category" >
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/IT技术-Linux/" itemprop="url" rel="index">
<span itemprop="name">IT技术 Linux</span>
</a>
</span>
</span>
<span id="/2017/07/15/Zabbix-agent-installation-Debian/" class="leancloud_visitors" data-flag-title="zabbix-agent 安装及升级">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数 </span>
<span class="leancloud-visitors-count"></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="安装-zabbix-agent-到-Debian"><a href="#安装-zabbix-agent-到-Debian" class="headerlink" title="安装 zabbix-agent 到 Debian"></a>安装 zabbix-agent 到 Debian</h2><blockquote>
<p>参考 <a href="https://www.zabbix.com/documentation/3.2/manual/installation/install_from_packages/agent_installation" target="_blank" rel="external">Zabbix Documentation 3.2</a></p>
</blockquote>
<h3 id="通过默认源安装-zabbix-agent"><a href="#通过默认源安装-zabbix-agent" class="headerlink" title="通过默认源安装 zabbix-agent"></a>通过默认源安装 zabbix-agent</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">sudo apt-get install zabbix-agent</div></pre></td></tr></table></figure>
<p>但是这样安装的 zabbix-agent 版本是比较老的版本</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">zabbix_agent -V</div><div class="line">Zabbix agent v2.2.7 (revision 50148) (24 October 2014)</div><div class="line">Compilation time: Feb 3 2017 17:23:53</div></pre></td></tr></table></figure>
<h3 id="通过-Zabbix-源安装新版本"><a href="#通过-Zabbix-源安装新版本" class="headerlink" title="通过 Zabbix 源安装新版本"></a>通过 Zabbix 源安装新版本</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line"># wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb</div><div class="line"># dpkg -i zabbix-release_3.2-1+jessie_all.deb</div><div class="line"># apt-get update</div><div class="line"># apt-get install zabbix-agent</div><div class="line"># zabbix_agentd -V</div><div class="line">zabbix_agentd (daemon) (Zabbix) 3.2.6</div><div class="line">Revision 67849 4 May 2017, compilation time: May 6 2017 15:59:40</div></pre></td></tr></table></figure>
<h2 id="升级-zabbix-agent-到官方新版本-2-2-7-升级到-3-2-6)"><a href="#升级-zabbix-agent-到官方新版本-2-2-7-升级到-3-2-6)" class="headerlink" title="升级 zabbix-agent 到官方新版本(2.2.7 升级到 3.2.6)"></a>升级 zabbix-agent 到官方新版本(2.2.7 升级到 3.2.6)</h2><p>如果是之前安装 zabbix-agent 是用系统默认源安装的话,版本比较久,那么可以通过上面方法安装最新版本。</p>
<blockquote>
<p>注:笔者的 zabbix-server 版本是3.2版本,要确定自己的 zabbix-agent 是否适用于 zabbix-server。</p>
</blockquote>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">$ wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb</div><div class="line">$ sudo dpkg -i zabbix-release_3.2-1+jessie_all.deb</div><div class="line">$ sudo apt-get update</div><div class="line">$ sudo apt-get install --only-upgrade zabbix-agent</div><div class="line"></div><div class="line">注意,这里更新的时候会问你选择如何处理已有的配置文件,这里可以选择 N,使用原来的配置文件。</div></pre></td></tr></table></figure>
<h3 id="遇到错误"><a href="#遇到错误" class="headerlink" title="遇到错误"></a>遇到错误</h3><p>安装到最后会报告安装失败,其实已经安装好了,但是因为 2.2 的配置文件引入的其他配置的目录路径是 /etc/zabbix/zabbix_agentd.conf.d,而 3.2是 /etc/zabbix/zabbix_agentd.d 故此会刷出报错日志如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">7月 15 14:49:22 gooderp-backup zabbix_agentd[22098]: zabbix_agentd [22098]: /etc/zabbix/zabbix_agentd.conf.d: [2] No such file or directory</div><div class="line">7月 15 14:49:22 gooderp-backup systemd[1]: zabbix-agent.service: control process exited, code=exited status=1</div><div class="line">7月 15 14:49:22 gooderp-backup systemd[1]: Failed to start Zabbix Agent.</div></pre></td></tr></table></figure>
<p>这个简单,只需要替换下配置文件的路径名称即可。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">$ sudo sed -i "s/zabbix_agentd.conf.d/zabbix_agentd.d/g" /etc/zabbix/zabbix_agentd.conf</div><div class="line">$ sudo systemctl restart zabbix-agent</div></pre></td></tr></table></figure>
</div>
<div>
</div>
<div>
</div>
<div>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
<link itemprop="mainEntityOfPage" href="http://blog.neroxps.cn/2017/07/13/Zabbix-SMTP/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Nero Hau">
<meta itemprop="description" content="">
<meta itemprop="image" content="/uploads/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Nero Blog">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2017/07/13/Zabbix-SMTP/" itemprop="url">Zabbix 邮件警告</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2017-07-13T00:00:00+08:00">
2017-07-13
</time>
</span>
<span class="post-category" >
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/IT技术-Linux/" itemprop="url" rel="index">
<span itemprop="name">IT技术 Linux</span>
</a>
</span>
</span>
<span id="/2017/07/13/Zabbix-SMTP/" class="leancloud_visitors" data-flag-title="Zabbix 邮件警告">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数 </span>
<span class="leancloud-visitors-count"></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="触发器邮件警告"><a href="#触发器邮件警告" class="headerlink" title="触发器邮件警告"></a>触发器邮件警告</h1><p>Zabbix 默认的邮箱警告有个 SMTP HELO 的值,我一直不知道怎么填写,反正这个值一直报错,网上爬文一堆都是通过脚本来发邮件的。</p>
<h2 id="部署-sendEmail-环境"><a href="#部署-sendEmail-环境" class="headerlink" title="部署 sendEmail 环境"></a>部署 sendEmail 环境</h2><blockquote>
<p>参考文献1:<a href="http://www.jianshu.com/p/78ec2aba6824" target="_blank" rel="external">Zabbix通过stmp邮件报警</a></p>
<p>参考文献2:<a href="http://xiao987334176.blog.51cto.com/2202382/1768339" target="_blank" rel="external">zabbix 3.0.2邮件报警</a></p>
</blockquote>
<p>这里需要用到 sendEmail <a href="http://caspian.dotconf.net/menu/Software/SendEmail/" target="_blank" rel="external">下载地址</a>,它是基于 perl 写的一个脚本,如果用 SSL 加密的话需要依赖 perl 的 <strong>Net::SSLeay</strong> 和 <strong>IO::Socket::SSL</strong> 模块,debian 和 Ubuntu 的源都可以直接安装这个软件,另外安装 <code>libcrypt-ssleay-perl libio-socket-ssl-perl ca-certificates</code> 这三个包即可。</p>
<p>但是我查了下,zabbix/zabbix-server-mysql:latest 是使用 alpine 的,我测试的时候 sendEmail 官网下载的脚本会遇到 <code>invalid SSL_version</code> 的报错。Google 一番后据说要修改 <code>/usr/share/perl5/IO/Socket/SSL.pm</code> 这个依赖文件,但是我改了之后就会报 SSL 鉴定错误,故此不能这样做。</p>
<p>最终爬贴找到了这个帖子<strong><a href="https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-mail/sendEmail/files/1.56-overzealous-version-check.patch?view=log" target="_blank" rel="external">1.56-overzealous-version-check.patch</a></strong></p>
<p>例子中是将 sendEmail 的 SSL_version 定义为 SSLv3,但是我使用的 QQ 邮箱和 Gmail 目前都在使用 TLSv1 协议,故此我需要将这个改成 TLSv1。</p>
<p>说回来我是 Docker 环境,故此我需要基于 zabbix/zabbix-server-mysql:latest 构建一个新的镜像。</p>
<h3 id="1-创建-Docker-构建文件夹"><a href="#1-创建-Docker-构建文件夹" class="headerlink" title="1. 创建 Docker 构建文件夹"></a>1. 创建 Docker 构建文件夹</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">mkdir ~/zabbix-server-mysql-sendEmail</div></pre></td></tr></table></figure>
<h3 id="2-创建-Dockerfile"><a href="#2-创建-Dockerfile" class="headerlink" title="2. 创建 Dockerfile"></a>2. 创建 Dockerfile</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div></pre></td><td class="code"><pre><div class="line">cat <<EOF | tee ~/zabbix-server-mysql-sendEmail/Dockerfile</div><div class="line">FROM zabbix/zabbix-server-mysql</div><div class="line">RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \</div><div class="line">apk add --no-cache perl-crypt-ssleay perl-io-socket-ssl ca-certificates tzdata && \</div><div class="line">wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz -P /tmp/ && \</div><div class="line">tar xzf /tmp/sendEmail-v1.56.tar.gz -C /tmp/ && \</div><div class="line">rm -f /tmp/sendEmail-v1.56.tar.gz && \</div><div class="line">sed -i "s/SSL_version => 'SSLv3 TLSv1'/SSL_version => 'TLSv1'/g" /tmp/sendEmail-v1.56/sendEmail && \</div><div class="line">mv /tmp/sendEmail-v1.56/sendEmail /usr/bin && \</div><div class="line">chmod +x /usr/bin/sendEmail && \</div><div class="line">rm -rf /tmp/* && \</div><div class="line">ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \</div><div class="line">echo "Asia/Shanghai" > /etc/timezone </div><div class="line"></div><div class="line">EXPOSE 10051/TCP 162/UDP</div><div class="line"></div><div class="line">WORKDIR /var/lib/zabbix</div><div class="line"></div><div class="line">ENTRYPOINT ["/bin/bash"]</div><div class="line"></div><div class="line">CMD ["/run_zabbix_component.sh", "server", "mysql"]</div><div class="line">EOF</div></pre></td></tr></table></figure>
<h3 id="3-构建镜像"><a href="#3-构建镜像" class="headerlink" title="3. 构建镜像"></a>3. 构建镜像</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">cd ~/zabbix-server-mysql-sendEmail</div><div class="line">docker build -t nero/zabbix-server-mysql:latest .</div></pre></td></tr></table></figure>
<h3 id="4-停止官方使用的镜像,启用新镜像"><a href="#4-停止官方使用的镜像,启用新镜像" class="headerlink" title="4. 停止官方使用的镜像,启用新镜像"></a>4. 停止官方使用的镜像,启用新镜像</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div></pre></td><td class="code"><pre><div class="line">docker rm -f zabbix-server #这里我之前启用镜像的时候使用的是别名</div><div class="line">docker run --name zabbix-server \</div><div class="line">--link zabbix-db:mysql-server \</div><div class="line">--restart=always \</div><div class="line">-e MYSQL_USER=zabbix \</div><div class="line">-e MYSQL_PASSWORD=zabbix \</div><div class="line">-e ZBX_IPMIPOLLERS=3 \</div><div class="line">-e ZBX_STARTVMWARECOLLECTORS=5 \</div><div class="line">-e ZBX_DEBUGLEVEL=3 \</div><div class="line">-v /home/nero/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \</div><div class="line">-v /home/nero/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \</div><div class="line">-p 10051:10051 \</div><div class="line">-d nero/zabbix-server-mysql</div></pre></td></tr></table></figure>
<h3 id="5-编写-sendEmail-的发信脚本"><a href="#5-编写-sendEmail-的发信脚本" class="headerlink" title="5. 编写 sendEmail 的发信脚本"></a>5. 编写 sendEmail 的发信脚本</h3><blockquote>
<p>参考自 <a href="http://www.jianshu.com/p/78ec2aba6824" target="_blank" rel="external">Zabbix通过stmp邮件报警</a></p>
</blockquote>
<p>我修改了下他的脚本,他脚本会自动转换字符编码,另外输出日志方便排查,但是日志不太详细,我给 sendEmail 加了 -v 参数。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div></pre></td><td class="code"><pre><div class="line">#!/bin/bash</div><div class="line">SMTP_server='smtp.qq.com:587' # SMTP服务器,我用 QQ TLS 的端口。</div><div class="line">username='[email protected]' # 用户名</div><div class="line">password=' smtp_password' # 密码</div><div class="line">from_email_address='[email protected]' # 发件人Email地址</div><div class="line">to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数</div><div class="line">message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数</div><div class="line">message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数</div><div class="line"></div><div class="line">echo "`date +"%F %T"` send to $to_email_address" >> /tmp/send.log</div><div class="line"></div><div class="line"># 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。</div><div class="line">message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF</div><div class="line">$message_subject_utf8</div><div class="line">EOF`</div><div class="line">[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"</div><div class="line">bhnaqekboudsdcca</div><div class="line"># 转换邮件内容为GB2312</div><div class="line">message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF</div><div class="line">$message_body_utf8</div><div class="line">EOF`</div><div class="line">[ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"</div><div class="line"></div><div class="line"># 发送邮件</div><div class="line">sendEmail='/usr/bin/sendEmail'</div><div class="line">$sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312 -o tls=yes -v >> /tmp/send.log</div><div class="line"></div><div class="line">echo $? >> /tmp/send.log</div><div class="line">echo "zabbix 参数1 = $1" >> /tmp/send.log</div><div class="line">echo "zabbix 参数2 = $2" >> /tmp/send.log</div><div class="line">echo "zabbix 参数3 = $3" >> /tmp/send.log</div><div class="line">echo >> /tmp/send.log</div><div class="line">echo >> /tmp/send.log</div><div class="line">echo >> /tmp/send.log</div></pre></td></tr></table></figure>
<h2 id="Zabbix-设置邮件告警"><a href="#Zabbix-设置邮件告警" class="headerlink" title="Zabbix 设置邮件告警"></a>Zabbix 设置邮件告警</h2><blockquote>
<p>我这里的 Zabbix 版本是3.2版本,不同版本界面略有不同,据说2.0的版本不需要加脚本参数,3.0开始需要加脚本参数了。</p>
</blockquote>
<h3 id="1-创建报价媒介类型"><a href="#1-创建报价媒介类型" class="headerlink" title="1. 创建报价媒介类型"></a>1. 创建报价媒介类型</h3><p><img src="/2017/07/13/Zabbix-SMTP/zabbix-01.png" alt="zabbix-01"></p>
<h3 id="2-输入报警媒介类型参数"><a href="#2-输入报警媒介类型参数" class="headerlink" title="2. 输入报警媒介类型参数"></a>2. 输入报警媒介类型参数</h3><p><img src="/2017/07/13/Zabbix-SMTP/zabbix-02.png" alt="zabbix-02"></p>
<p>这里注意,脚本参数顺序不要错,否则会导致发信失败。</p>
<table>
<thead>
<tr>
<th>脚本参数</th>
<th>参数</th>
<th>注释</th>
</tr>
</thead>
<tbody>
<tr>
<td>第一个参数</td>
<td>{ALERT.SENDTO}</td>
<td>目的邮箱地址</td>
</tr>
<tr>
<td>第二个参数</td>
<td>{ALERT.SUBJECT}</td>
<td>邮件主题</td>
</tr>
<tr>
<td>第三个参数</td>
<td>{ALERT.MESSAGE}</td>
<td>邮件内容</td>
</tr>
</tbody>
</table>
<h3 id="3-配置用户收信邮箱"><a href="#3-配置用户收信邮箱" class="headerlink" title="3. 配置用户收信邮箱"></a>3. 配置用户收信邮箱</h3><p><img src="/2017/07/13/Zabbix-SMTP/zabbix-03.png" alt="zabbix-03"></p>
<hr>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-04.png" alt="zabbix-04"></p>
<hr>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-05.png" alt="zabbix-05"></p>
<hr>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-06.png" alt="zabbix-06"></p>
<h3 id="4-配置动作"><a href="#4-配置动作" class="headerlink" title="4. 配置动作"></a>4. 配置动作</h3><p>这里我建立一个触发器警告,当触发器条件为真的时候,就发出警告邮件。</p>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-07.png" alt="zabbix-07"></p>
<p><strong>注意这里事件源选择触发器</strong></p>
<hr>
<p>按图片重复添加动作条件</p>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-08.png" alt="zabbix-08"></p>
<hr>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-09.png" alt="zabbix-09"></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div></pre></td><td class="code"><pre><div class="line">默认接收人:『服务器警报』 {HOST.NAME}:{ITEM.NAME}</div><div class="line"></div><div class="line">默认信息:</div><div class="line">告警主机: {HOSTNAME1}</div><div class="line">告警时间: {EVENT.DATE} {EVENT.TIME}</div><div class="line">告警等级: {TRIGGER.SEVERITY}</div><div class="line">告警信息: {TRIGGER.NAME}</div><div class="line">告警项目: {TRIGGER.KEY1}</div><div class="line">问题详情: {ITEM.NAME}: {ITEM.VALUE}</div><div class="line">当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}</div><div class="line">事件ID: {EVENT.ID}</div></pre></td></tr></table></figure>
<p>其余参数按照图片设置,目前还没理解透这里所有选项,这里就不班门弄斧。</p>
<hr>
<p><img src="/2017/07/13/Zabbix-SMTP/zabbix-10.png" alt="zabbix-10"></p>
<p>这里是触发器值为假后的操作,你可以自定义恢复公式,也可以按照原来的公式为假后发送邮件,告诉我们这个监控值正常了。</p>
<p>里面的内容除了<strong>默认接收人</strong>也就是邮件标题外,其余内容和上面的一样。</p>
<h4 id="调试邮件告警"><a href="#调试邮件告警" class="headerlink" title="调试邮件告警"></a>调试邮件告警</h4><p>监控邮件发送日志,就可以调试邮件的发送状态了。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div></pre></td><td class="code"><pre><div class="line">docker exec -it zabbix-server tail -f /tmp/send.log</div><div class="line">2017-07-12 17:53:07 send to [email protected]</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: DEBUG => Connecting to smtp.qq.com:587</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: DEBUG => My IP address is: 172.17.0.3</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 220 smtp.qq.com Esmtp QQ Mail Server</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: EHLO </div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 250-smtp.qq.com, 250-PIPELINING, 250-SIZE 73400320, 250-STARTTLS, 250-AUTH LOGIN PLAIN, 250-AUTH=LOGIN, 250-MAILCOMPRESS, 250 8BITMIME</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: STARTTLS</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 220 Ready to start TLS</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: DEBUG => TLS session initialized :)</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: EHLO </div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 250-smtp.qq.com, 250-PIPELINING, 250-SIZE 73400320, 250-AUTH LOGIN PLAIN, 250-AUTH=LOGIN, 250-MAILCOMPRESS, 250 8BITMIME</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: DEBUG => SMTP-AUTH: Using LOGIN authentication method</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: AUTH LOGIN</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 334 VXNlcm5hbWU6</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: </div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 334 UGFzc3dvcmQ6</div><div class="line">Jul 12 17:53:07 1890ce4a57bf sendEmail[172]: INFO => Sending: </div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 235 Authentication successful</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: DEBUG => User authentication was successful (Method: LOGIN)</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: INFO => Sending: MAIL FROM:<[email protected]></div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 250 Ok</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: INFO => Sending: RCPT TO:<[email protected]></div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 250 Ok</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: INFO => Sending: DATA</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 354 End data with <CR><LF>.<CR><LF></div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: INFO => Sending message body</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: Setting content-type: text/plain</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: SUCCESS => Received: 250 Ok: queued as</div><div class="line">Jul 12 17:53:08 1890ce4a57bf sendEmail[172]: Email was sent successfully! From: <[email protected]> To: <[email protected]> Subject: [『服务器警报恢复』 Gen8-ipmi:02-CPU] Server: [smtp.qq.com:587]</div><div class="line">0</div><div class="line">zabbix 参数1 = [email protected]</div><div class="line">zabbix 参数2 = 『服务器警报恢复』 Gen8-ipmi:02-CPU</div><div class="line">zabbix 参数3 = 告警主机: Gen8-ipmi</div><div class="line">告警时间: 2017.07.12 17:50:58</div><div class="line">告警等级: High</div><div class="line">告警信息: Gen8-ipmi CPU温度过高-test006</div><div class="line">告警项目: 02-CPU</div><div class="line">问题详情: 02-CPU: 40 ℃</div><div class="line">当前状态: OK: 40 ℃</div><div class="line">事件ID: 4858</div></pre></td></tr></table></figure>
</div>
<div>
</div>
<div>
</div>
<div>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
<link itemprop="mainEntityOfPage" href="http://blog.neroxps.cn/2017/07/01/Zabbix-Installation-Docker/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Nero Hau">
<meta itemprop="description" content="">
<meta itemprop="image" content="/uploads/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Nero Blog">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2017/07/01/Zabbix-Installation-Docker/" itemprop="url">使用 Docker 部署 Zabbix 3.2 记录</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2017-07-01T00:00:00+08:00">
2017-07-01
</time>
</span>
<span class="post-category" >
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/IT技术-Linux/" itemprop="url" rel="index">
<span itemprop="name">IT技术 Linux</span>
</a>
</span>
</span>
<span id="/2017/07/01/Zabbix-Installation-Docker/" class="leancloud_visitors" data-flag-title="使用 Docker 部署 Zabbix 3.2 记录">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数 </span>
<span class="leancloud-visitors-count"></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="Zabbix-搭建文档"><a href="#Zabbix-搭建文档" class="headerlink" title="Zabbix 搭建文档"></a>Zabbix 搭建文档</h1><h2 id="概述"><a href="#概述" class="headerlink" title="概述"></a>概述</h2><p>计划使用 docker 搭建 Zabbix 监控系统。</p>
<h2 id="安装-Docker"><a href="#安装-Docker" class="headerlink" title="安装 Docker"></a>安装 Docker</h2><p>参考 <a href="https://yeasy.gitbooks.io/docker_practice/content/install/ubuntu.html" target="_blank" rel="external">Ubuntu、Debian 系列安装 Docker</a></p>
<h2 id="部署-Mariadb-Server"><a href="#部署-Mariadb-Server" class="headerlink" title="部署 Mariadb-Server"></a>部署 Mariadb-Server</h2><h3 id="一、建立数据库本地目录"><a href="#一、建立数据库本地目录" class="headerlink" title="一、建立数据库本地目录"></a>一、建立数据库本地目录</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">mkdir -p ~/zabbix/database/mysql</div><div class="line">mkdir ~/zabbix/database/conf.d</div></pre></td></tr></table></figure>
<h3 id="二、运行-Mariadb-Server-Docker"><a href="#二、运行-Mariadb-Server-Docker" class="headerlink" title="二、运行 Mariadb-Server Docker"></a>二、运行 Mariadb-Server Docker</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">docker run --name zabbix-db \</div><div class="line">--restart=always \</div><div class="line">-e MYSQL_ROOT_PASSWORD=<span class="string">'mysql_root_password'</span> \</div><div class="line">-e MYSQL_DATABASE=zabbix \</div><div class="line">-e MYSQL_USER=zabbix \</div><div class="line">-e MYSQL_PASSWORD=zabbix \</div><div class="line">-v /home/nero/zabbix/database/mysql:/var/lib/mysql \</div><div class="line">-v /home/nero/zabbix/database/conf.d:/etc/mysql/conf.d \</div><div class="line">-d mariadb</div></pre></td></tr></table></figure>
<blockquote>
<p>这里会产生一个问题,由于默认的 mariadb 是使用<code>latin1</code>字符集来创建数据库,这时候我们在 Zabbix 录入中文字符的时候会导致出错,故此需要进入 mariadb-docker 内删除新建好的<code>zabbix</code>数据库,再使用<code>utf8</code>新建数据库。</p>
</blockquote>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ docker <span class="built_in">exec</span> -it zabbix-db mysql -uroot -p<span class="string">'mysql_root_password'</span></div><div class="line">MariaDB [(none)]> drop database zabbix;</div><div class="line">MariaDB [(none)]> create database zabbix default charset utf8;</div></pre></td></tr></table></figure>
<p>此时,数据库已经以 utf8 新建好了。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">MariaDB [(none)]> show create database zabbix;</div><div class="line">+----------+-----------------------------------------------------------------+</div><div class="line">| Database | Create Database |</div><div class="line">+----------+-----------------------------------------------------------------+</div><div class="line">| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 */ |</div><div class="line">+----------+-----------------------------------------------------------------+</div><div class="line">1 row <span class="keyword">in</span> <span class="built_in">set</span> (0.01 sec)</div><div class="line"></div><div class="line">MariaDB [(none)]>quit</div></pre></td></tr></table></figure>
<blockquote>
<p>2017年07月15日更新<br>怪自己看文档不仔细,今天扒 zabbix 的部署文档发现,我应该运行 mariadb 容器的时候就要定义数据库字符编码。<br><a href="https://www.zabbix.com/documentation/3.2/manual/installation/containers" target="_blank" rel="external">Zabbix Documentation 3.2-5 Installation from containers</a></p>
</blockquote>
<p><strong>注意,这里我是使用 mariadb,和 zabbix 官方文档使用是 mysql 的 docker,参数会有所不同。</strong></p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">docker run --name zabbix-db \</div><div class="line">--restart=always \</div><div class="line">-e MYSQL_ROOT_PASSWORD='mysql_root_password' \</div><div class="line">-e MYSQL_DATABASE=zabbix \</div><div class="line">-e MYSQL_USER=zabbix \</div><div class="line">-e MYSQL_PASSWORD=zabbix \</div><div class="line">-v /home/nero/zabbix/database/mysql:/var/lib/mysql \</div><div class="line">-v /home/nero/zabbix/database/conf.d:/etc/mysql/conf.d \</div><div class="line">-d mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci</div></pre></td></tr></table></figure>
<h2 id="部署-Zabbix-Server-MySQL-Docker"><a href="#部署-Zabbix-Server-MySQL-Docker" class="headerlink" title="部署 Zabbix-Server-MySQL Docker"></a>部署 Zabbix-Server-MySQL Docker</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div></pre></td><td class="code"><pre><div class="line">docker run --name zabbix-server \</div><div class="line">--link zabbix-db:mysql-server \</div><div class="line">--restart=always \</div><div class="line">-e MYSQL_USER=zabbix \</div><div class="line">-e MYSQL_PASSWORD=zabbix \</div><div class="line">-p 10051:10051 \</div><div class="line">-d zabbix/zabbix-server-mysql</div></pre></td></tr></table></figure>
<h2 id="部署-Zabbix-WEB-nginx-MySQL-Docerk"><a href="#部署-Zabbix-WEB-nginx-MySQL-Docerk" class="headerlink" title="部署 Zabbix-WEB-nginx-MySQL Docerk"></a>部署 Zabbix-WEB-nginx-MySQL Docerk</h2><p>由于 Zabbix 图形字体中文显示会产生乱码,故此需要将中文字体放入 Zabbix 的 WEB 目录中,并修改一个 php 文件才可以修正中文乱码问题。</p>
<h3 id="一、下载官方-zabbix-web-nginx-mysql-镜像"><a href="#一、下载官方-zabbix-web-nginx-mysql-镜像" class="headerlink" title="一、下载官方 zabbix-web-nginx-mysql 镜像"></a>一、下载官方 zabbix-web-nginx-mysql 镜像</h3><p><code>docker pull zabbix-web-nginx-mysql</code></p>
<h3 id="二、上传中文字体-simhei-ttf(本例使用黑体字体)"><a href="#二、上传中文字体-simhei-ttf(本例使用黑体字体)" class="headerlink" title="二、上传中文字体 simhei.ttf(本例使用黑体字体)"></a>二、上传中文字体 simhei.ttf(本例使用黑体字体)</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">mkdir ~/zabbix-web-docker-cn</div><div class="line">rz <span class="comment">#使用 rz 命令传输文件,如何传输本文档不体现</span></div></pre></td></tr></table></figure>
<h3 id="三、编写-Dockerfile-文件"><a href="#三、编写-Dockerfile-文件" class="headerlink" title="三、编写 Dockerfile 文件"></a>三、编写 Dockerfile 文件</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">cat <<EOF | tee ~/zabbix-web-docker-cn/Dockerfile</div><div class="line">FROM zabbix/zabbix-web-nginx-mysql</div><div class="line">COPY simhei.ttf /usr/share/zabbix/fonts</div><div class="line">EXPOSE 80/TCP 443/TCP</div><div class="line">WORKDIR /usr/share/zabbix</div><div class="line">RUN sed -i <span class="string">'s/graphfont/simhei/g'</span> ./include/defines.inc.php</div><div class="line">VOLUME [<span class="string">"/etc/ssl/nginx"</span>]</div><div class="line">CMD [<span class="string">"/run_zabbix_component.sh"</span>, <span class="string">"frontend"</span>, <span class="string">"mysql"</span>, <span class="string">"nginx"</span>]</div><div class="line">EOF</div></pre></td></tr></table></figure>
<h3 id="四、构建镜像"><a href="#四、构建镜像" class="headerlink" title="四、构建镜像"></a>四、构建镜像</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div></pre></td><td class="code"><pre><div class="line">$ docker build -t nero/zabbix-web-nginx-mysql .</div><div class="line"></div><div class="line">Sending build context to Docker daemon 9.755MB</div><div class="line">Step 1/7 : FROM zabbix/zabbix-web-nginx-mysql</div><div class="line"> ---- 256dc87663d0</div><div class="line">Step 2/7 : COPY simhei.ttf /usr/share/zabbix/fonts</div><div class="line"> ---- 5743f1ab270b</div><div class="line">Removing intermediate container 78381e68fbbe</div><div class="line">Step 3/7 : EXPOSE 80/TCP 443/TCP</div><div class="line"> ---- Running <span class="keyword">in</span> 0c6786e828fc</div><div class="line"> ---- d24d892858a6</div><div class="line">Removing intermediate container 0c6786e828fc</div><div class="line">Step 4/7 : WORKDIR /usr/share/zabbix</div><div class="line"> ---- dc7c79f00b1c</div><div class="line">Removing intermediate container e6975c59dbc8</div><div class="line">Step 5/7 : RUN sed -i <span class="string">'s/graphfont/simhei/g'</span> ./include/defines.inc.php</div><div class="line"> ---- Running <span class="keyword">in</span> 27e5405d3ca7</div><div class="line"> ---- 6ca4c53d4b51</div><div class="line">Removing intermediate container 27e5405d3ca7</div><div class="line">Step 6/7 : VOLUME /etc/ssl/nginx</div><div class="line"> ---- Running <span class="keyword">in</span> 8f28060ed68e</div><div class="line"> ---- 2b4307bc9c9a</div><div class="line">Removing intermediate container 8f28060ed68e</div><div class="line">Step 7/7 : CMD /run_zabbix_component.sh frontend mysql nginx</div><div class="line"> ---- Running <span class="keyword">in</span> 184feb09f237</div><div class="line"> ---- b6da55ae29b6</div><div class="line">Removing intermediate container 184feb09f237</div><div class="line">Successfully built b6da55ae29b6</div><div class="line">Successfully tagged nero/zabbix-web-nginx-mysql:latest</div></pre></td></tr></table></figure>
<h3 id="五、运行镜像"><a href="#五、运行镜像" class="headerlink" title="五、运行镜像"></a>五、运行镜像</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div></pre></td><td class="code"><pre><div class="line">docker run --name zabbix-web \</div><div class="line">--link zabbix-db:mysql-server \</div><div class="line">--link zabbix-server:zabbix-server \</div><div class="line">-e MYSQL_USER=zabbix \</div><div class="line">-e MYSQL_PASSWORD=zabbix \</div><div class="line">-e PHP_TZ=<span class="string">'Asia/Hong_Kong'</span> \</div><div class="line">-e ZBX_SERVER_NAME=<span class="string">'Rslnc monit Server'</span> \</div><div class="line">-p 80:80 \</div><div class="line">--restart=always \</div><div class="line">-d nero/zabbix-web-nginx-mysql</div></pre></td></tr></table></figure>
<h2 id="遇到的坑"><a href="#遇到的坑" class="headerlink" title="遇到的坑"></a>遇到的坑</h2><h3 id="数据库编码格式导致中文输入字符无法保存"><a href="#数据库编码格式导致中文输入字符无法保存" class="headerlink" title="数据库编码格式导致中文输入字符无法保存"></a>数据库编码格式导致中文输入字符无法保存</h3><p>由于之前使用的 docker 创建的 zabbix 数据库默认是以<code>latin1</code>字符编码创建的,故此在问题输入『消息』的时候会报字符编码错误。</p>
<p>那么数据库里面已经有原始数据存在,所以我需要将数据导出,再将数据转换成<code>utf8</code>编码。</p>
<blockquote>
<p>参考:# <a href="http://www.cnblogs.com/iloveyoucc/p/4763244.html" target="_blank" rel="external">MySQL数据库从GBK转换到UTF-8最简单解决方案(也适用于其它编码转换)</a></p>
</blockquote>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div></pre></td><td class="code"><pre><div class="line">$ docker <span class="built_in">exec</span> -it zabbix-db bash</div><div class="line"><span class="comment"># mysqldump -d -u root -p'mysql_root_password' zabbix > /etc/mysql/conf.d/zabbix.sql</span></div><div class="line"><span class="comment"># mysqldump --default-character-set=utf8 -t -u root -p'mysql_root_password' zabbix > /etc/mysql/conf.d/zabbix-data.sql</span></div><div class="line"><span class="comment"># sed -i 's/latin1/utf8/g' /etc/mysql/conf.d/zabbix.sql</span></div><div class="line"><span class="comment"># mysql -uroot -p'mysql_root_password'</span></div><div class="line">MariaDB [(none)]> drop database zabbix;</div><div class="line">MariaDB [(none)]> create database zabbix default charset utf8;</div><div class="line">MariaDB [(none)]> use zabbix;</div><div class="line">MariaDB [zabbix]> <span class="built_in">source</span> /etc/mysql/conf.d/zabbix.sql</div><div class="line">MariaDB [zabbix]> <span class="built_in">source</span> /etc/mysql/conf.d/zabbix-data.sql</div><div class="line">MariaDB [zabbix]> quit</div><div class="line"><span class="comment"># exit</span></div></pre></td></tr></table></figure>
</div>
<div>
</div>
<div>
</div>
<div>
</div>
<footer class="post-footer">
<div class="post-eof"></div>
</footer>
</article>
<article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
<link itemprop="mainEntityOfPage" href="http://blog.neroxps.cn/2017/06/15/GoodERP-Setup-Debian-8/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="Nero Hau">
<meta itemprop="description" content="">
<meta itemprop="image" content="/uploads/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Nero Blog">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">
<a class="post-title-link" href="/2017/06/15/GoodERP-Setup-Debian-8/" itemprop="url">记 GoodERP 部署</a></h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2017-06-15T00:00:00+08:00">
2017-06-15
</time>
</span>
<span class="post-category" >
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="/categories/Linux/" itemprop="url" rel="index">
<span itemprop="name">Linux</span>
</a>
</span>
</span>
<span id="/2017/06/15/GoodERP-Setup-Debian-8/" class="leancloud_visitors" data-flag-title="记 GoodERP 部署">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数 </span>
<span class="leancloud-visitors-count"></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h1 id="概述"><a href="#概述" class="headerlink" title="概述"></a>概述</h1><ul>
<li><a href="www.gooderp.org">GoodERP 官方网址</a></li>
<li><a href="https://github.com/osbzr/gooderp_addons" target="_blank" rel="external">GoodERP GitHub</a> </li>
<li><a href="https://github.com/osbzr/base" target="_blank" rel="external">GoodERP 核心基于 Odoo 项目</a></li>
<li><a href="http://best.gooderp.org/" target="_blank" rel="external">GoodERP 论坛</a></li>
</ul>
<h1 id="部署环境"><a href="#部署环境" class="headerlink" title="部署环境"></a>部署环境</h1><ul>
<li>系统:Debian 8 最小化安装</li>
<li>内存:4G </li>
<li>硬盘:40G </li>
</ul>
<blockquote>