77. Zabbix------安装 | 配置 | 启动 | 测试
1.监控服务概念介绍知识
监控服务作用说明:
1: 对系统不间断实时监控 实现报警通知 邮件/微信/钉钉/短信/电话/
2: 实现反馈系统当前状态3. 保证服务可靠性安全性
监控网站方式方法:
1. 利用系统命令实现监控
CPU状态: w top htop glances
内存状态: free
硬盘状态: df iostat iotop
进程状态: top htop
网络状态: netstat iftop
....
2. 利用编写脚本实现监控
编写脚本 + 定时任务
1) 监控内存使用情况, 当内存低于100M需要进行报警通知 ?
2) 监控磁盘使用情况, 当磁盘低于500M需要进行报警通知 ?
3. 利用监控软件实现监控 面试
zabbix --- 实现网站监控服务 报警功能 出图功能 自动监控 网站监测 分布式监控
nagios --- 实现网站金控服务 报警功能 配置负载
cacti --- 实现网络流量信息监控 https://www.cacti.net/
Open-falcon --- 小米公司监控平台 http://www.open-falcon.com/
lepus 天兔 --- 数据库监控
Prometheus --- 监控docker k8s
企业实现监控思路:
构建监控环境: 根据公司情况采用多个维度进行监控平台搭建
1) 硬件监控: 设备监控(温度 风扇转速 运行时间) --- ipmitools 路由器 交换机 --- snmp
2) 系统监控: CPU 负载 内存 磁盘 网络 进程 TCP
3) 服务监控: nginx php tomcat redis memcache...
4) 网站监控: 请求时间 响应时间 加载时间 渲染时间
5) 日志监控: ELK(收集 存储 分析 展示) 日志易
6) 安全监控: Firewalld/iptables
4层 nginx+lua=waf DDos cc 漏洞注入攻击 撞库 ... 安全宝 牛盾云 安全狗
7) 网络监控: 网络访问效率 smokeping 监控宝 站长工具 奇云测 多个区域进行网络访问实现监控
8) 接口监控: api接口监控, api程序与程序之间对接接口; 监控API接口响应效率
9) 分布监控: 实现多个机房多个主机监控过程
10) 自动监控: 网络发现 自动注册
11) 业务监控: 活动产生多少流量 产生多少注册量 产生了多少销售额
1.1.zabbix介绍:
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
1. Zabbix架构
Zabbix Agent:Zabbix的客户端,负责 数据收集上传
Zabbix Server:Zabbix的服务端,负责数据汇总处理,告警策略,告警发送等
Zabbix Web:Zabbix的前端界面,提供友好的展示和操作界面,负责数据的展示、监控系统的配置管理、用户权限配置管理等功能
Database:配置数据存储的数据库,Zabbix支持多种数据库,包括MySQL、Oracle、DB2等
Java GateWay:Java网关,负责通过JVM监控收集Java应用性能数据
Zabbix Proxy:Zabbix代理,分布式部署架构会用到,主要是收集设备数据的监控数据并将数据发送给对应的Zabbix Server
数据通过Zabbix客户端收集并发送给Zabbix服务端,Zabbix服务端负责存储、分析数据、触发报警等任务。用户或者管理员可以通过Zabbix前端页面进行数据展示和配置管理。如果设备规模较多,并且分布在多地域或者多机房,都可以通过Zabbix Proxy实现分布式架构部署。
2.安装
版本说明:
官方有标准版和长期支持版,因为官方对于长期支持版本支持的时间相对会长很多,所以我们会选择长期支持版本。Zabbix的4.0版本为当前日期最新的长期支持版本,所以接下来就安装这个版本。如果使用源码包安装,可能有些包没有启用。后期想用,它是不支持额外添加模块的,只能重新编译安装一次。所以,此外建议使用二进制包来安装,官方已经把该需要的功能都编译好了。
2.1 安装repo源
# 安装zabbix的repo源(repo内还是官方的地址):
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
# 替换为清华源的地址:
[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo
:%s#repo.zabbix.com#mirror.tuna.tsinghua.edu.cn/zabbix#g
2.2 安装zabbix-server-mysql
[root@localhost ~]# yum install zabbix-server-mysql -y
2.3 安装zabbix-web-mysql
[root@localhost ~]# yum install zabbix-web-mysql -y
2.4 安装与配置数据库mariadb-server
# 安装mariadb-server
[root@localhost ~]# yum install mariadb-server -y
# 数据库安全初始化(在/etc/mysq.cnf的[mysqld]下添加skip-grant-tables,设置密码部分为n,其他为y)
[root@localhost ~]# mysql_secure_installation
# 创建数据库
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
# 数据库授权
MariaDB [(none)]> grant all on zabbix.* to zabbix@'%' identified by '123456';
MariaDB [(none)]> flush privileges;
# 查找zabbix的sql文件
[root@localhost ~]# rpm -ql zabbix-server-mysql
[root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.20/
[root@localhost zabbix-server-mysql-4.0.20]# ls
AUTHORS ChangeLog COPYING create.sql.gz NEWS README
#直接将sql初始化文件----->>>导入安装的数据库中:
zcat /usr/share/doc/zabbix-server-mysql-4.0.22/create.sql.gz | mysql -uzabbix -p123456 zabbix;
#查看数据库信息:
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_prototype |
| application_template |
| applications |
| auditlog |
...
# 设置开机自启
root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# systemctl is-enabled mariadb
enabled
3. 修改zabbix-server配置文件
# 需要补充下密码,打开DBHost
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
如果mysql也是在本机上面,但是不是通过yum安装的,而是通过二进制或者编译安装可能需要配置socket路径,否则可能连接不上mysql
# 过滤需要修改的配置文件,进行检查
[root@localhost ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
#########################
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
# 设置zabbix开机自启
[root@localhost ~]# systemctl enable zabbix-server
# 启动zabbix
[root@localhost ~]# systemctl start zabbix-server
# 检查是否正常启动,默认端口是10051
[root@localhost ~]# netstat -nlp|grep 10051
# 如果没有权限则关闭selinux
[root@localhost ~]# setenforce 0
# setenforce 0是临时关闭防火墙,这里是永久关闭
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 如果没有启动可以检查下启动日志
[root@localhost ~]# tailf /var/log/zabbix/zabbix_server.log
启动httpd
# 装好zabbix后就会在httpd的conf下就会多一个zabbix配置文件,启动httpd
oot@localhost ~]# systemctl start httpd
# 查看是否启动并用本地及其测试端口能否通
[root@localhost ~]# netstat -tunlp|grep 80
# 如果不通,关闭iptable防火墙
[root@localhost ~]# systemctl stop firewalld
4.访问测试
这个时候就可以通过本机访问这台服务器了:
修改时区
可以发现时区是未知的:
配置时区:
# 编辑时区默认是注释
[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
# 通过apache来调整php的参数,重启httpd服务
[root@localhost ~]# systemctl restart httpd
成功配置时区:
配置数据库连接
配置Zabbix Server
填写zabbix server的名字,这个名字将作为标题:
没有什么问题,下一步就可以:
直接Finish:
13. Zabbix登录
默认的用户名是:Admin,密码是:zabbix
正常登录则Zabbix安装成功:
**