天天看点

zabbix详解:(一)使用docker搭建安装zabbix3.2监控平台

docker是什么,还有怎么用,请看我另一篇博客,希望你们看懂了,然后还能用得上.

至于zabbix,应该是挺出名的服务器监控软件了,简单灵活而又智能化,还能调用API,比起我以前用的nagios感觉还简单一些,下面来介绍在docker环境安装zabbix3.2.

首先说说3.2这个版本是最新版,这个版本和之前2.X的差异,主要在于UI优化,还有加强了一些自动发现的功能,性能优化等,很多人担心太新稳定性不行,但是我这边稳定性暂时没发现问题.

安装前要准备一套LNMP环境,因为zabbix本身也是web系统,怎么安装LNMP,我就不在这里详细说了,也不应再篇幅之内,各位自行安装.

启动docker容器:   

    我标题写的是使用docker搭建,所以先用docker启动一个容器来实现,不过比较遗憾,我并不打算详细说docker的事情,各位就请看我另一篇文章了,我这边直接用自己已经定义好的模板来做了,命令如下:

<code>docker run -ti --name zabbix-test1 --restart=on-failure:3 -c 256 -m 1g --memory-swap=-1 -p 25001:22 -p 10050:10050 -p 10051:10051 -</code><code>v</code> <code>/data/zabbix</code><code>:</code><code>/data</code> <code>-</code><code>v</code> <code>/mnt/soft</code><code>:</code><code>/soft</code> <code>centos</code><code>/test</code><code>:zabbix-test1 </code><code>/bin/init</code><code>.sh</code>

    具体意思还是得说说的,不然真的云里雾里,这里创建了一个叫zabbix-test1的容器,分配了256份cpu,1G内存,把22端口映射到25001,把10050和10051映射到母机相同的端口,并挂载相关要使用的文件夹.

    里面已经有安装好的LNMP环境,端口映射也直接能用,我不用装服务器了,也不用拉一大堆依赖包,相当方便,所以LNMP环境也不准备细说了,没错,docker就是这点爽.

安装:

    安装前嘛,当然是先下载软件了,可以去这个网站:

其他不用研究了,我们只看Zabbix Sources源码包系列和Zabbix pre-compiled agents监控节点程序

监控节点稍后再说,现在来看用源码安装zabbix server和agent,zabbix的源码包已经有了一整套的环境,按着流程来做就完全没问题了

创建、导入zabbix数据库:

<code>#进入软件包下载目录,没有定性,只是我喜欢放到这里</code>

<code>cd</code> <code>/opt/</code> 

<code>#解压</code>

<code>tar</code> <code>xf zabbix-3.2.1.</code><code>tar</code><code>.gz </code>

<code>#里面有几种数据库,但是我们用mysql,所以进入mysql数据库创建脚本目录,</code>

<code>cd</code> <code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql</code>

<code>#列出文件,可以看到有schema.sql、images.sql、data.sql这三个文件 </code>

<code>ls</code> <code>-l</code>

<code>total 3064</code>

<code>-rw-r--r-- 1 www www 1032494 Sep 30 17:47 data.sql</code>

<code>-rw-r--r-- 1 www www 1978341 Sep 30 17:43 images.sql</code>

<code>-rw-r--r-- 1 www www  122134 Sep 30 17:47 schema.sql</code>

<code>#进入准备好的mysql数据库,输入密码,进入MySQL控制台</code>

<code>mysql -uroot -pXXXXXX </code>

<code>#创建数据库zabbix,并且数据库编码使用utf8</code>

<code>create database zabbix character </code><code>set</code> <code>utf8;</code>

<code>#刷新系统授权表 </code>

<code>#新建账户zabbix,密码zabbix,一般情况下,直接用下面一种方法就可以</code>

<code>insert into mysql.user(Host,User,Password) values(</code><code>'localhost'</code><code>,</code><code>'zabbix'</code><code>,password(</code><code>'zabbix'</code><code>)); </code>

<code>flush privileges; </code>

<code>#允许账户zabbix能从本机连接到数据库zabbix</code>

<code>grant all on zabbix.* to </code><code>'zabbix'</code><code>@</code><code>'localhost'</code> <code>identified by </code><code>'zabbix'</code>

<code>#进入数据库,准备导库</code>

<code>use zabbix</code>

<code>#注意:请按照以上顺序进行导入,否则会出错。</code>

<code>#导入脚本文件到zabbix数据库 </code>

<code>source</code> <code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/schema</code><code>.sql </code>

<code>#导入脚本文件到zabbix数据库</code>

