当前位置: 首页 > news >正文

分布式监控系统——Zabbix(2)部署

文章目录

  • 分布式监控系统——Zabbix部署
    • 一、实验准备
    • 二、zabbix-server安装
      • 1.更新yum仓库(所有节点)
      • 2.安装zabbix、httpd、php-fpm(server)
      • 3.安装MariaDB(server)
      • 4.配置server端
        • ①zabbix日志
        • ②日志的滚动
        • ③日志的级别
        • ④数据库相关的设置
        • ⑤启动服务
      • 5.配置web GUI
        • ①查找web GUI的配置文件
        • ②编辑配置文件
        • ③重启httpd并验证
      • 6.初始化Zabbix设置
    • 三、zabbix-agent安装
    • 四、监控过程详解
      • 1.修改密码及语言
      • 2.创建主机及主机群组
      • 3.监控项
      • 4.中文乱码解决方法

分布式监控系统——Zabbix部署

一、实验准备

centos 7.5系统服务器3台,一台作为监控服务器,两台作为被监控节点,配置好yum源,防火墙关闭,各节点时钟服务同步,各节点之间可以通过主机名相互通信。

主机名IP角色
server192.168.222.20zabbix server
node1192.168.222.30zabbix agent
node2192.168.222.40zabbix agent
[root@server ~]# echo -e "192.168.222.20 server\n192.168.222.30 node1\n192.168.222.40 node2">>/etc/hosts
[root@server ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.222.20 server
192.168.222.30 node1
192.168.222.40 node2

二、zabbix-server安装

1.更新yum仓库(所有节点)

登录阿里云仓库:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 找到zabbix下载源:https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

[root@server ~]# wget https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[root@server ~]# rpm -ivh zabbix-release-4.4-1.el7.noarch.rpm

2.安装zabbix、httpd、php-fpm(server)

[root@server ~]# yum -y install epel-release.noarch
[root@server ~]# yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql httpd php-fpm
或(官方)
[root@server ~]# yum-config-manager --enable rhe-7-server-optionl-rpms
#修改apache配置文件让apache支持php
vim
……
DirectoryIndex index.html index.php		#164行添加index.php
……
AddType application/x-httpd-php .php	#285行下添加以下两行
AddType application/x-httpd-php-source .phps
……

#验证php页面
#添加index.php文件
[root@server httpd]# cd /var/www/html/
[root@server html]# vim index.php
<?php
phpinfo();
?>
[root@server html]# systemctl restart php-fpm.service httpd

3.安装MariaDB(server)

[root@server ~]# yum install -y mariadb-server mariadb
[root@server ~]# vim /etc/my.cnf.d/server.cnf 
……
[mysqld]
添加以下
skip_name_resolve = ON			#跳过主机名解析
innodb_file_per_table = ON		#开启独立表空间
innodb_buffer_pool_size = 256M	#缓存池大小
max_connections = 2000			#最大连接数
log-bin = master-log			#开启二进制日志
character-set-server = utf8		#中文字符集
collation-server = utf8_general_ci
skip-character-set-client-handshake
#重启数据库服务
[root@server ~]# systemctl restart mariadb.service
#初始化Mariadb
[root@server ~]# mysql_secure_installation

#创建数据库并授权账号
#创建zabbix数据库
MariaDB [(none)]> create database zabbix character set 'utf8';		
#注意授权网段
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'192.168.222.%' identified by 'keer';
刷新授权
MariaDB [(none)]> flush privileges;		
#导入zabbix服务表
#查看zabbix-server-mysql这个包提供了什么
[root@server ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server
/etc/zabbix/zabbix_server.conf
/usr/lib/systemd/system/zabbix-server.service
/usr/lib/tmpfiles.d/zabbix-server.conf
/usr/lib/zabbix/alertscripts
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql
/usr/share/doc/zabbix-server-mysql-4.4.10
/usr/share/doc/zabbix-server-mysql-4.4.10/AUTHORS
/usr/share/doc/zabbix-server-mysql-4.4.10/COPYING
/usr/share/doc/zabbix-server-mysql-4.4.10/ChangeLog
/usr/share/doc/zabbix-server-mysql-4.4.10/NEWS
/usr/share/doc/zabbix-server-mysql-4.4.10/README
/usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz		#生成表的各种脚本
/usr/share/man/man8/zabbix_server.8.gz
/var/log/zabbix
/var/run/zabbix

#使用create.sql.gz生成所需要的表
[root@server ~]# gzip -d /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz
[root@server ~]# ls /usr/share/doc/zabbix-server-mysql-4.4.10/
AUTHORS  ChangeLog  COPYING  create.sql  NEWS  README
[root@server ~]# head /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql 		#查看表头
CREATE TABLE `users` (
	`userid`                 bigint unsigned                           NOT NULL,
	`alias`                  varchar(100)    DEFAULT ''                NOT NULL,
	`name`                   varchar(100)    DEFAULT ''                NOT NULL,
	`surname`                varchar(100)    DEFAULT ''                NOT NULL,
	`passwd`                 varchar(32)     DEFAULT ''                NOT NULL,
	`url`                    varchar(255)    DEFAULT ''                NOT NULL,
	`autologin`              integer         DEFAULT '0'               NOT NULL,
	`autologout`             varchar(32)     DEFAULT '15m'             NOT NULL,
	`lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,

#查看表头发现没有创建数据库的命令,这正是手动创建数据库的原因,把所需表导入数据库即可:
[root@server ~]# mysql -uzabbix -h192.168.222.20 -pkeer -e 'create database zabbix charset utf8 collate utf8_bin;'
[root@server ~]# mysql -uzabbix -h192.168.222.20 -pkeer zabbix < /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql
#导入之后查看一下
[root@server ~]# mysql -uzabbix -h192.168.222.20 -pkeer
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 5.5.68-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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zabbix             |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> show tables;

可以看出来已经导入成功了。

4.配置server端

当数据库准备好了之后,需要去修改server端的配置文件

[root@server ~]# cd /etc/zabbix/
[root@server zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[root@server zabbix]# vim zabbix_server.conf

image-20220926162548633

①zabbix日志

默认用文件记录,也可以发送给我们的rsyslog日志记录系统,如果我们选择默认,则日志存放在LogFile=/var/log/zabbix/zabbix_server.log中,也可以自己设置。

②日志的滚动

默认值为1,表示滚动。0则表示不滚动。当数据特别多的时候,我们也可以设置为1,然后在Maximum size of log file in MB.设置当数据文件最大到多少时会自动滚动。

③日志的级别

一共有6个级别,我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,5表示输出最详细的信息,默认值为3,设置为3的话就表示,0、1、2、3四个级别都显示。考虑到生产系统中的压力时,这里的信息如果没有必要的话,越简单越好,只要在出错的时候,我们可以依据其进行排障即可。

④数据库相关的设置

DBHost=192.168.222.20           #91行,取消注释,修改IP
DBName=zabbix                   #100行
DBUser=zabbix                   #116行
DBPassword=keer             	#124行,取消注释,zabbix数据库的密码
DBPort=3306						#139行,取消注释
DBSocket=/var/lib/mysql/mysql.sock	#131行,添加

补充:

  1. 使用grep -i "^####" zabbix_server.conf来查看配置文件中有哪些大段。
  2. 使用grep -i "^####" zabbix_server.conf来查看配置文件中每一段中的配置项有哪些

⑤启动服务

[root@server zabbix]# systemctl start zabbix-server.service
[root@server my.cnf.d]# ss -nult|grep 10051
tcp    LISTEN     0      128       *:10051                 *:*                  
tcp    LISTEN     0      128      :::10051                :::*     

5.配置web GUI

①查找web GUI的配置文件

[root@server my.cnf.d]# rpm -ql zabbix-web |less
…………
/etc/httpd/conf.d/zabbix.conf		#配置文件
/etc/zabbix/web
/etc/zabbix/web/maintenance.inc.php
/etc/zabbix/web/zabbix.conf.php
/usr/share/doc/zabbix-web-4.4.10
/usr/share/doc/zabbix-web-4.4.10/AUTHORS
/usr/share/doc/zabbix-web-4.4.10/COPYING
/usr/share/doc/zabbix-web-4.4.10/ChangeLog
/usr/share/doc/zabbix-web-4.4.10/NEWS
/usr/share/doc/zabbix-web-4.4.10/README
/usr/share/zabbix
/usr/share/zabbix/actionconf.php
……

②编辑配置文件

/etc/httpd/conf.d/zabbix.conf文件,这个配置文件就是做映射的文件。

Alias /zabbix /usr/share/zabbix		#访问的时候要在主机后面加上/zabbix来访问服务

注意:时区是一定要设置的,这里被注释掉是因为,在例如php的配置文件中设置时区,则对所有的php服务均有效,如果在zabbix.conf中设置时区,则仅对zabbix服务有效。所以,在php配置文件中设置时区。

[root@server etc]# vim php.ini
……
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone =Asia/Shanghai		#878行,取消注释,添加时区
……

③重启httpd并验证

[root@server html]# systemctl restart httpd zabbix-server

浏览器输入:192.168.222.20/zabbix

6.初始化Zabbix设置

第一次访问需要进行一些初始化的设置,按照提示操作:

成功进入仪表盘

三、zabbix-agent安装

在被监控的主机安装好agetn,设置好server,并添加到server端,将其纳入监控系统中。

#安装zabbix安装源
[root@node1 ~]# wget https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
[root@node1 ~]# rpm -ivh zabbix-release-4.4-1.el7.noarch.rpm
[root@node1 ~]# yum -y install epel-release.noarch zabbix-agent zabbix-sender

#修改配置文件
[root@node1 ~]# cd /etc/zabbix/
PidFile=/var/run/zabbix/zabbix_agentd.pid   #13行
LogFile=/var/log/zabbix/zabbix_agentd.log   #32行
LogFileSize=0                               #43行
Server=192.168.222.20						#98行修改,指向监控服务器
ServerActive=192.168.222.20 				#139行修改,指向监控服务器
Hostname=node1                			    #150行,指定名称
Include=/etc/zabbix/zabbix_agentd.d/*.conf  #290行

#开启服务
[root@node1 zabbix]# systemctl enable --now zabbix-agent

开启成功就可以去server端添加主机了,其他主机进行同样的操作,唯一不同的就是配置文件中的Hostname要设为对应主机名。

四、监控过程详解

1.修改密码及语言

2.创建主机及主机群组

定义一个主机群组

添加主机

3.监控项

点击node1的监控项,即可创建监控项,首先,创建三个应用集。

应用及一般配合监控项使用,是多个同类型的监控项的分类目录。

定义监控项

任何一个被监控项,如果想要能够被监控,一定要在zabbix-server端定义了能够连接至zabbix-agent端,并且能够通过命令获取信息。或者再agent端定义了能够让server端获取命令。一般都是内建的命令,都对应的有其名字,称为key。

关于key值,可以直接在网页上设置(服务器自动执行),也可以使用命令行命令(手动执行)来获取:

zabbix-get -s 192.168.222.30 -p10050 -k “system.cpu.intr”

在agent端也可以使用命令来查看intr的速率变化:

添加后即可使用:

4.中文乱码解决方法

zabbix检控页面中文显示异常,具体显示为方块:

查找zabbix安装目录找到字体具体位置

#查找zabbix安装位置
[root@server zabbix-server-mysql-4.4.10]# whereis zabbix
zabbix: /usr/lib/zabbix /etc/zabbix /usr/share/zabbix
[root@server zabbix-server-mysql-4.4.10]# ls /usr/share/zabbix/
#字体文件位置
/usr/share/zabbix/assets/fonts/graphfont.ttf

采用winscp/xftp等工具将windows中文字体上传到该目录下。

切换至/etc/alternatives/目录查看软连接

删除就软连接并新建。也可以修改为其他中文字体。

删除旧链接
[root@server alternatives]# rm -f zabbix-web-font
新建软链接
[root@server alternatives]# ln -s /usr/share/zabbix/assets/fonts/SIMSUN.TTC /etc/alternatives/zabbix-web-font
#重启zabbix服务
[root@server alternatives]# systemctl restart zabbix-server.service

刷新页面:

END

相关文章:

  • 机械学习房价预测实战(mse 回归 交叉验证)
  • 未来5年,这个职业最有可能被BI软件替代,网友:现在跑还来得及
  • 【热力学】基于Matlab模拟生成热晕
  • 『Halcon与C#混合编程』第二章02_迈德威视工业相机SDK图像变量转换
  • NASA成功撞击1100公里外小行星!人类史上首次,主动避免恐龙覆辙,马斯克亦有贡献...
  • PHP Iterable 可迭代对象
  • 5. Hadoop集群操作
  • 数据库安装与配置
  • Lua 在终端使用交互模式
  • TCS34725颜色感应识别模块
  • python学习笔记:基础语法
  • 面试~Synchronized 与 锁升级
  • 【C++学习】C++入门知识(下)
  • 【23秋招c++后端面试技术突围】TCP/IP 之 滑动窗口、Nagle算法和延迟确认
  • .Net Redis的秒杀Dome和异步执行
  • ➹使用webpack配置多页面应用(MPA)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • CentOS6 编译安装 redis-3.2.3
  • emacs初体验
  • ES6核心特性
  • iOS | NSProxy
  • js算法-归并排序(merge_sort)
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • PhantomJS 安装
  • Unix命令
  • webpack4 一点通
  • 爱情 北京女病人
  • 观察者模式实现非直接耦合
  • 你不可错过的前端面试题(一)
  • 前端_面试
  • 项目管理碎碎念系列之一:干系人管理
  • 中文输入法与React文本输入框的问题与解决方案
  • ​Python 3 新特性:类型注解
  • # 数据结构
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $$$$GB2312-80区位编码表$$$$
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (八)c52学习之旅-中断实验
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (译)2019年前端性能优化清单 — 下篇
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net MySql
  • .NET/C# 使用反射注册事件
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .ui文件相关
  • ::
  • ::什么意思
  • :如何用SQL脚本保存存储过程返回的结果集