1.写在前面
本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的环境是LAMP。以及实现简单的监控任务,在发现问题时能够发送通知邮件。
2.系统环境
提前安装好如下两个包组:yum groupinstall "Development Tools" "Server Platform Development"。
3.搭建web服务
zabbix作为监控系统需要有图形化的页面呈现给运维人员,它使用web+php的方式来实现。这里首先搭建其需要的web服务。我使用的是nginx-1.10.3的源码包编译安装的方式。相应步骤如下:
-
创建软链接至nginx
默认情况下nginx编译安装的路径(prefix) 是在
/usr/local/nginx
,所以创建一个软链接,使用起来更方便:
ln -s /usr/local/nginx-1.10.3/ /usr/local/nginx
-
将源码安装的nginx执行程序放到PATH环境变量中
在Linux中,通过源码安装的各类软件包的执行程序都可以都通过这种方式放入PATH环境变量中方便使用,且相应的文件不需要赋予执行权限。
4. 搭建mysql服务
zabbix的server和proxy是需要连接数据库的,zabbix支持多种类型的数据库,本文只涉及到mysql。
-
添加mysql用户
useradd -s /sbin/nologin -M mysql
-
解压mysql 二进制包到目标文件夹
因为我使用的是名为
mysql-5.5.53-linux2.6-x86_64.tar.gz
的压缩包,此包实际是一个mysql的二进制包,相当于从相应平台安装编译好后打包出来的,直接解压以后可以使用,而无需再configure和make&&make install了。操作指令:
tar xf mysql-5.5.53-linux2.6-x86_64.tar.gz -C /usr/local
#解压出来的文件会自动放置于/usr/local/mysql-5.5.53-linux2.6-x86_64中
-
创建软链接
为后续使用方便,如在脚本中引用路径时更方便,这里还是给它设置一个软链接:
ln -s /usr/local/mysql-5.5.53-linux2.6-x86_64/ /usr/local/mysql
-
更改mysql文件夹属主为mysql
chown -R mysql.mysql /usr/local/mysql/
-
初始化mysql数据库
在解压后的mysql目录中有一个scripts目录其中有一个
mysql_install_db
的文件,执行它,并指定用户为
mysql
,数据目录使用其默认的路径
/usr/local/mysql/data
,操作如下:
-
设置mysql开机自启
mysql目录中有一个support-files目录,其中有一个
mysql.server
文件,将其复制到
/etc/init.d/
下,并更名为
mysqld
:
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig chkconfig mysqld on
-
提供mysql的配置文件
同样是在
support-files
目录中有多种不同类型的mysql配置文件,本文我使用的是
my-small.cnf
,将其复制到
/etc
目录下,因为我没有设置非常规的basedir和datadir,所以这里可以不用对其进行修改:
cp support-files/my-small.cnf /etc/my.cnf #更名为my.ncf
-
启动mysql服务
service mysqld start lsof -i :3306
-
设置mysql root账户密码
mysqladmin -uroot -ppassword>
然后在使用root用户登录。
5.搭建php-fpm环境
6.搭建zabbix server
7.建立给zabbix使用的数据库
zabbix
要实现将其相关的配置信息,监控的信息都存储于后台的数据库中,自然需要建立相应的数据库,并配置相应的账号。
zabbix
支持多种类型的数据库,这里只以
mysql
为例,且是在zabbix server上的mysql上需要做的。
-
修改zabbix server配置文件
源码安装的zabbix,其配置文件默认位于其安装目录的
etc
目录中,即:
/usr/local/zabbix/etc
下,server的为
zabbix_server.conf
,此时修改其连接数据库的相关信息即可,默认连接的数据库即为本机的数据库,数据库即为zabbix,密码为空,所以将密码设置为前面创建的密码即可。
DBPassword=
-
修改zabbix agent的配置文件
文件位置和server的一样,需要修改的地方有如下几处:
很明显分别有针对server和agent的脚本,把它们复制到
/etc/init.d/
目录下:
打开这两个文件(zabbix_agentd和zabbix_server)查看其内容,根据实际情况进行修改,一般需要更改的只是如下内容:
将这两个服务安装添加到自启动中:
8.安装zabbix web程序
zabbix对于监控的结果可以通过web页面来进行展示和查看,它需要安装一个使用php程序来运行的web站点,根据zabbix的官方要求,还有如下php的参数需要提前修改:
上述修改都在
php.ini
文件中完成。在本文的环境中它位于
/usr/local/php/etc/php.ini
。另外需要补充一下,zabbix3.2.4它要求的php版本最低为5.4。 修改完
php.ini
文件后,重启php-fpm服务
service php-fpm restart
。
安装zabbix web程序操作步骤如下:
-
创建web站点
在web service的根目录下给zabbix单独创建一个根目录,用于存放zabbix的php程序文件,然后再将源码解压目录中名为
frontends/php
目录中的全部内容复制过来。
-
打开zabbix web完成配置过程
浏览器中输入
http://server_ip/zabbix
打开zabbix的web界面,初次打开会显示欢迎界面,此时web程序的安装还没有完成,并不需要登录web站点的用户名和密码,然后点击
Next step
可以看到它会进行一个php环境参数的检测,需要它们全部显示为
OK
在继续进行下一步,从此步也可以看到很多之前php configure时所enable和with的选项参数,它们都是运行zabbix web程序所要求的。
-
zabbix 3.2.4 web需求php的环境如下:
php环境检测通过的结果如下图所示:
zabbix web php环境检测通过图1
zabbix web php环境检测通过图2
zabbix web DB配置
zabbix server详细信息
zabbix web安装信息汇总
zabbix web conf install
文件导入完成后,点击
Finish
,会出现以下信息,即表示zabbix web安装成功。
zabbix web安装成功提示信息
初始情况下,只配置了让zabbix server监控它自己,下面继续配置一台Linux server,让zabbix server可以监控它,并可以发送监控通知邮件。
9.被监控端安装zabbix agent
安装过程还是使用源码编译安装的方式,先创建zabbix用户。
在被监控的Linunx server上,只需要安装zabbix agent,在configure时使用如下参数即可:
configure完成以后,注意观察汇总信息是否有错误提示,是否只启用了agent,有问题根据实际情况去排查并解决。如果没有错误,则根据提示信息执行
make install
完成安装过程。
被监控端设置软链接,添加zabbix执行程序路径至PATH变量,修改
zabbix_agentd.conf
文件以及zabbix_agentd服务开机自启的过程参考前文相关内容即可,此处不在赘述。
最后启动被监控端的zabbix_agentd服务。
10.zabbix server上配置监控内容
在zabbix server上配置刚安装了zabbix agent的主机,并设置要监控的内容。
根据实际情况填写主机名,选择主机分组,主机ip,对于主机分组此处我选择
Linux servers
作为示例。
然后可以选择
Host
旁的
Templates
,zabbix内置了很多种不同的模板,它包含的有监控条目
item
,告警触发器
trigger
,图形展示
Graphs
,屏幕
Screens
等。以下为给主机应用模板的操作过程:
给主机应用监控模板1
选择相应的监控模板
确认主机是否应用了监控模板
示例中的
server3
上我启用的有web服务,所以这里选择了zabbix内置的
Template App HTTP Serivice
这一模板对http服务进行监控。 等待片刻,
ZBX
会显示成绿色即表示zabbix server能和server3上的zabbix agent正常通信了,如下所示:
zabbix server已可监控到server3
11.配置zabbix server发送通知邮件
zabbix server默认支持多种发送通知的方式,其中就包含的有名为
Email
的方式,但经过多次尝试都未能实现让zabbix server发送通知邮件,所以这里使用zabbix调用外部脚本且借助公网smtp服务器的方式来发送通知邮件。详细过程如下:
zabbix自定义media type