<code>source</code> <code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/images</code><code>.sql </code>

<code>source</code> <code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/data</code><code>.sql </code>

<code>#退出</code>

<code>exit</code> 

<code>#也可以或者这样导入</code>

<code>mysql -uzabbix -p123456 -hlocalhost zabbix &lt; </code><code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/schema</code><code>.sql</code>

<code>mysql -uzabbix -p123456 -hlocalhost zabbix &lt; </code><code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/images</code><code>.sql</code>

<code>mysql -uzabbix -p123456 -hlocalhost zabbix &lt; </code><code>/opt/zabbix-3</code><code>.2.1</code><code>/database/mysql/data</code><code>.sql</code>

   安装zabbix:

<code>1、添加用户:</code>

<code>#创建用户组zabbix</code>

<code>groupadd zabbix </code>

<code>#创建用户zabbix,并且把用户zabbix加入到用户组zabbix中</code>

<code>useradd</code> <code>zabbix -g zabbix -s </code><code>/bin/false</code> 

<code>2、安装依赖包 </code>

<code>#CentOS使用yum命令安装,如果在安装Web环境LAMP或者LNMP时已经安装过,此步骤可忽略</code>

<code>yum </code><code>install</code> <code>net-snmp-devel curl curl-devel mysql-devel</code>

<code>apt-get </code><code>install</code> <code>-y libsnmp-dev libmysqld-dev curl</code>

<code>3、安装zabbix</code>

<code>#进入安装目录</code>

<code>cd</code> <code>/opt/zabbix-3</code><code>.2.1 </code>

<code>#配置,</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/zabbix</code> <code>--</code><code>enable</code><code>-server --</code><code>enable</code><code>-agent --with-net-snmp --with-libcurl --</code><code>enable</code><code>-proxy --with-mysql=</code><code>/usr/bin/mysql_config</code> 

<code>#如果报错,那就要:find / -name mysql_config 查找位置,如果没有mysql_config,需要安装yum install mysql-devel 或者查看mysqlclinet.so库文件</code>

<code>#完成后编译</code>

<code>make</code> 

<code>#最后安装</code>

<code>make</code> <code>install</code> 

<code>#添加命令软连接</code>

<code>ln</code> <code>-s </code><code>/usr/local/zabbix/sbin/</code><code>* </code><code>/usr/local/sbin/</code> 

<code>ln</code> <code>-s </code><code>/usr/local/zabbix/bin/</code><code>* </code><code>/usr/local/bin/</code> 

<code>4、添加zabbix服务对应的端口</code>

<code>#编辑,在最后添加以下代码,一般系统会自带,不过多添加也不影响</code>

<code>vi</code> <code>/etc/services</code> 

<code># Zabbix</code>

<code>zabbix-agent 10050</code><code>/tcp</code> <code># Zabbix Agent</code>

<code>zabbix-agent 10050</code><code>/udp</code> <code># Zabbix Agent</code>

<code>zabbix-trapper 10051</code><code>/tcp</code> <code># Zabbix Trapper</code>

<code>zabbix-trapper 10051</code><code>/udp</code> <code># Zabbix Trapper</code>

<code>#保存退出</code>

<code>:wq! </code>

<code>5、修改zabbix配置文件</code>

<code>cd</code> <code>/usr/local/zabbix/etc</code>

<code>#修改zabbix server端的配置</code>

<code>vi</code> <code>/usr/local/zabbix/etc/zabbix_server</code><code>.conf</code>

<code>#数据库名称</code>

<code>DBName=zabbix </code>

<code>#数据库用户名</code>

<code>DBUser=zabbix </code>

<code>#数据库密码</code>

<code>DBPassword=zabbix </code>

<code>#数据库ip地址,如果是远程地址,要记得改</code>

<code>ListenIP=localhost </code>

<code>#数据库端口,同上配合</code>

<code>DBPort=3306</code>

<code>#zabbix运行脚本存放目录,如果是自定义脚本,就自己考虑要怎么改</code>

<code>AlertScriptsPath=</code><code>/usr/local/zabbix/share/zabbix/alertscripts</code> 

<code>#修改zabbix agent端的配置,因为是本机,要改的地方很少</code>

<code>vi</code> <code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf</code>

<code>#额外自定义监控配置文件的存放位置,有自定义监控就一定要设置了</code>

<code>Include=</code><code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf.d/</code>

<code>#启用自定义key</code>

<code>UnsafeUserParameters=1 </code>

<code>6、添加开机启动脚本</code>

<code>#服务端,如果只是需要客户端,可以忽略这个</code>

