一、Zabbix简介

    Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

    Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

    Zabbix由2部分构成,zabbix server与可选组件zabbix agent。

    Zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,可以运行在众多平台上。

二、基础组件安装

zabbix的安装需要LAMP环境:

1
2
# yum install php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel net-snmp   net-snmp-devel perl-DBI
# yum install httpd mariadb*

三、数据库配置

1
2
3
4
5
6
7
8
9
#systemctl start mariadb.service
# mysql -u root -p
Enter password:                  ##输入MySQL密码,默认为空  
 MariaDB [(none)]> create database zabbix character set utf8;
                                              ##创建数据库zabbix,并且数据库编码使用utf8
 MariaDB [(none)]> insert into mysql.user(Host,User,Password)                      values('localhost','zabbix',password('zabbix'));       ##新建账户zabbix,密码zabbix
 MariaDB [(none)]>  flush privileges;      ##刷新系统授权
 MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zabbix' with grant option;            ##允许账户能从本机连接至数据库zabbix
  MariaDB [(none)]>  flush privileges;

四、zabbix的安装和配置

①下载并进行编译安装

1
2
3
4
5
6
7
8
9
10
11
12
# wget http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz 
# tar -zxvf zabbix-2.4.5.tar.gz
# cd zabbix-2.4.5
# ./configure --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --prefix=/usr/local/zabbix
    --prefix----> 指定zabbix安装目录
    --enable-server----> 支持zabbix服务器    --enable-agent----> 支持zabbix代理    --enable-proxy----> 支持zabbix代理服务器
    --with-libcurl----> 使用curl包
    --with-net-snmp----> 使用net-snmp软件包,选择性地指定路径NET-SNMP配置
    --with-mysql=/usr/bin/mysql_config 使用MySQL客户端库可以选择指定路径mysql_config
    注:如出现configure: error: MySQL library not found错误,是因为缺少mariadb-devel             该软件包,yum install mariadb-devel进行安装
# make
# make install

②导入数据库

1
2
3
4
5
6
# mysql -u root -p
  MariaDB [(none)]> use zabbix;
  MariaDB [zabbix]> source /root/zabbix-2.4.5/database/mysql/schema.sql
  MariaDB [zabbix]> source /root/zabbix-2.4.5/database/mysql/data.sql
  MariaDB [zabbix]> source /root/zabbix-2.4.5/database/mysql/images.sql
  MariaDB [zabbix]> quit

注:导入请按以上顺序导入,否则会出现错误情况。

③添加服务器对应的端口(可省略)

1
2
3
4
5
[root@localhost ~]# cat /etc/services |grep zabbix
zabbix-agent    10050/tcp               # Zabbix Agent      //客户端
zabbix-agent    10050/udp               # Zabbix Agent
zabbix-trapper  10051/tcp               # Zabbix Trapper    //服务端
zabbix-trapper  10051/udp               # Zabbix Trapper

④拷贝相关的配置文件到/etc下并进行相关配置修改

1
2
3
4
5
6
[root@localhost ~]# mkdir -p /etc/zabbix
[root@localhost ~]# cp -r zabbix-2.4.5/conf/* /etc/zabbix/
[root@localhost ~]# chown -R zabbix:zabbix /etc/zabbix
[root@localhost ~]#ln -s /usr/local/zabbix/etc /etc/zabbix/
[root@localhost ~]# ln -s /usr/local/zabbix/bin/* /usr/bin/
[root@localhost ~]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

a).修改zabbix_server.conf   

1
[root@localhost ~]# vi /etc/zabbix/zabbix_server.conf

   修改后如下:

   

1
2
3
4
5
6
7
8
[root@localhost ~]# cat  /etc/zabbix/zabbix_server.conf|grep -n ^[^#]
  30:LogFile=/tmp/zabbix_server.log   ##日志文件地址
  68:DBHost=localhost                  ##数据库主机
  78:DBName=zabbix                     ##数据库名
  94:DBUser=zabbix                     ##数据库用户名
 102:DBPassword=zabbix                  ##数据库密码
 282:ListenIP=127.0.0.1              ##数据库IP地址
 425:AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts##zabbix运行脚本存放目录

wKioL1Xb5PjQSbmeAADShHhW4e4108.jpg

b).修改zabbix_agentd.conf

1
[root@localhost ~]# vi /etc/zabbix/zabbix_agentd.conf

   修改后如下:

   

1
2
3
4
5
6
7
8
9
[root@localhost ~]# cat  /etc/zabbix/zabbix_agentd.conf|grep -n ^[^#]
   11:PidFile=/tmp/zabbix_agentd.pid            ##进程PID
   21:LogFile=/tmp/zabbix_agentd.log            ##日志保存位置
   59:EnableRemoteCommands=1                 ##允许执行远程命令
   81:Server=127.0.0.1,192.168.10.128               
   122:ServerActive=127.0.0.1
   133:Hostname=Zabbix server          ##必须与zabbix创建的hostname相同
   252:Include=/usr/local/etc/zabbix_agentd.conf.d/
   265:UnsafeUserParameters=1            ##启动自定义key

   wKiom1XgDVnwpXi1AAEA4rWi3eM292.jpg

五、修改PHP相关参数

