1+X 云计算运维与开发(中级)案例实战——Zabbix分布式监控系统
- 前言
- 思路
- 实操
- 1.配置yum源(ftp),修改主机名
- 2.对Server节点进行配置
- 3.对Agent节点进行配置
- 4.图形化界面操作
- 报错收集:
- 总结
前言
学而不思则罔,思而不学则殆。
IP | 主机名 | 节点 |
192.168.200.10/24 | zabbix-server | Server节点 |
192.168.200.20/24 | zabbix-agent | Agent节点 |
思路
这个实验非常简单,就是最基本的配置yum源,安装,修改配置文件,启动,然后在图形化界面操作。
1.配置yum源
2.安装服务
- [ server节点 : lamp+zabbix-server]
- [agent节点 :zabbix-agent]
- zabbix-server节点 配置数据库,修改权限,修改时区,修改配置文件,启动 zabbix-server
- zabbix-agent节点 修改配置文件,启动
5.图形化界面操作
实操
1.配置yum源(ftp),修改主机名
Server节点:
zabbix文件夹 和 CentOS-7-x86_64-DVD-1511.iso 请自行准备
[root@xnode1 ~]# hostnamectl set-hostname zabbix-server
[root@xnode1 ~]# bash
[root@zabbix-server ~]# mv /etc/yum.repos.d/* /mnt
[root@zabbix-server ~]# cat > /etc/yum.repos.d/local.repo << eof
> [centos]
> name=centos
> baseurl=file:///opt/cdrom
> gpgcheck=0
> [zabbix]
> name=zabbix
> baseurl=file:///opt/zabbix
> gpgcheck=0
> eof
[root@zabbix-server ~]# mv zabbix/ /opt
[root@zabbix-server ~]# mkdir /opt/cdrom ; mount CentOS-7-x86_64-DVD-1511.iso /opt/cdrom
mount: /dev/loop0 is write-protected, mounting read-only
[root@zabbix-server ~]# yum repolist
Loaded plugins: fastestmirror
centos | 3.6 kB 00:00:00
zabbix | 2.9 kB 00:00:00
(1/3): centos/group_gz | 155 kB 00:00:00
(2/3): zabbix/primary_db | 31 kB 00:00:00
(3/3): centos/primary_db | 2.8 MB 00:00:00
Determining fastest mirrors
repo id repo name status
centos centos 3,723
zabbix zabbix 37
repolist: 3,760
安装ftp服务,将/opt设置为共享目录:
[root@zabbix-server ~]# yum -y install vsftpd
[root@zabbix-server ~]# vi /etc/vsftpd/vsftpd.conf
## 在vsftpd.conf文件头部添加以下内容
anon_root=/opt
--------------------------------------------------
[root@zabbix-server ~]# systemctl restart vsftpd
Agent节点:
[root@xnode1 ~]# hostnamectl set-hostname zabbix-agent
[root@xnode1 ~]# bash
[root@zabbix-agent ~]# mv /etc/yum.repos.d/* /mnt
[root@zabbix-agent ~]# cat > /etc/yum.repos.d/local.repo << eof
> [centos]
> name=centos
> baseurl=ftp://192.168.200.10/cdrom
> gpgcheck=0
> [zabbix]
> name=zabbix
> baseurl=ftp://192.168.200.10/zabbix
> gpgcheck=0
> eof
[root@zabbix-agent ~]# systemctl stop firewalld
[root@zabbix-agent ~]# setenforce 0
注意:两台都要关闭防火墙,这很重要
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
[root@zabbix-agent ~]# yum repolist
Loaded plugins: fastestmirror
centos | 3.6 kB 00:00:00
zabbix | 2.9 kB 00:00:00
(1/3): centos/group_gz | 155 kB 00:00:00
(2/3): centos/primary_db | 2.8 MB 00:00:00
(3/3): zabbix/primary_db | 31 kB 00:00:00
Determining fastest mirrors
repo id repo name status
centos centos 3,723
zabbix zabbix 37
repolist: 3,760
2.对Server节点进行配置
安装 lamp+zabbix-server服务:
[root@zabbix-server ~]# yum -y install httpd
[root@zabbix-server ~]# yum -y install mariadb mariadb-server
[root@zabbix-server ~]# yum -y install zabbix-server-mysql zabbix-web-mysql
升级 trousers服务 :
[root@zabbix-server ~]# yum -y install trousers
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Package trousers-0.3.13-1.el7.x86_64 already installed and latest version
Nothing to do
不过我这里好像已经安装了,不用再升级了
启动 httpd服务 ,并设置开机自启:
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
启动数据库服务,并设置开机自启:
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
登录数据库,创建 zabbix 库(中文编码格式):
[root@zabbix-server ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
授予 zabbix 用户的访问权限
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
退出数据库,进入到 /usr/share/doc/zabbix-server-mysql-3.4.15/ 目录,导入数据库文件
[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@zabbix-server zabbix-server-mysql-3.4.15]# ll
total 2120
-rw-r--r--. 1 root root 98 Nov 12 2018 AUTHORS
-rw-r--r--. 1 root root 866545 Nov 12 2018 ChangeLog
-rw-r--r--. 1 root root 17990 Nov 12 2018 COPYING
-rw-r--r--. 1 root root 1267039 Nov 12 2018 create.sql.gz
-rw-r--r--. 1 root root 52 Nov 12 2018 NEWS
-rw-r--r--. 1 root root 1062 Nov 12 2018 README
[root@zabbix-server zabbix-server-mysql-3.4.15]# zcat create.sql.gz | mysql -uroot zabbix
设置时区:
1.修改 /etc/php.ini文件:
[root@zabbix-server ~]# vi /etc/php.ini
[root@zabbix-server ~]# systemctl restart httpd
## 重启很关键,不要问我是怎么知道的TAT
在文件中寻找" ;date.timezone = "
1.将等号后面修改为 PRC(可以试一下用输入法输入PRC,你会知道这是什么意思)
2.将‘ ; ’,删除,在php.ini文本中,这个符号就是注释的意思,和‘ # ’ 类似寻找快捷键:你可以在 命令模式 下输入“ / ",然后在输入你要找的字符
2.修改 /etc/httpd/conf.d/zabbix.conf 文件
将 第20行 的注释去掉,将欧洲时间改为 亚洲/上海
php_value date.timezone Asia/Shanghai
修改 Zabbix 配置文件 并启动:
第91行:去掉注释
91 DBHost=localhost
第124行:将注释去掉,在等号后面添加zabbix
124 DBPassword=zabbix
第131行:将注释去掉,将等号后面改为 /var/lib/mysql/mysql.sock
131 DBSocket=/var/lib/mysql/mysql.sock
如果不想去除注释,就除了注释把内容复制到下一行在进行修改
启动 zabbix-server服务
[root@zabbix-server ~]# systemctl start zabbix-server
## 如果发现使用不了netstat命令,就安装一个net-tools
[root@zabbix-server ~]# yum -y install net-tools
[root@zabbix-server ~]# netstat -ntpl | grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 4232/zabbix_server
tcp6 0 0 :::10051
如果 10051端口 起不来,就去查日志文件,路径 /etc/zabbix/zabbix_server.conf 文件中有提到
[root@zabbix-server ~]# cat /etc/zabbix/zabbix_server.conf | grep LogFile
# file - file specified with LogFile parameter
### Option: LogFile
# LogFile=
LogFile=/var/log/zabbix/zabbix_server.log
### Option: LogFileSize
# LogFileSize=1
LogFileSize=0
3.对Agent节点进行配置
这里的配置不会像Server节点那么繁琐
安装 zabbix-agent服务:
[root@zabbix-agent ~]# yum -y install zabbix-agent
修改 /etc/zabbix/zabbix_agentd.conf 文件
[root@zabbix-agent ~]# vi /etc/zabbix/zabbix_agentd.conf
第97行:将 127.0.0.1 改为 Server节点的IP地址(192.168.200.10)
97 Server=192.168.200.10
第138行:将 127.0.0.1 改为 Server节点的IP地址(192.168.200.10)
138 ServerActive=192.168.200.10
第149行:将等号后面改为 ” Zabbix-agent “
149 Hostname=Zabbix-agent
启动 zabbix-agent服务:
[root@zabbix-agent ~]# systemctl start zabbix-agent
[root@zabbix-agent ~]# yum -y install net-tools
[root@zabbix-agent ~]# netstat -ntpl | grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3711/zabbix_agentd
tcp6 0 0 :::10050
4.图形化界面操作
在浏览器地址栏输入 server节点的IP地址/zabbix , 登录zabbix图形界面:
点击”Next step“,可以看到 php 的版本信息
点击”Next step“,输入mysql的端口号3306,输入密码 zabbix
点击”Next step“,这里 Name 随便输入什么,我们这里输入 test
点击”Next step“
点击”Next step“
点击” Finish“,用户名/密码 : Admin/zabbix (区分大小写)
登录后
首先,我们可以把界面的显示语言改为中文,当然英语大佬可以忽略
点击右上角的人图案
创建主机
添加完之后
至此,我们就可实现监控了,第一时间是看不到有波动的线条的,我们可以在 zabbix-agent 节点做一些操作或者等待即可看到线条波动
报错收集:
当出现以下报错:
解决方法:在 zabbix-server节点添加或者修改主机映射,因为他不知道 zabbix-agent 节点的映射关系
当出现以下报错:
当这个监控时间与系统时间对不上时
解决方法:
- 我们先去修改并确认两个设置时区的文件正确( /etc/php.ini 、 /etc/httpd/conf.d/zabbix.conf )
- 然后使用 systemctl stop httpd
- 在使用 systemctl start httpd
问:为什么不用 systemctl restart httpd ?
答:我试过,再去查看时间时,没变化;而分开输入立刻奏效。
总结
一日一钱,千日千钱