<code>cp</code> <code>/usr/local/src/zabbix-3</code><code>.2.1</code><code>/misc/init</code><code>.d</code><code>/fedora/core/zabbix_server</code> <code>/etc/init</code><code>.d</code><code>/zabbix_server</code> 

<code>#客户端</code>

<code>cp</code> <code>/usr/local/src/zabbix-3</code><code>.2.1</code><code>/misc/init</code><code>.d</code><code>/fedora/core/zabbix_agentd</code> <code>/etc/init</code><code>.d</code><code>/zabbix_agentd</code> 

<code>#添加脚本执行权限</code>

<code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/zabbix_server</code> 

<code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/zabbix_agentd</code> 

<code>#添加开机启动,centos7之后会不一样,各位自己看情况</code>

<code>chkconfig zabbix_server on </code>

<code>#添加开机启动,如果只是需要客户端,可以忽略这个</code>

<code>chkconfig zabbix_agentd on </code>

<code>7、修改zabbix开机启动脚本中的zabbix安装目录</code>

<code>#编辑服务端配置文件</code>

<code>vi</code> <code>/etc/init</code><code>.d</code><code>/zabbix_server</code> 

<code>#zabbix安装目录</code>

<code>BASEDIR=</code><code>/usr/local/zabbix/</code> 

<code>#编辑客户端配置文件</code>

<code>vi</code> <code>/etc/init</code><code>.d</code><code>/zabbix_agentd</code> 

<code>:wq!</code>

    配置web站点(php代码):

<code>#进入zabbix源码包目录</code>

<code>cd</code> <code>/opt/zabbix-3</code><code>.2.1</code>

<code>#拷贝zabbix的php文件到已经安装并定义好的LNMP代码目录</code>

<code>cp</code> <code>-r </code><code>/usr/local/src/zabbix-3</code><code>.2.1</code><code>/frontends/php</code> <code>/data/htdocs/www/zabbix</code>

<code>#更改好属主权限,是nginx的权限,我这里是www用户</code>

<code>chown</code> <code>www:www -R </code><code>/data/htdocs/www/zabbix</code>

<code>备注:</code><code>/data/htdocs/www</code><code>为我自己设置的Nginx默认站点目录 www为Nginx运行账户</code>

<code>#启动zabbix服务端</code>

<code>service zabbix_server start </code>

<code>#启动zabbix客户端</code>

<code>service zabbix_agentd start </code>

<code>#编辑修改php配置,不然会用不了</code>

<code>vi</code> <code>/etc/php</code><code>.ini </code>

<code>post_max_size =16M</code>

<code>max_execution_time =300</code>

<code>max_input_time =300</code>

<code>#编辑修改</code>

<code>vi</code> <code>/usr/local/php/etc/php-fpm</code><code>.conf </code>

<code>request_terminate_timeout = 300</code>

<code>#重启php-fpm</code>

<code>service php-fpm reloa</code>

不过,还要多做一个事,修改web界面为中文,因为虽然zabbix自带中文语言包,但是翻译效果惨不忍睹(谁叫电脑是美国发明的呢),有很多乱码,所以需要改善一下,

1、修改系统配置文件,让web页面支持简体中文显示,新版本其实已经改好,但是还是要注意这个地方,别被坑

<code>vi</code> <code>/data/htdocs/www/zabbix/include/locales</code><code>.inc.php </code>

<code>'zh_CN'</code> <code>=&gt; array(</code><code>'name'</code> <code>=&gt; _(</code><code>'Chinese (zh_CN)'</code><code>), </code><code>'display'</code> <code>=&gt; </code><code>false</code><code>),</code>

<code>#修改为</code>

<code>'zh_CN'</code> <code>=&gt; array(</code><code>'name'</code> <code>=&gt; _(</code><code>'Chinese (zh_CN)'</code><code>), </code><code>'display'</code> <code>=&gt; </code><code>true</code><code>),</code>

2、替换监控图像上系统默认的字体,默认字体如果不替换,图像上会显示乱码

在Windows系统中的C:\Windows\Fonts目录中复制出一个中文字体文件,例如msyh.ttf是微软雅黑

<code>#把字体文件msyh.ttf上传到zabbix站点根目录下fonts文件夹中</code>

<code>cp</code> <code>-ar msyh.ttf </code><code>/data/htdocs/www/zabbix/fonts/msyh</code><code>.ttf</code>

<code>#备份默认的字体文件:</code>

<code>mv</code> <code>DejaVusSans.ttf DejaVusSans.ttf.bak</code>

<code>#修改msyh.ttf名称为DejaVusSans.ttf</code>

