下载安装包
wget https://cdn.zabbix.com/stable/3.0.30/zabbix-3.0.30.tar.gz
安装依赖库
yum install -y mysql-devel net-snmp-devel
如果系统有安装 mysql 且 my.cnf 不在 /etc/my.cnf 路径下,务必要删除掉 /etc/my.cnf
rm -f /etc/my.cnf
安装zabbix
tar -xzvf zabbix-3.0.30.tar.gz cd zabbix-3.0.30 ./configure --prefix=/tongfu.net/env/zabbix-3.0.30/ \ --enable-expires \ --enable-headers \ --enable-modules=most \ --enable-so \ --enable-server \ --enable-agent \ --with-mysql \ --with-net-snmp \ --with-libcurl \ --with-libevent make make install
将 zabbix_get 链接到 /usr/bin/ 下
ln -s /tongfu.net/env/zabbix-3.0.30/bin/zabbix_get /usr/bin/zabbix_get
创建zabbix用户
useradd zabbix
复制 zabbix_server 和 zabbix_agentd 的启动脚本到 /etc/init.d/
将 zabbix_server 和 zabbix_agentd 脚本里面的 BASEDIR 的路径改成 /tongfu.net/env/zabbix-3.0.30
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
复制 frontends/php/* 到 /tongfu.net/web/zabbix/
mkdir /tongfu.net/web/zabbix cp -r frontends/php/* /tongfu.net/web/zabbix/
配置 httpd 的虚拟主机(虚拟目录也可以)
<VirtualHost *:8080> DocumentRoot "/tongfu.net/web/zabbix" ServerName zabbix.tongfu.com ErrorLog "logs/zabbix.tongfu.com-error_log" CustomLog "logs/zabbix.tongfu.com-access_log" common </VirtualHost>
建立数据库 zabbix 并授权 zabbix 全部权限
create database zabbix default charset utf8; grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'abcdef';
数据库文件在 database/mysql 下面
mysql -uzabbix -pabcdef -h127.0.0.1 zabbix < database/mysql/schema.sql mysql -uzabbix -pabcdef -h127.0.0.1 zabbix < database/mysql/images.sql mysql -uzabbix -pabcdef -h127.0.0.1 zabbix < database/mysql/data.sql
编辑服务器配置文件 /tongfu.net/env/zabbix-3.0.30/etc/zabbix_server.conf
主要是数据库连接的几个参数,根据自己的情况进行修改即可
DBHost=127.0.0.1 DBName=zabbix DBUser=zabbix DBPassword=abcdef DBSocket= DBPort=
这里的 httpd 服务需要各位自己安装了,用 yum 也可以,用源码安装也可以
首次启动需要通过如下方式
/etc/init.d/zabbix_server start /etc/init.d/zabbix_agentd start
以后就可以通过 systemctl 启动了
systemctl start zabbix_server zabbix_agentd httpd
systemctl enable zabbix_server zabbix_agentd httpd
打开浏览器,输入 zabbix 网址 http://zabbix.tongfu.com:8080/(根据你的 httpd 环境而定)
看到如下界面表示签名的安装部署工作成功了~~

点击下一步,检查环境,根据提示调整系统环境参数

点击下一步输入数据库信息

点击下一步输入服务器参数,这里不要改

点击下一步确认信息

这里报错了

原因是我们没有配置文件,解决方法
cd /tongfu.net/web/zabbix/conf mv zabbix.conf.php.example zabbix.conf.php
我们还需要手动配置一下数据库参数
<?php // Zabbix GUI configuration file. global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '127.0.0.1'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'abcdef'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER = 'localhost'; $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
这下终于安装成功了!

默认的登录用户名是 admin,密码是 zabbix,进入后记得修改密码哦~~

打开配置文件
vi /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf
修改 Server=
Server=[Zabbix服务器IP地址,多个IP地址用逗号分开]
修改 Hostname=
Hostname=[Zabbix客户端主机头,用来在服务器端显示]
打开配置文件
vi /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf
增加包含语句
Include=/tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/*.conf
重新启动zabbix客户端使设置生效
systemctl restart zabbix_agentd
语法
zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all]"
正确情况
[root@zabbix /]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all]" 0.690000
错误情况1:
这是因为参数 -s 后面指定的IP错误,这个IP是客户端的对外IP地址(可以是公网IP,也可能是局域网IP,但不能是127.0.0.1)
[root@zabbix /]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all]" zabbix_get [694]: Get value error: cannot connect to [[192.168.1.168]:10050]: [111] Connection refused
错误情况2:
这是因为在zabbix_agent上配置的Server=的IP地址不对,这个IP地址是zabbix服务器的对外IP地址
[root@zabbix /]# zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all]" zabbix_get [695]: Check access restrictions in Zabbix agent configuration
注意:当问题修复后,记得要使用验证工具验证一下,否则看到zabbix上依然是警告状态,需要等一会儿才会变正常
现在我们来学习如何创建一个zabbix模板
这是一个示例,统计最大磁盘使用量
[root@zabbix /]# cat > /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/diskusage.sh <<EOF
#!/bin/sh
df -lh|awk '{print \$5}'|sed 's/\%//'|sort -n -r|head -n 1
EOFchmod +x /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/diskusage.sh
路径是 /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.d/userparameter_xxx.conf
配置文件格式 UserParameter=<key>,<shell command>
这是一个示例,统计最大磁盘使用量
[root@zabbix /]# cat > /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/userparameter_test.conf <<EOF UserParameter=diskusage,/tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/diskusage.sh EOF
systemctl restart zabbix_agentd
zabbix_get -s 127.0.0.1 -p 10050 -k "diskusage"







 模板使用
模板使用现在就可以通过主机关联模板使用新模板进行监控了
这是一个实例检查进程是否存在
[root@zabbix /]# cat > /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/processAlive.sh <<EOF
#!/bin/sh
function processAlive
{
    procName=\$1
    procLine=`ps -ef | grep \$procName | grep -v grep | grep -v 'processAlive.sh' | grep -v zabbix_get`
    if [ ! "" = "\$procLine" ] ; then
        echo 1
    else
        echo 0
    fi
}
if [ ! "" = "\$1" ] ; then
    processAlive \$1
else
    echo 0
fichmod +x /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.conf.d/processAlive.sh
路径是 /tongfu.net/env/zabbix-3.0.30/etc/zabbix_agentd.d/userparameter_xxx.conf
配置文件格式 UserParameter=<key>,<shell command>
这里是个变量,我们可以统计多个进程的状态
UserParameter=process.alive[*],/etc/zabbix/zabbix_agentd.d/processAlive.sh $1
systemctl restart zabbix_agentd
zabbix_get -s 127.0.0.1 -p 10050 -k "process.alive[zabbix_server]"
带参数的模板的添加方法和普通模板是基本一样的,唯一的区别就是在添加项目的时候的 Key 和普通模板有所区别
只要按照 zabbix_gent 测试时候的参数 -k 的格式写就可以了
如果忘记zabbix用户密码可以登录zabbix的数据库进行修改。
以mysql数据库举例:
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| zabbix             |
+--------------------+
5 rows in set (0.18 sec)
MySQL [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [zabbix]> select * from users;
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
| userid | alias | name   | surname       | passwd                           | url | autologin | autologout | lang  | refresh | type | theme   | attempt_failed | attempt_ip      | attempt_clock | rows_per_page |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
|      1 | Admin | Zabbix | Administrator | d41d8cd98f00b204e9800998ecf8427e |     |         1 | 0          | en_GB | 30s     |    3 | default |              0 | 114.248.153.101 |    1532052188 |            50 |
|      2 | guest |        |               | d41d8cd98f00b204e9800998ecf8427e |     |         0 | 15m        | en_GB | 30s     |    1 | default |              0 |                 |             0 |            50 |
+--------+-------+--------+---------------+----------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+-----------------+---------------+---------------+
2 rows in set (0.00 sec)
MySQL [zabbix]> update users set passwd = md5('123456') where name = 'Zabbix';
Query OK, 1 row affected (0.44 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MySQL [zabbix]>