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]
  1. zabbix-server节点 配置数据库,修改权限,修改时区,修改配置文件,启动 zabbix-server
  2. 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图形界面:

视频监控运维报告 监控运维实践_运维_02


点击”Next step“,可以看到 php 的版本信息

视频监控运维报告 监控运维实践_视频监控运维报告_03

点击”Next step“,输入mysql的端口号3306,输入密码 zabbix

视频监控运维报告 监控运维实践_centos_04

点击”Next step“,这里 Name 随便输入什么,我们这里输入 test

视频监控运维报告 监控运维实践_centos_05


点击”Next step“

视频监控运维报告 监控运维实践_云计算_06


点击”Next step“

视频监控运维报告 监控运维实践_视频监控运维报告_07


点击” Finish“,用户名/密码 : Admin/zabbix (区分大小写)

视频监控运维报告 监控运维实践_centos_08


登录后

视频监控运维报告 监控运维实践_centos_09

首先,我们可以把界面的显示语言改为中文,当然英语大佬可以忽略

点击右上角的人图案

视频监控运维报告 监控运维实践_云计算_10


视频监控运维报告 监控运维实践_linux_11


创建主机

视频监控运维报告 监控运维实践_运维_12


视频监控运维报告 监控运维实践_视频监控运维报告_13


添加完之后

视频监控运维报告 监控运维实践_centos_14


视频监控运维报告 监控运维实践_centos_15


视频监控运维报告 监控运维实践_centos_16


视频监控运维报告 监控运维实践_运维_17

至此,我们就可实现监控了,第一时间是看不到有波动的线条的,我们可以在 zabbix-agent 节点做一些操作或者等待即可看到线条波动

报错收集:

当出现以下报错:

视频监控运维报告 监控运维实践_云计算_18

解决方法:在 zabbix-server节点添加或者修改主机映射,因为他不知道 zabbix-agent 节点的映射关系

当出现以下报错:

当这个监控时间与系统时间对不上时

视频监控运维报告 监控运维实践_linux_19

解决方法:

  1. 我们先去修改并确认两个设置时区的文件正确( /etc/php.ini/etc/httpd/conf.d/zabbix.conf )
  2. 然后使用 systemctl stop httpd
  3. 在使用 systemctl start httpd
    问:为什么不用 systemctl restart httpd
    答:我试过,再去查看时间时,没变化;而分开输入立刻奏效。

总结

一日一钱,千日千钱