目录
理论部分
1. 监控知识概述
(1)对系统不间断的实时监控
(2)实时反馈系统和服务状态
(3)保证系统和服务可靠、安全
(4)保证业务持续稳定运行
实时 反馈 可靠 安全
2. 怎么进行监控,比如:监控硬盘使用率
(1)查看磁盘使用率:df -hi
(2)分析磁盘:block、inode
(3)截取磁盘使用率: df -h | grep /$ |awk '{print $(NF-1)}' |awk -F% '{print $1}'
(4)设置触发器:>=80
3. 流行的监控工具
(1)cacti、nagios、zabbix
(2)lepus(天兔)数据库监控系统
(3)open-falcon 小米开源
(4)Prometheus普罗米修斯(docker k8s)
4. 新入职公司,如何入手监控
(1)硬件、路由器、交换机、防火墙
(2)系统监控:cpu 内存 磁盘 网络 进程 tcp(占比,乘以100除于总量)
(3)服务监控:nginx php tomcat redis memcache mysql
(4)web监控: 请求时间 响应时间 加载时间
(5)日志监控:ELK(收集、存储、分析、展示) 日志易
(6)业务监控:活动引入流量 产生的注册量 带来多少价值
5. 监控核心
(1)发现问题
(2)定位问题
(3)解决问题
(4)总结问题
6. 基础概念
什么是监控项、应用集、触发器?
监控项就是我们要使用zabbix监控主机什么内容,比如监控某台主机还剩余多少内存。
同一类型的监控项可按照作用的不同进行分类,比如将监控内存剩余量的多少和监控已经用了多少内存都放在内存这一类型里面,zabbix将这种种类称之为应用集。
我们只监控没有用呀,到达我们限定的某个值之后就要进行报警,这就要求我们定义触发器。触发器一定是在监控项的基础上进行定义的,比如当内存的用量超过百分之八十之后就要进行报警,百分之八十就是一个阈值,这个阈值要定义在触发器里面,一旦触发之后,就会执行动作进行报警。
7. 单机监控命令
(1)CPU:w top htop glances
(2)内存:free
避免:OOM,全称“Out Of Memory” 现象
(3)网络:ifconfig route glances iftop netstat
(4)硬盘:df iostat
实验部分
实验目标:搭建zabbix监控系统,实现监控linux服务器功能。部署后分离mariadb实现分离zabbix。
拓扑图如下:
安装zabbix
1. 安装zabbix源:
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm (阿里源)
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm (官方源)
rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm (国内清华源)
新版本:
https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
本案例使用rpm安装,如yum安装使用此命令:yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
2. 安装zabbix服务端软件
[root@zabbix_server ~]# rpm -ivh /media/zabbix-server/* --nodeps --force
[root@zabbix_server ~]# modprobe ipmi_devintf //rpm安装缺少模块,加载两项模块
[root@zabbix_server ~]# modprobe ipmi_msghandler
3. 启动数据库,建立数据库及用户
[root@zabbix_server ~]# systemctl start mariadb
[root@zabbix_server ~]# systemctl enable mariadb
[root@zabbix_server ~]# mysqladmin -uroot password
[root@zabbix_server ~]# mysql -uroot -p123
//省略部分内容
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
导入zabbix初始化数据
[root@zabbix_server ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.22/create.sql.gz |mysql -uzabbix -pzabbix zabbix
4. 修改zabbix配置文件
[root@zabbix_server ~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix //修改此行,删除注释添加数据库密码
[root@zabbix_server ~]# systemctl start zabbix-server
[root@zabbix_server ~]# systemctl enable zabbix-server
5. 修改时区
修改配置文件,定位到20行修改为上海。
[root@zabbix_server ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
[root@zabbix_server ~]# systemctl restart httpd
[root@zabbix_server ~]# systemctl enable httpd
部署zabbix
通过浏览器访问http://192.168.1.5/zabbix ,部署zabbix点击"Next step"下一步,确认当前页ok再次点击"Next step"下一步,输入数据库用户密码后,全部点击下一步即可到达登录界面。默认用户:Admin,密码:zabbix。
登录后即可查看监控首页。
配置zabbix
1. 修改语言
首次安装的zabbix一般为英文,下面将修改为中文界面。
再次查看后就成为中文首页了。
2. 监控linux端
(1)再次打开一台linux服务器,测试zabbix监控。
yum安装方式:
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
本次使用rpm安装
[root@node1 ~]# rpm -ivh /media/zabbix-server/zabbix-agent-4.0.22-1.el7.x86_64.rpm --nodeps --force
[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.5 //找到Server字段,指向zabbix服务器。
[root@node1 ~]# systemctl start zabbix-agent
[root@node1 ~]# systemctl enable zabbix-agent
(2)web页面配置
配置→主机→创建主机→指定主机名称→指定群组→代理服务器IP(被监控端IP)→添加。
完成后即可看到添加的主机,但是此时还需要添加模板用来识别主机类型等。
点击配置→主机→模板→添加模板→添加(小字体)→更新。
经过上方配置已经可以看到主机的可用性ZBX为启用状态。
(3)修改中文乱码
点击监测→图形→选择群组→主机→监控类型,就可以看到当前被监控端的信息,但是可以看到下方数据有乱码现象,需要在zabbix服务器安装字体包。
[root@zabbix_server ~]# yum -y install wqy-microhei-fonts
[root@zabbix_server ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
选择覆盖原字体。
现在登录zabbix的web页面将正常显示中文字体。
分离zabbix
通过上面的配置已经完成了zabbix的基本配置,但是生产环境中常常会把zabbix单独装一个服务器中监控成千上万台设备,下面将进行zabbix的分离操作。
1. 打开一台服务器安装mariadb。
[root@zabbix_mariadb ~]# yum -y install mariadb-server
[root@zabbix_mariadb ~]# systemctl start mariadb
[root@zabbix_mariadb ~]# systemctl enable mariadb
[root@zabbix_mariadb ~]# mysqladmin -uroot password
New password:
Confirm new password:
[root@zabbix_mariadb ~]# mysql -uroot -p123
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@'%' identified by '123.com';
Query OK, 0 rows affected (0.00 sec)
2. 主服务器上备份数据库内容,并发送到1.7服务器。
[root@zabbix_server ~]# mysqldump -uroot -p123 --databases zabbix > zabbix.sql
[root@zabbix_server ~]# cat zabbix.sql | mysql -h 192.168.1.7 -uzabbix -p123.com zabbix
3. 修改zabbix-server上的数据库连接信息
[root@zabbix_server ~]# vim /etc/zabbix/zabbix_server.conf
下面信息修改数据库IP和数据库密码即可。
DBHost=192.168.1.7
DBName=zabbix
DBUser=zabbix
DBPassword=123.com
[root@zabbix_server ~]# vim /etc/zabbix/web/zabbix.conf.php
下面信息修改数据库IP和数据库密码即可。
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '192.168.1.7';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = '123.com';
[root@zabbix_server ~]# systemctl restart zabbix-server httpd
重启服务访后问web页面,正常访问。