1
2
3
4
5
6
7
# vi /etc/php.ini
384 max_execution_time = 300
394 max_input_time = 300
405 memory_limit = 128M
800 upload_max_filesize = 2M
878 date.timezone = Asia/Shanghai
672 post_max_size = 28M

六、配置web站点

1
2
# cd zabbix-2.4.5/
# cp -r frontends/php /var/www/html/zabbix

②修改httpd.conf的参数 

1
2
3
4
# vi /etc/httpd/conf/httpd.conf
    163 <IfModule dir_module>
    164     DirectoryIndex index.html index.php
    165 </IfModule>

③关闭SELinux和防火墙:

a、临时关闭(不用重启机器):

1
2
# setenforce 0                       ##设置SELinux 成为permissive模式  (关闭SELinux)
# setenforce 1                       ##设置SELinux 成为enforcing模式     (开启SELinux)

b、修改配置文件需要重启机器:

1
# vi /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled(需重启机器)

c、可自己做策略开放相应端口,这里我直接关闭:

1
2
# systemctl status firewalld.service       ##查看防火墙状态
# systemctl stop firewalld.service         ##关闭防火墙

七、安装web界面

1
# systemctl start httpd.service

在浏览器中输入http://127.0.0.1/zabbix进入zabbix的web配置页面=====》

wKiom1XcCYjRv_iTAALKbhdzZd0773.jpg 

(如全部OK)NEXT=====》

wKiom1XcC3vAXcxeAAJMsSQeq3c623.jpg

配置MySQL数据库信息,并点击“Test connection”按键,如OK====》NEXT=====》

wKioL1XcDnGxjvTeAAFgMWkNWIc490.jpg

默认,直接NEXT=====》

wKioL1XcDtfD5ytZAAGqrJOj_rY406.jpg

默认,直接NEXT=====》出现错误,提示Fail(忘截图了)

Configuration file"/var/www/html/zabbix/conf/zabbix.conf.php"

created: Fail

Unable to create the configuration file.Please install it manually, or fix permissions on the conf directory.

Press the "Download configuration file" button, download the configuration file and save it as"/var/www/html/zabbix/conf/zabbix.conf.php"When done, press the "Retry" button

=====》按提示点击“Download configuration file”按钮,并将下载的zabbix.conf.php保存到

/var/www/html/zabbix/conf/下,点击“Retry”按钮重试=====》

wKioL1XcE__QYcIrAAHgsIXQv_c982.jpg

显示OK,点击“Finish”按钮完成安装操作。

1
Zabbix的默认账号为admin,密码为zabbix。

zabbix默认是英文版,更改语言======》Profile

wKioL1XcOUWT3FbDAAAZ-Guecfo572.jpg

======》在Language中选择zh_CN,点击Update

wKioL1XcOcCAqmuWAADBUnmTi6M760.jpg

=====》已更改为汉语

wKiom1XcOI-hAXOIAAIOut0pxqM426.jpg

八、添加开机启动脚本

1
2
3
4
5
6
7
8
9
# cd zabbix-2.4.5/
# cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server
# cp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
# chmod u+x /etc/rc.d/init.d/zabbix_server
# chmod u+x /etc/rc.d/init.d/zabbix_agentd
# chkconfig zabbix_server on 
# chkconfig zabbix_agentd on
# /usr/local/zabbix/sbin/zabbix_server start
# /usr/local/zabbix/sbin/zabbix_agentd start

注:zabbix_server和zabbix_agentd都要启动。

当出现下图错误:

wKiom1Xewy6hWLC7AAAcbE83AH4001.jpg

并提示如下:

Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused

开启zabbix_agentd即可,如下,已经正常了

wKioL1Xexj3Tl_UcAAAS6ZT5y18449.jpg

九、zabbix客户端的安装

在这里我使用的是Ubuntu来作为客户端,Ubuntu安装zabbix相对简单,只需安装如下组件:

zabbix-agent         

zabbix-frontend-php     

zabbix-server-mysql   

如只做客户端,只需安装zabbix-agent即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$sudo apt-get update
$sudo apt-get install zabbix-agent
$sudo /usr/sbin/zabbix_agentd start      ##开启客户端端口
$ ss -tlnp |grep 10050                   ##查看端口是否已开启
cat /etc/zabbix/zabbix_agentd.conf | grep ^[^#]
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
SourceIP=192.168.10.131     ##本地IP
Server=192.168.10.128       ##zabbix服务端IP
Hostname=Prozj               ##本地主机名
ListenPort=10050
Include=/etc/zabbix/zabbix_agentd.conf.d/
sudo /usr/sbin/zabbix_agentd restart

然后进入服务端web界面======》组态=====》主机=====》创建主机=====》

wKioL1XgFQLyWBs0AAFOZ50-wfA276.jpg

=====》添加客户端主机名称、群组及IP地址======》切换至模板项======》

wKiom1XgFD_wX6_CAAFs0bE6kp4509.jpg

在链接的新模板后点击“选择”,选择完成后点击“添加”,就可以再连接的模板上看到管理了,最后点击“更新”,添加主机完成=====》wKiom1XgFkrTFnFuAAEzXPxalxg778.jpg

显示绿色,已正常监控。等待一段时间后,切换至第一栏“监控中”====》点击“图形”,就可以看到相应主机数据显示了。

附:

在Ubuntu上安装zabbix的wiki:

1
http://wiki.ubuntu.org.cn/index.php?title=Zabbix&variant=zh-cn