赞
踩
目录
(4)编辑文件 /etc/yum.repos.d/zabbix.repo
(8)导入数据库架构后禁用log_bin_trust_function_creators选项
服务器系统安装完成,部署完所需的服务之后,随着数据量、访问量的增大,随之带来的就是故障问题,为了快速有效、及时的发现问题,并第一时间得到报警信息,就引入了监控服务。对主机的监控、对系统的监控、对服务的监控,都是生产环境的日常需求。
监控CPU整体使用情况:用户态与内核态、空闲率等
监控单个CPU的使用情况
监控磁盘容量:分区使用量(已用和可用)
监控磁盘IO
监控磁盘的数据读写
监控内存使用量(可用、已用)
监控内网卡出入流量
监控外网卡出入流量
监控TCP状态
监控系统进程状态
监控系统服务进程开销
监控应用的进程状态
监控应用的端口状态
监控一些个性化的需求
监控网络设备:路由器、交换机、网关设备等
监控服务器状态
安全监控在生产环境中用的比较多,一般会使用第三方监控产品,主要监控内容:
在一些复杂、大型的系统中,API的调用非常频繁,因此对API接口的监控非常重要,重点是监控其GET、POST、PUT等请求的相关指标,主要监控内容如下:
对于一些电商平台,业务监控是重中之重。
Zabbix由Alexei Vladishev 创建,目前由Zabbix SIA开发与维护。
Zabbix的功能非常强大,能保证服务器系统安全、稳定的运行。Zabbix提供灵活的报警机制,可以使系统管理员能够及时得知故障,并快速定位。Zabbix还可以提供友好的数据可视化功能,使你关心的数据和指标一目了然。
Zabbix 由两部分组成:Zabbix Server 与可选组件 Zabbix Agent。
具有可用性和性能检查功能
支持SNMP(捕获和轮询)
可以存储历史数据
可以存储配置数据
可以存储监控数据
用户可以非常灵活的定义监控阈值,Zabbix 也成为触发器。
如短信、微信、邮件报警。
使用自带的图形工具,实时展示被监控的项目
具有多种Web可视化功能选择
Zabbix 监控系统运行的大概流程如下。
Zabbix Agent 安装在被监控的主机上,负责收集需要的各项数据,并将数据发送到Zabbix Server端,Zabbix Server 将传递过来的数据存储到数据库中,Zabbix Web端根据数据来展示和绘图。
将安装包放在 /download 目录下:
- #解压
- [root@zy-host download]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
-
- #改名
- [root@zy-host local]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql
-
- #创建用户组
- [root@zy-host local]# groupadd mysql
- [root@zy-host local]# useradd -g mysql mysql
-
- #创建data目录
- [root@zy-host msyql]# mkdir data
-
- #修改用户组权限
- [root@zy-host local]# chown -R mysql:mysql ./
-
- #创建my.cnf文件
- [root@zy-host local]# touch /etc/my.cnf
-
- #写入内容
- [root@zy-host local]# vim /etc/my.cnf
- [root@zy-host local]# cat /etc/my.cnf
- [mysql]
- # 设置mysql客户端默认字符集
- default-character-set=utf8
- socket=/var/lib/mysql/mysql.sock
- [mysqld]
- skip-name-resolve
- #设置3306端⼝
- port = 3306
- socket=/var/lib/mysql/mysql.sock
- # 设置mysql的安装⽬录
- basedir=/usr/local/mysql
- # 设置mysql数据库的数据的存放⽬录
- datadir=/usr/local/mysql/data
- # 允许最⼤连接数
- max_connections=200
- # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
- character-set-server=utf8
- # 创建新表时将使⽤的默认存储引擎
- default-storage-engine=INNODB
- lower_case_table_names=1
- max_allowed_packet=16M
-
- #创建目录 修改权限
- [root@zy-host local]# mkdir /var/lib/mysql
- [root@zy-host local]# chmod 777 /var/lib/mysql
-
- #正式安装
- [root@zy-host mysql]# cd /usr/local/mysql/
- [root@zy-host mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --
- 2023-01-10T05:14:37.706178Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
- 2023-01-10T05:14:38.817683Z 0 [Warning] InnoDB: New log files created, LSN=45790
- 2023-01-10T05:14:38.940767Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
- 2023-01-10T05:14:39.013507Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ae825853-90a5-11ed-aee7-00163e0a8efb.
- 2023-01-10T05:14:39.026483Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
- 2023-01-10T05:14:39.026961Z 1 [Note] A temporary password is generated for root@localhost: aq4BxwQUat/C
-
- #复制启动脚本到资源目录
- [root@zy-host mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
-
- #修改mysqld内容 修改其 basedir 和 datadir 为实际对应⽬录
- [root@zy-host mysql]# vim /etc/init.d/mysqld
- basedir=/usr/local/mysql
- datadir=/usr/local/mysql/data
-
- #⾸先增加 mysqld 服务控制脚本执⾏权限
- [root@zy-host mysql]# chmod +x /etc/init.d/mysqld
-
- #同时将 mysqld 服务加⼊到系统服务
- [root@zy-host mysql]# chkconfig --add mysqld
-
- #最后检查 mysqld 服务是否已经⽣效
- [root@zy-host mysql]# chkconfig --list mysqld
-
- Note: This output shows SysV services only and does not include native
- systemd services. SysV configuration data might be overridden by native
- systemd configuration.
-
- If you want to list systemd services use 'systemctl list-unit-files'.
- To see services enabled on particular target use
- 'systemctl list-dependencies [target]'.
-
- mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
-
-
- #启动服务 如果启动不起来 检查是否有已经启动的
- [root@zy-host mysql]# service mysqld start
- Starting MySQL. SUCCESS!
-
- #加入环境变量 (最后一行)
- [root@zy-host mysql]# vim ~/.bash_profile
- [root@zy-host mysql]# cat ~/.bash_profile
- # .bash_profile
-
- # Get the aliases and functions
- if [ -f ~/.bashrc ]; then
- . ~/.bashrc
- fi
-
- # User specific environment and startup programs
-
- PATH=$PATH:$HOME/bin
-
- export PATH
- export PATH=$PATH:/usr/local/mysql/bin
-
- #刷新文件
- [root@zy-host mysql]# source ~/.bash_profile
-
- #登录MySQL
- [root@zy-host mysql]# mysql -u root -p
-
- #修改密码
- mysql> alter user user() identified by "123456";
- mysql> flush privileges;
-
- [root@zy-host ~]# mysql -V
- mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
[root@zy-host ~]# yum install httpd -y
[root@zy-host ~]# yum install php -y
官方文档:下载并安装 Zabbix 5.0 LTS for CentOS 7、MySQL、Apache
- [root@zy-host ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
- [root@zy-host ~]# yum clean all
[root@zy-host ~]# yum install zabbix-server-mysql zabbix-agent
[root@zy-host ~]# yum install centos-release-scl
[root@zy-host ~]# vim /etc/yum.repos.d/zabbix.repo
[root@zy-host ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
- #建库,创建用户并分配权限,刷新权限
- # mysql -uroot -p
- mysql> create database zabbix character set utf8 collate utf8_bin;
- mysql> create user zabbix@localhost identified by 'Zabbix';
- mysql> grant all privileges on zabbix.* to zabbix@localhost;
- mysql> set global log_bin_trust_function_creators = 1;
- mysql> quit;
[root@zy-host ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
可以看到表已经导入进去:
- # mysql -uroot -p
- mysql> set global log_bin_trust_function_creators = 0;
- mysql> quit;
编辑文件 /etc/zabbix/zabbix_server.conf,在最后一行加入:
DBPassword=password
编辑文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 取消注释并为您设置正确的时区
- [root@zy-host ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
- [root@zy-host ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
1. 打开浏览器,访问 http://服务器IP/zabbix 即可进入安装界面:
2. 点击下一步,进入依赖组件检测界面:
3. 检测完成后,点击下一步, 进入数据库信息填写界面:
注意1:
这里如果提示连接不上,是因为没有在mysql里开启远程主机登录:
需要进入数据库执行以下命令:
- mysql> use mysql;
- mysql> update user set user.Host='%' where user.User='zabbix';
- mysql> flush privileges;
注意2:
如果提示错误:The Zabbix database version does not match current requirements. Your database version: 5020000.
进入数据库,执行以下命令:
- mysql> use zabbix;
- mysql> update dbversion set mandatory=4000000;
- mysql> flush privileges;
4. 填写完之后,继续点击下一步,进入Zibbix Server配置界面:
5. 点击下一步,进入安装配置汇总界面:
6. 点击下一步,进入安装界面
7. 点击完成按钮,进入 Zibbx Web 登录界面:
默认用户为 Admin,密码为 zabbix。
将界面改为中文:
至此,整个安装过程结束。
Zabbix Server负责接收Agent发送的数据及报告信息,并负责组织所有的配置、统计数据、操作数据。
Database Storage用于存储所有的配置信息以及收集的数据信息。
Web interface 是Zabbix GUI的接口
Agent 安装部署在被监控的主机上,负责接收被监控主机的数据,并发往 Zabbix Server端或Proxy端。
Proxy是一个可选组件,用在分布式监控环境中,负责代理Zabbix Server收集被监控主机的相关监控数据,并统一发往 Zabbix Server端。
主机是指被监控的网络设备,可以是设备的IP地址,也可以是设备的主机名。
主机组是主机的逻辑容器,包含主机和模板,但在同一个组内的主机和模板之间不能互链接,主机组通常用于给指定用户或用户组分配指定监控权限。
监控项是一个指定监控指标的相关数据,这些数据来自于被监控的对象。监控项是Zabbix进行数据收集的核心组件,对于特定的某个监控对象来讲,每个监控项都由“key”标识。
触发器是一个表达式,用于评估被监控对象指定的item内接收到的数据是否在指定的合理范围内,也就是阈值。当接受的数据值大于指定阈值时,触发器的状态将从 OK 变为 Problem。当数据恢复到合理范围,状态又会变回 OK。
Agent宕机,重新上线,自动注册,触发器状态改变,都属于事件。
动作时对于指定的事件预先定义的处理方法,例如,发送通知或报警邮件。
媒介是发送通知或报警信息的介质,如短信、微信、邮件。
模板是用于快速配置被监控主机的预设条目的集合,通常包括 item、trigger、graph、screen等。
通知是通过指定的媒介向用户发送相关的事件的信息。
报警升级是指发送报警或执行远程命令的自定义文案,例如,每隔30秒发送一次报警信息,一共发送5次。
远程命令是自定义的命令,在被监控的主机处于某个特定的条件时执行此命令。
- [root@node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
- [root@node1 ~]# yum clean all
- [root@node1 ~]# yum install zabbix-agent -y
在文件末尾添加以下内容
- [root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
- Server=39.107.232.89 #Zabbix服务端IP
- ServerActive=39.107.232.89 #Zabbix服务端IP
- Hostname=node1 #客户端主机名
[root@node1 ~]# systemctl start zabbix-agent
登录Web端页面,点击 配置-主机-创建主机:
填写要监控的主机信息后点击添加:
在Web端界面选择 检测——聚合图形,进入创建图形初始界面:
点击创建聚合图形:
点击右上角创建聚合图形:
创建好如图所示:
- [root@zy-host ~]# yum -y install wqy-microhei-fonts
- [root@zy-host ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
可以看到乱码问题已解决:
需求:限制登录人数不超过3个,超过3个就发出报警信息。
1)服务端安装 zabbix-get
- #安装zabbix-get,用于服务端查看客户端信息
- [root@zy-host ~]# yum install zabbix-get -y
2)自定义key需要执行的 linux 命令:
该命令含义是:查看登录当前主机的用户有几个
- #查看当前有谁登录了这台主机
- [root@node1 ~]# who
- root pts/0 2023-01-11 10:08 (116.179.246.116)
- root pts/1 2023-01-11 10:39 (116.179.246.116)
- #查看登录这台主机的人数
- [root@node1 ~]# who | wc -l
- 2
3)在node1主机上创建自定义key
- [root@node1 ~]# cd /etc/zabbix/zabbix_agentd.d/
-
- #在配置文件中创建自定义key为 login.user
- [root@node1 zabbix_agentd.d]# vim user_login.conf
- UserParameter=login.user,who | wc -l
-
- #重启agent服务
- [root@node1 zabbix_agentd.d]# systemctl restart zabbix-agent
4)在服务端检查key是否可用
- [root@zy-host ~]# zabbix_get -s '47.104.160.180' -p 10050 -k 'login.user'
- 3
分为以下几步:
1)创建模板
找到创建的模板
2)创建应用集(就像是文件夹,里面放入一堆监控项)
3)创建监控项,自定义 item
4)创建触发器
当监控项获取到值时,和触发器比较,判断是否报警
5)创建图形展示
6)将具体主机与该模板关联
这里将node1主机与该模板关联
7)查看图形
查看node1主机的图形:
8)触发报警
在node1主机上登录4个用户,查看仪表板是否报警
可以看到在仪表盘以及出现提示:
1)登录网易邮箱获取授权码
2)添加报警媒介类型
3)点击用户设置,添加报警媒介
4)启用动作:
这样一来,如果有问题,就会触发这个动作,给管理员发送邮件。
Zabbix server主动的去发现所有的客户端,然后将客户端的信息登记在服务端的机器上。缺点时 server 端压力比较大。
Zabbix agent 主动上报自己的信息,发给 zabbix-server。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。