安装zabbix
- 官网下载地址
- wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
- rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
- yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
- 会连带安装httpd和php
- 如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql
- vim /etc/my.cnf //需要增加配置
character_set_server = utf8
- 重启mysqld服务后,进入mysql命令行,创建zabbix库
- create database zabbix character set utf8;
- 再创建用户
- grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'aming-zabbix';
- 导入数据
- cd /usr/share/doc/zabbix-server-mysql-3.2.7
- gzip -d create.sql.gz
- mysql -uroot -pxxx zabbix < create.sql
- systemctl start httpd; systemctl enable httpd
- vim /etc/zabbix/zabbix_server.conf //修改或增加
DBHost=127.0.0.1 //在DBName=zabbix上面增加
DBPassword=aming-zabbix //在DBuser下面增加
- systemctl start zabbix-server
- systemctl enable zabbix-server
- netstat -lntp |grep zabbix //查看监听端口
- 浏览器访问http://ip/zabbix/ web界面下面配置zabbix
- 用户名Admin 密码zabbix
- 进入后台第一件事情就是修改密码
安装zabbix
- 准备工作
- 两台机器,一台作为服务端(监控中心),另外一台作为它的客户端
- 背景
- zabbix,可以直接yum安装,但需要安装epel扩展源,在epel扩展源里面安装的zabbix的版本,最高是2.2版本,比较旧,所以使用官方提供的repo源
- 这里实验使用的zabbix3.2版本
- 首先访问官网下载地址,选择对应的版本,并提供对应的发行版,然后选择download,跳转到一个界面,找到这个rpm包(包含release),也就是说yum源在这个里面,下图所示,复制该链接
- 在两台机器都需要下载它
- wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
A机器
[root@hf-01 ~]# wget wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
B机器
[root@hf-02 ~]# wget wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
- 下载完之后,安装rpm包(实际上就是安装了一个yum源仓库)
A机器安装rpm包
[root@hf-01 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
B机器安装rpm包
[root@hf-02 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
- 查看/etc/yum.repos.d/目录下面会看到增加了一个zabbix.repo
[root@hf-01 ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo zabbix.repo
CentOS-CR.repo CentOS-Media.repo epel.repo.1
CentOS-Debuginfo.repo CentOS-Sources.repo epel-testing.repo
[root@hf-01 ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.2/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@hf-01 ~]#
- 再有了这个zabbix.repo源之后,就可以yum安装zabbix了,并安装下面的包
- yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
- zabbix-agent //客户端软件
- zabbix-get //服务端用的一个工具,这个工具可以通过命令行的形式,获得客户端某些监控项目的数据
- zabbix-server-mysql //这个是服务端跟mysql打交道相关的组件
- zabbix-web //webUI ,web界面
- zabbix-web-mysql //web和mysql相关组件
- PS:在服务端是需要安装这些所有的包,而在客户端仅仅需要安装 zabbix-agent 包即可
A机器
[root@hf-01 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
B机器
[root@hf-02 ~]# yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
- zabbix 是基于php环境的,也就是说用的是php 的代码编写的web界面,也就说这个zabbix 相当于一个站点
- 安装mysql,如果mysql之前没有安装的话,需要根据lamp那一章的mysql安装方法安装mysql
- 当然yum安装mysql、或mariadb也可以
- 安装mysql
A机器(因为之前安装过mysql)
[root@hf-01 ~]# !ps
ps aux| grep mysql
root 1203 0.0 0.1 115388 1684 ? S 01:22 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/hf-01.pid
mysql 1498 0.1 45.3 973552 458376 ? Sl 01:22 0:03 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/hf-01.err --pid-file=/data/mysql/hf-01.pid
root 2586 0.0 0.0 112676 980 pts/1 R 02:10 0:00 grep --color=auto mysql
[root@hf-01 ~]#
- 修改mysql的配置文件,修改/etc/my.cnf文件,设定默认的字符集
A机器
[root@hf-01 ~]# vim /etc/my.cnf
在[mysqld]下添加字符集
character_set_server = utf8
保存退出
- 如果不设置字符集,那么zabbix的web界面,设置成中文的话,可能就会出现乱码
- 修改完mysql的配置文件后,重启mysql服务
- /etc/init.d/mysqld restart
A机器
[root@hf-01 ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL.. SUCCESS!
[root@hf-01 ~]#
- 重启mysqld服务后,进入mysql命令行(第一次进入mysql命令行),创建zabbix库,并指定编码为utf8
- create database zabbix character set utf8;
A机器
[root@hf-01 ~]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@hf-01 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 7
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> create database zabbix character set utf8; //创建zabbix库,并指定编码为utf8
Query OK, 1 row affected (0.00 sec)
mysql>
- 再创建用户,这个用户是需要让web(php)代码连接mysql的,监控中心zabbix mysql服务,启动的前提就是要连接mysql;客户端采集了数据,需要把这些数据传递给服务端,那么服务端怎么把这些数据写入到MySQL去,这时就涉及到了mysql 的用户,涉及到了mysql 的数据库;用哪一个用户,去写入那一个库。
- grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'hanfeng-zabbix';
mysql> grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'hanfeng-zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
[root@hf-01 ~]#
- 退出mysql的命令行后,导入原始的数据,若缺少这些数据,zabbix就没有办法工作,就没有办法在web界面下展现给我们
- zabbix-server-mysql-3.2.11 这块用tab键补全,有可能版本号不同
A机器
[root@hf-01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.11/
[root@hf-01 zabbix-server-mysql-3.2.11]#
- 在/usr/share/doc/zabbix-server-mysql-3.2.11/目录下有一个create.sql.gz压缩包,将它解压,解压完之后生成了一个.sql的文件
A机器
[root@hf-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
[root@hf-01 zabbix-server-mysql-3.2.11]# gzip -d create.sql.gz
[root@hf-01 zabbix-server-mysql-3.2.11]# ls
AUTHORS ChangeLog COPYING create.sql NEWS README
[root@hf-01 zabbix-server-mysql-3.2.11]#
- 然后拿到create.sql文件,将它导入到zabbix库里面去
A机器
[root@hf-01 zabbix-server-mysql-3.2.11]# mysql -uroot -phanfeng zabbix < create.sql
Warning: Using a password on the command line interface can be insecure.
[root@hf-01 zabbix-server-mysql-3.2.11]#
- 启动zabbix服务,启动zabbix报错
- systemctl start zabbix-server
[root@hf-01 ~]# systemctl start zabbix-server
[root@hf-01 ~]#
- 启动httpd服务,在启动http服务之前,先查看nginx服务是否启动,若启动了nginx,就监听了80端口,就需要去停掉nginx服务,再去启动httpd服务
[root@hf-01 ~]# ps aux |grep nginx
root 2866 0.0 0.0 112676 984 pts/1 R 03:06 0:00 grep --color=auto nginx
[root@hf-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1517/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1517/master
tcp6 0 0 :::3306 :::* LISTEN 2749/mysqld
tcp6 0 0 :::22 :::* LISTEN 1191/sshd
[root@hf-01 ~]# systemctl start httpd
[root@hf-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1517/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1517/master
tcp6 0 0 :::3306 :::* LISTEN 2749/mysqld
tcp6 0 0 :::80 :::* LISTEN 2874/httpd
tcp6 0 0 :::22 :::* LISTEN 1191/sshd
[root@hf-01 ~]#
- 这时就发现httpd服务监听了80端口
- 若需要开机启动httpd服务和zabbix服务,则需要将它加入到服务的列表中去
- systemctl enable httpd
- systemctl enable zabbix-server
A机器
[root@hf-01 ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@hf-01 ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@hf-01 ~]#
- 若nginx设置了开机启动,则需要取消开机启动
- systemctl disable nginx
- chkconfig nginx off
- 查看zabbix服务进程
[root@hf-01 ~]# ps aux |grep zabbix
zabbix 2863 0.0 0.3 251752 3332 ? S 03:04 0:00 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
root 2926 0.0 0.0 112676 984 pts/1 R 03:15 0:00 grep --color=auto zabbix
[root@hf-01 ~]#
- 查看zabbix监听的端口
[root@hf-01 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1517/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1517/master
tcp6 0 0 :::3306 :::* LISTEN 2749/mysqld
tcp6 0 0 :::80 :::* LISTEN 2874/httpd
tcp6 0 0 :::22 :::* LISTEN 1191/sshd
[root@hf-01 ~]#
- 错误:
- 这里看到服务启动了,但并没有zabbix监听的端口
- 查看zabbix并没有监听端口后,首先检查zabbix的错误日志,错误日志路径/var/log/zabbix/zabbix_server.log
[root@hf-01 ~]# tail /var/log/zabbix/zabbix_server.log
2863:20180103:033242.719 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2863:20180103:033242.719 database is down: reconnecting in 10 seconds
2863:20180103:033252.720 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2863:20180103:033252.720 database is down: reconnecting in 10 seconds
2863:20180103:033302.721 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2863:20180103:033302.721 database is down: reconnecting in 10 seconds
2863:20180103:033312.722 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2863:20180103:033312.723 database is down: reconnecting in 10 seconds
2863:20180103:033322.724 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
2863:20180103:033322.724 database is down: reconnecting in 10 seconds
[root@hf-01 ~]#
- 虽然zabbix服务有进程,但没有彻底的起来,说明不能够连接mysql,所以还需要更改zabbix的配置文件
- 更改zabbix的配置文件,配置文件为/etc/zabbix/zabbix_server.conf
A机器
[root@hf-01 ~]# vim /etc/zabbix/zabbix_server.conf
搜索/DBHost
在DBName=zabbix上面增加
DBHost=127.0.0.1
在DBuser下面增加
DBPassword=hanfeng-zabbix
保存退出
- 因为mysql和zabbix装在同一台机器上,这里的 DBHost可以写localhost 或者127.0.0.1;如果是在生产环境上,有时候为了提升zabbix的性能,可能会把MySQL装在其他机器上,这是的DBHost,就需要写上mysql的ip
- 更改完zabbix配置文件,就可以启动zabbix服务了,因为之前启动了zabbix服务,这里只需restart重启下即可
A机器
[root@hf-01 ~]# systemctl restart zabbix-server
[root@hf-01 ~]#
- 这时再来查看下zabbix进程,有29个(正常情况下,都是这么多进程)
A机器
[root@hf-01 ~]# ps aux |grep zabbix |wc -l
29
[root@hf-01 ~]#
- 查看监听的端口,zabbix监听的端口为10051端口
A机器
[root@hf-01 ~]# netstat -lntp |grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 3303/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 3303/zabbix_server
[root@hf-01 ~]#
- 接下来就是配置web界面了(需要关闭防火墙和规则,否则浏览器无法访问)
- 在浏览器输入IP地址(即监控中心的IP地址),如192.168.74.129/zabbix 去访问
- 很多人会有疑问,仅仅启动了httpd 服务,没有去做任何的配置,因为yum安装zabbix,它默认安装httpd 及它的配置文件,一切都会帮你配置好了
- 再打开zabbix界面后,点击 Next step ,会出现一个提示,出现OK的都不用管,会看到提示需要去设置php的timezone时区,如下图
- 设置php的timezone时区,在php的配置文件中设置,默认php的配置文件在/etc/php.ini 里面
A机器
[root@hf-01 ~]# vim /etc/php.ini
搜索 /timezone
将 ;date.timezone 改为如下
date.timezone = Asia/Shanghai
保存退出
- 在定义完php的配置文件,还需要重启apache
[root@hf-01 ~]# systemctl restart httpd
[root@hf-01 ~]#
29.这时再来刷新浏览器,会发现都变成OK了
30.这时再来 Next step ,来配置数据库相关信息
- host :MySQL所在机器IP
- port:0为默认端口3306,如果有改动就修改
- name:库的名字
- user:库的用户
- password:用户的密码
- 然后再选择Next step ,配置站点名字相关
- host:站点主机名
- port:端口,如果有改动就改,没改动,默认就是10051
- name:站点的名字,你喜欢就好
- 配置完成后会有一个信息显示,如果配置错误,可以back返回上一步重新修改
- 安装成功后,会有提示界面,如下图
- 登录管理页,默认的账号是Admin,密码为zabbix
- 在登录进zabbix之后,首先需要去更改密码(因为默认的密码大家都知道的),若是在线上环境不更改密码,很容易被别人拿到后台权限
- 更改密码,先选择 Administration ,然后选择 Users
- 然后找到Admin,并点进去,选择 Change password 修改密码和选择语言(支持中文),然后保存退出
- 这时候密码改了,但看到界面还是英文版,刷新浏览器即可,会看到变成中文版
- 这时在退出zabbix,再重新进入下,使用新的密码,会看到重新进入了,这就是zabbix的web界面了
客户端安装zabbix(B机器)
- 在客户端上也需要下载zabbix的yum源
- wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
- rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
- yum install -y zabbix-agent
- vim /etc/zabbix/zabbix_agentd.conf //修改如下配置
Server=127.0.0.1修改为Server=192.168.133.130 //定义服务端的ip(被动模式)
ServerActive=127.0.0.1修改为ServerActive=192.168.133.130 //定义服务端的ip(主动模式)
Hostname=Zabbix server修改为Hostname=aming-123 //这是自定义的主机名,一会还需要在web界面下设置同样的主机名
- systemctl start zabbix-agent
- systemctl enable zabbix-agent
- 首先客户端下载yum源
B机器
[root@hf-02 ~]# wget wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
- 下载完之后,安装rpm包(实际上就是安装了一个yum源仓库)
B机器
[root@hf-02 ~]# rpm -ivh zabbix-release-3.2-1.el7.noarch.rpm
- 客户端,编辑zabbix的配置文件,文件为/etc/zabbix/zabbix_agentd.conf,服务端和客户端通信,就需要指定一个白名单IP
B机器
[root@hf-02 ~]# vi /etc/zabbix/zabbix_agentd.conf
搜索 /Server
Server=192.168.202.130
# 定义服务端的ip(被动模式),配置文件中默认是本机的IP
搜索 /ServerActive
ServerActive=192.168.133.130
#定义服务端的ip(主动模式)
#这个涉及到一个主动和被动模式;如果这里不填写服务中心的IP,那么就只能使用被动模式;这个IP是主动模式时候用的
搜索 /Hostname
Hostname=Zabbix server修改为Hostname=hf-02
#这是自定义的主机名,一会还需要在web界面下设置同样的主机名
保存退出
- 启动zabbix服务
[root@hf-02 ~]# systemctl start zabbix-agent
[root@hf-02 ~]#
- 客户端查看zabbix服务,监听的端口,客户端监听的端口是10050
[root@hf-02 ~]# ps aux |grep zabbix
zabbix 2566 0.0 0.1 80592 1280 ? S 13:16 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 2567 0.0 0.1 80592 1296 ? S 13:16 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 2568 0.0 0.1 80592 1836 ? S 13:16 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 2569 0.0 0.1 80592 1836 ? S 13:16 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 2570 0.0 0.1 80592 1836 ? S 13:16 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 2571 0.0 0.2 80720 2180 ? S 13:16 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root 2573 0.0 0.0 112664 972 pts/0 R 13:17 0:00 grep --color=auto zabbix
[root@hf-02 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1301/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1997/master
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 2566/zabbix_agentd
tcp6 0 0 :::22 :::* LISTEN 1301/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1997/master
tcp6 0 0 :::10050 :::* LISTEN 2566/zabbix_agentd
[root@hf-02 ~]#
- 将zabbix加入到启动列表里面,让它开机启动
- systemctl enable zabbix-agent
[root@hf-02 ~]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@hf-02 ~]#
- 这样客户端的zabbix就配置完成