zabbix 是一款开源的监控平台,目前在运维监控上使用最为广泛,此外还有 nagios等。本文就来介绍下 如何在 centos 7上安装
准备环境
一台 server
一台 client
安装 lnmp 环境
参考 lnmp 一键安装包
地址https://lnmp.org/download.html
安装服务端
下载 zabbix
去官网下载http://www.zabbix.com/download
wget -c https://managedway.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.9/zabbix-3.0.9.tar.gz
tar zxvf zabbix-3.0.9.tar.gz
cd zabbix-3.0.9
创建数据库
MariaDB [(none)]> create database zabbix;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+--------------------+
4 rows in set (0.05 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
创建组和用户
[root@server zabbix-3.0.9]# groupadd zabbix
[root@server zabbix-3.0.9]# useradd -g zabbix zabbix
编译
1.在 zabbix 目录执行如下命令进行预编译检测
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java
2.报错解决
yum install libxml2-devel mysql-devel net-snmp* curl-devel java* -y
3.执行上面的操作后,如果一切顺利,会有如下提示
4.执行编译
make && make install
6.安装完成后zabbix的配置文件和执行命令以及日志等信息会分布在指定的目录中:
默认配置文件目录:
/usr/local/etc
zabbix服务端和客户端可执行文件目录:
/usr/local/sbin/
zabbix_get采集信息可执行文件目录:
/usr/local/bin/
7.导入数据库,在源码包的 database/mysql 目录中有如下3个 sql 文件
[root@server zabbix-3.0.9]# ls
aclocal.m4 bin ChangeLog conf config.log config.sub configure.ac database frontends INSTALL m4 Makefile.am man missing README src
AUTHORS build compile config.guess config.status configure COPYING depcomp include install-sh Makefile Makefile.in misc NEWS sass upgrades
[root@server zabbix-3.0.9]# cd database/
ibm_db2/ mysql/ oracle/ postgresql/ sqlite3/
[root@server zabbix-3.0.9]# cd database/mysql/
[root@server mysql]# ls
data.sql images.sql schema.sql
然后
[root@server mysql]# mysql -uzabbix -p zabbix < schema.sql
Enter password:
[root@server mysql]# mysql -uzabbix -p zabbix < images.sql
Enter password:
[root@server mysql]# mysql -uzabbix -p zabbix < data.sql
Enter password:
进入数据库查看下
8。修改配置文件
root@server mysql]# vim /usr/local/etc/zabbix_server.conf
将一下内容前的#
注释掉或修改
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
9.复制 php 文件到 web 目录
[root@server zabbix-3.0.9]# cd frontends/php/
[root@server php]# cp -rf * /home/wwwroot/default/
10.打开浏览器 输入服务器 ip,直接点击下一步
12.检查配置
修改
[root@server default]# vim /usr/local/php/etc/php.ini
重启
[root@server default]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
13.填写数据库信息
14.填写zabbix 名称
15.生成配置列表
16.提示无法创建配置文件
17.原因是 web 目录读写权限文件,设置下然后拷贝文件然后在 web 目录下传创建zabbix.conf.php
粘贴进去
[root@server default]# chown -R www:www *
[root@server default]# vim zabbix.conf.php
18.完成安装
19.登陆后台
用户名 admin 密码 zabbix
20.登陆后台出现错误,原因是我使用的是 php 7,这个是因为PHP 7.1.0类型强化,处理方法也很简单找到Zabbix WEB目录下include/func.inc.php文件
[root@server default]# sed -i '/$last = strtolower(substr($val, -1));/a$val = substr($val,0,-1);' include/func.inc.php
20.启动服务端
[root@server sbin]# cd /usr/local/sbin/
[root@server sbin]# ./zabbix_server
至此,关于zabbix服务端的配置完成
后台设置
语言设置
默认是英文的,英文好无所谓,不过我还是比较喜欢有中文看中文。
然后选择语言为中文就好
客户端配置
1.去这里找与服务端对应的 agent
地址 http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/
2.然后安装
[root@client ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
3.配置
sed -i "s/Server=127.0.0.1/Server=192.168.1.117/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.1.117/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=192.168.1.117/" /etc/zabbix/zabbix_agentd.conf
4.启动
[root@client ~]# setenforce 0 #需要关selinux 否则无法启动
[root@client ~]# systemctl restart zabbix-agent.service
[root@client ~]# systemctl status zabbix-agent.service
[root@client ~]# systemctl enable zabbix-agent.service
添加被监控端
1.服务端点击配置–主机
2.然后添加主机
3.然后链接模板
4.稍等查看
报警设置
zabbix 可以提供多种报警设置,如脚本、短信、邮件,下面将下如何设置邮件报警
邮件报警
1.后台点击管理–媒介设置
然后点击电子邮件配置
下图是163的设置
注意: 163需要配置客户端授权码,填写的密码是客户端授权码而不是邮箱真实密码。否则无法验证成功。
2.然后切换到配置 动作
编辑默认的动作
名称默认
默认接收人填写:
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息打钩
恢复主题:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
3.条件设置
4.操作
编辑默认操作
1.配置动作持续时间
2.配置具体步骤:这里可以设置第1-3步触发报警发送邮件给管理员,第4步直接发送告警邮件给经理,可以实现故障升级的概念。
3.步骤持续时间,这里设置的是60秒,每隔60秒会发送一次邮件
4.选择操作类型为:发送消息
5.选择发送到指定的用户组
6.选择发送到指定的用户
7.选择示警媒介为电子邮件报警(电子邮件报警是我在后边报警媒介类型中创建的,为了让大家理清创建思路,你在配置时没有这个选项可以在配置好报警媒介类型后再进行配置)
8.选择事件确认,如果界面点击了事件确认,将不发送报警邮件。
5.然后切到用户
报警媒介设置
模拟故障
停止客户端 agent
[root@client ~]# systemctl stop zabbix-agent.service
检查邮件发送状态,未发送 请检查邮箱配置是否正确
发送成功会提示发送成功
邮件端收到邮箱后如下
故障恢复
其他报警设置
其他的还可以设置短信,但是需要有短信网关。短信网关一般也是有收费的。调用 API来发送信息。
还可以设置微信报警,但是需要企业微信,我这边没有,所以无法测试。