<code>mv</code> <code>msyh.ttf DejaVusSans.ttf</code>

最后,在web界面修改配置信息,把默认语言修改为简体中文,这个后面再说明在哪里改

Language:Chinese(zh_CN)  

 安装web:

这个步骤主要是在web运行,zabbix的web和zabbix_server是两回事,和zabbix_agent是三回事,所以配置都是不一样的,下面来看看.

先打开已经配置好的web站点,你的LNMP环境没问题就可以正常了.

进入http://10.27.X.X/zabbix 看到欢迎界面,直接右下角下一步:

<a href="http://s1.51cto.com/wyfs02/M00/8A/8F/wKiom1gz7PHhS04PAABpfAVb5qU526.png-wh_500x0-wm_3-wmp_4-s_311765877.png" target="_blank"></a>

这里全是ok的话,你就可以下一步了.这里是否ok取决于你LNMP的配置环境符不符合他的要求,有一个不ok,你就不能下一步了,这里也看到了,php要5.4以上,还有一些特定的php配置.不过,如果不ok也会有提示的,只要不是软件版本不兼容的问题,按着他提示的来改配置,也是能过的:

<a href="http://s3.51cto.com/wyfs02/M02/8A/8B/wKioL1gz7PKyhcFfAACfNa5-gA0004.png-wh_500x0-wm_3-wmp_4-s_2639419418.png" target="_blank"></a>

这一步就是配置数据库了,你的zabbix_server是怎么配置的,就怎么配置吧,然后下一步就行,当然你要保证数据库能连得上是吧:

<a href="http://s1.51cto.com/wyfs02/M00/8A/8B/wKioL1gz7PLzSgu2AACHikUC24k591.png-wh_500x0-wm_3-wmp_4-s_2060427496.png" target="_blank"></a>

这一步是确认你自己的地址和端口,要不是你自己闲的蛋疼做了什么特殊的网络配置,直接下一步就可以了:

<a href="http://s1.51cto.com/wyfs02/M00/8A/8F/wKiom1gz7PLQpahBAABn2Wxyoas188.png-wh_500x0-wm_3-wmp_4-s_681872929.png" target="_blank"></a>

这一步就是确认你之前提交过的数据,生成表单,然后提交,属于检查吧,检查过没问题就下一步吧:

<a href="http://s5.51cto.com/wyfs02/M01/8A/8F/wKiom1gz7POz3HsiAACW9vnZdhI452.png-wh_500x0-wm_3-wmp_4-s_950518127.png" target="_blank"></a>

这步就是完成配置了,直接点finish就行了,你的zabbix就配置完成了.

<a href="http://s5.51cto.com/wyfs02/M01/8A/8B/wKioL1gz7POyCKypAAB0oB4fnS0934.png-wh_500x0-wm_3-wmp_4-s_2020055096.png" target="_blank"></a>

登录使用:

    详细的使用方法会在下一篇深入探讨,这里只说明怎么登录和简单使用

默认的账号:admin

默认的密码:zabbix

Sign in 登录进去

当然你是可以改的,进去再改吧

<a href="http://s4.51cto.com/wyfs02/M01/8A/8C/wKioL1gz8Zrgdb3eAAAlRfrlx-M225.png-wh_500x0-wm_3-wmp_4-s_4133768252.png" target="_blank"></a>

进去了就是这样,当然这是我有一些机器了,不要紧张为什么和我不一样:

<a href="http://s1.51cto.com/wyfs02/M01/8A/8C/wKioL1gz8X7jXudFAAEiu5aN1ys089.png-wh_500x0-wm_3-wmp_4-s_848636348.png" target="_blank"></a>

修改密码和语言就点右上角的小人头然后就出来一个修改框让你改了,改成什么你们随意:

<a href="http://s4.51cto.com/wyfs02/M00/8A/8F/wKiom1gz84-BJmkfAABgLWcu-Es840.png-wh_500x0-wm_3-wmp_4-s_593006784.png" target="_blank"></a>

想要添加用户,就点击管理--用户,去添加和修改用户,你也可以添加用户群组,还可以配置特定权限,这个自己摸索,不想详细说明了

<a href="http://s3.51cto.com/wyfs02/M01/8A/8C/wKioL1gz9DyACaTKAACAAFOgN3E834.png-wh_500x0-wm_3-wmp_4-s_3342393313.png" target="_blank"></a>

然后,这就能用了,当然还要添加机器了,不然还看啥,不过要下一篇再详细说明,敬请期待.

     本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/1875442,如需转载请自行联系原作者