安装部署
下载
下载安装包
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系统
打开浏览器,输入 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;
这下终于安装成功了!
登录zabbix系统
默认的登录用户名是 admin,密码是 zabbix,进入后记得修改密码哦~~
配置zabbix客户端
修改客户端授权IP地址
打开配置文件
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 EOF
授权监控脚本
chmod +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
重启agent服务
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 fi
授权监控脚本
chmod +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
重启agent服务
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]>