Centos7安装Zabbix4.0
1 环境搭建LAMP
查看CentOS版本
[root@xqk ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
查看存放与内核相关的文件
[root@xqk ~]# cat /proc/version
Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Jul 29 17:46:05 UTC 2019
1.1 搭建之前的操作
1.1.1 升级系统组件到最新的版本
[root@xqk ~]# yum -y update
1.1.2 关闭selinux
编辑/etc/selinux/config,修改SELINUX参数如下:
[root@xqk ~]# vim /etc/selinux/config
SELINUX=disabled
检测selinux是否关闭,Disabled 为关闭
[root@xqk ~]# getenforce
Disabled
1.1.3 关闭防火墙
查看默认防火墙状态,关闭后显示not running,开启后显示running
[root@xqk ~]# firewall-cmd --state
not running
临时关闭firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
1.2 搭建LAMP环境
1.2.1 安装所需所有软件仓库
Zabbix是建立在LAMP或者LNMP环境之上,在此为了方便就使用yum安装LAMP环境
[root@xqk ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
安装完成后检查应用版本
[root@xqk ~]# rpm -qa httpd php mariadb
mariadb-5.5.60-1.el7_5.x86_64
php-5.4.16-46.el7.x86_64
httpd-2.4.6-89.el7.centos.1.x86_64
1.2.2 编辑httpd
[root@xqk ~]# vim /etc/httpd/conf/httpd.conf
ServerName 192.168.1.2 #修改为主机名
DirectoryIndex index.html index.php # 添加首页支持格式
1.2.3 配置php,配置中国时区
[root@xqk ~]# vim /etc/php.ini
date.timezone = PRC
1.2.4 启动httpd,mysqld
[root@xqk ~]# systemctl start httpd.service
[root@xqk ~]# systemctl enable httpd.service
[root@xqk ~]# systemctl start mariadb.service
[root@xqk ~]# systemctl enable mariadb.service
查看服务启动情况
[root@xqk ~]# netstat -tnlp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 6824/httpd
[root@xqk ~]# netstat -tnlp |grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7204/mysqld
1.2.5 创建一个测试页,测试LAMP是否搭建成功
[root@xqk ~]# vim /var/www/html/index.php
<?php
phpinfo()
?>
浏览器输入:ip/index.php进行测试
或者本地输入:curl http://127.0.0.1 -I,本地测试结果如下:
[root@xqk ~]# curl http://127.0.0.1 -I
HTTP/1.1 200 OK
Date: Thu, 05 Sep 2019 06:24:34 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
Content-Type: text/html; charset=UTF-8
1.2.6 初始化mysql数据库,并配置root用户密码
设置数据库root密码
[root@xqk ~]# mysqladmin -u root password 123456
[root@xqk ~]# mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
再次输入 mysql -uroot -p,并按照提示输入密码登录
[root@xqk ~]# mysql -uroot -p
如还是出现以上错误,编辑配置文件跳过密码登录,并设置密码
[root@xqk ~]# vim /etc/my.cnf.d/server.cnf
在[mysqld]节点下添加
[mysqld]
skip-grant-tables
重启mariadb服务
[root@xqk ~]# systemctl restart mariadb.service
输入mysql -uroot -p不用密码直接回车登录如下:
[root@xqk ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
修改密码:
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user set password=password("123456") where user="root";
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> quit
编辑配置文件删除skip-grant-tables并重启mariadb服务
[root@xqk ~]# vim /etc/my.cnf.d/server.cnf
[root@xqk ~]# systemctl restart mariadb.service
输入mysql -uroot -p 输入设置的密码,回车登录:
[root@xqk ~]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
创建zabbix数据库(中文编码格式)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
授予zabbix用户zabbix数据库的所有权限,密码zabbix
MariaDB [(none)]> grant all 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)
MariaDB [(none)]> quit
Bye
修改测试页内容,测试zabbix用户是否能够登陆数据库,这个环节很重要
[root@xqk ~]# vim /var/www/html/index.php
<?php
$link=mysql_connect('ip','zabbix','zabbix');
if($link) echo "<h1>Success!!</h1>"; #显示Success表示连接数据库成功
else echo "Fail!!";
mysql_close();
?>
浏览器输入ip访问,出现Success!!表示PHP连通数据库完成。
为保证zabbix用户也可以登录数据库,若出现本地无法登录情况,解决方式如下:
[root@xqk ~]# mysql -uroot -p
查看用户表
MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------+
| user | host |
+--------+-----------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | xqk.local |
| root | xqk.local |
+--------+-----------+
7 rows in set (0.00 sec)
有空用户名称占用导致本地无法登录远程可登录
删除空用户
MariaDB [(none)]> drop user ''@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> drop user ''@xqk.local;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+--------+-----------+
| user | host |
+--------+-----------+
| zabbix | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| | xqk.local |
| root | xqk.local |
+--------+-----------+
6 rows in set (0.00 sec)
2 安装zabbix服务端
2.1 安装依赖包 + 组件
[root@xqk ~]# yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*
安装php支持zabbix组件
[root@xqk ~]# yum install php-bcmath php-mbstring -y
会自动生成yum源文件,保证系统可以上网
[root@xqk ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
安装zabbix组件
[root@xqk ~]# yum install zabbix-server-mysql zabbix-web-mysql -y
安装zabbix组件时遇到如下问题:
Error downloading packages:
zabbix-web-mysql...:[Errno 256] No more mirrors to try.
zabbix-server-mysql...:[Errno 256] No more mirrors to try.
处理思路如下:
1 缓存问题:
备份缓存/var/cache/yum/*
[root@xqk ~]# mv /var/cache/yum/* /delete/
清除yum缓存
[root@xqk ~]# yum clean all
解释:yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除。
需要定期清理缓存。
下载服务器的包到本地缓存
[root@xqk ~]# yum makecache
就是把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。
yum更新
[root@xqk ~]# yum -y update
执行yum install package成功,我在yum安装zabbix遇到的就是这个问题。
2 检查是否安装FTP工具,若没有则安装ftp和telnet
[root@xqk ~]# rpm -qa | grep ftp
[root@xqk ~]# yum install ftp-* -y
[root@xqk ~]# yum install telnet-* -y
导入数据到数据库zabbix中(最后一个zabbix是数据库zabbix),且因为用户zabbix是%(任意主机),所以登录时需要加上当前主机ip(-h 192.168.1.2),密码是用户zabbix登陆密码(zabbix)
[root@xqk ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p -h 192.168.1.2 zabbix
zabbix配置数据库用户及密码
[root@xqk ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=本机ip
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
确认数据库用户及密码
[root@xqk ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
91:DBHost=192.168.1.2
100:DBName=zabbix
116:DBUser=zabbix
124:DBPassword=zabbix
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
473:Timeout=4
516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
527:ExternalScripts=/usr/lib/zabbix/externalscripts
563:LogSlowQueries=3000
修改时区
[root@xqk ~]# vi /etc/httpd/conf.d/zabbix.conf
将 php_value date.timezone Europe/Riga去掉注释并修改为
php_value date.timezone Asia/Shanghai
启动zabbix服务并设置开机自启
[root@xqk ~]# systemctl start zabbix-server
[root@xqk ~]# systemctl enable zabbix-server
监听在10051端口上,如果没监听成功,可重启zabbix-server服务试试
[root@xqk ~]# netstat -tnlp|grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 12636/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 12636/zabbix_server
至此,zabbix服务已经完成,接下来web界面安装zabbi,建议在此之前重启服务器。
2.2 web界面安装zabbix
如果以上步骤无误,现在可以使用web打开
浏览器输入:http://ip/zabbix
3 安装zabbix客户端
[root@xqk ~]# yum install zabbix-agent.x86_64 -y
修改zabbix客户端配置文件
[root@xqk ~]# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log #错误日志
LogFileSize=0
ListenPort=10050 #启动监听端口
StartAgents=3 #被动模式下选择,主动模式则为0
ListenIP=0.0.0.0 #监听所有IP
Server=10.27.146.250 #被动模式下必填,将zabbix-server端的ip填入
#ServerActive=10.27.146.250 #主动模式下填写
Hostname=Api1Bearead #本机的hostname,此值必须与zabbix的网页上创建的主机名一致即可
检查确认修改配置
[root@xqk ~]# grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=127.0.0.1
107:ListenPort=10050
116:ListenIP=0.0.0.0
126:StartAgents=3
153:Hostname=xqk.local
271:Include=/etc/zabbix/zabbix_agentd.d/*.conf
启动zabbix客户端
[root@xqk ~]# systemctl start zabbix-agent.service
检查是否启动成功
[root@xqk ~]# netstat -tnlp |grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2070/zabbix_agentd
设置zabbix客户端开机自启动
[root@xqk ~]# systemctl enable zabbix-agent.service