# 一、监控的理解
## 1. 监控对象
(1)监控对象的理解:我们要监控谁?假设我们要监控CPU,那么CPU我们就必须知道他是怎么工作,必须了解它的工作原理。
(2)监控对象的指标:我们监控CPU的那些参数?例如我们可以监控CPU的使用率、CPU负载 、CPU个数。
(3)确定性能基准线:怎么才算故障?CPU负载多少才算高?我们要制定一个标准来评判故障,这个标准要根据服务器跑的不同业务来制定。
## 2. 监控范围
### (1)硬件监控
通常情况下对硬件的监控我们一般会使用IPMI工具加之人工的机房巡检。不同的服务器也有各自的远程控制卡
例如:
DELL服务器:iDRAC
HP服务器:ILO
IBM服务器:IMM
linux就可以使用IPMI BMC控制器
ipmitool工具的使用需要硬件支持,操作系统通常为Linux
在Linux下安装:
yum -y install OpenIPMI ipmitool
使用IPMI有两种方式:
- 本地调用
- 远程调用 ip地址
路由器和交换机通常使用SNMP监控,Linux也支持SNMP监控,开启SNMP监控通常需要安装如下几个rpm包
yum -y install net-snmp net-snmp-utils
### (2)操作系统监控
对与操作系统我们通常会监控CPU、内存、IO 进程(网络、磁盘)
监控的基准:
- 确定服务类型:IO密集型、数据库、cpu密集型、web mail
- 确定性能基准线:运行队列数、cpu使用率、上下文切换
最常用的监控命令:`top`、`vmstat`、`mpstat`
top命令的两个参数
P:cpu使用率排序
M:内存使用率排序
CPU三个重要的概念:
- 上下文切换:cpu调度器实施的进程切换过程,上下文切换
- 运行队列(负载)
- 使用率
查看内存使用率的命令:`free` `vmtstat`
对于内存我们要知晓页的大小(通常情况是4KB),关心内存如何寻址和所剩空间
硬盘我们常用 `iotop`(了解`dd`命令)、`iostat`来测试其性能,当然对于硬盘我们首要关心的是它的顺序IO和随机IO
查看网络的性能通常使用`iftop`命令,测试网络IO推荐使用IBM的测试工具:nmon(二进制文件)
### (3)应用服务监控
这里举例监控nginx
安装nginx:
yum -y install gcc glibc gcc--c++ pcre-devel openssl-devel #安装必要rpm包
cd /usr/local/src
wget http://nginx.org/download/nginx-1.15.2.tar.gz
tar zxvf nginx-1.15.2.tar.gz
# configure shell脚本,执行它生成makefile
useradd -s /sbin/nologin -M www #创建nginx用户
./configure --prefix=/usr/local/nginx-1.15.2 \
--user=www --group=www \
--with-http_ssl_module \
--with-http_stub_status_module
make && make install
ln -s /usr/local/nginx-1.15.2 /usr/local/nginx #创建软连接
修改配置文件:
vim /usr/local/nginx/conf/nginx.conf
在配置文件添加
```
location /nginx-status {
stub_status on;
access_log off;
allow all;
}
```
![7-1](http://pded8ke3e.bkt.clouddn.com/7-1.png)
启动nginx:
/usr/local/nginx/sbin/nginx -t #检查配置文件
/usr/local/nginx/sbin/nginx #启动nginx
监控的效果:
```
[root@host-10-197-22-14 ~]# curl -s http://10.197.22.14:8080/nginx-status
Active connections: 1
server accepts handled requests
1152438 1152438 1152488
Reading: 0 Writing: 1 Waiting: 0
```
### (4)业务监控
我所处岗位暂不涉及监控业务的内容,所以这里就简单扯一下。
监控业务我的理解是我们要知道那个时间端我们网站什么的访问量最大、用户在线最大、请求最频繁,那个时间端最空闲。在业务繁忙的时间端我们要如何确保业务正常这是我们运维要思考的问题。
如何做好监控?要做那些监控?这里我按照我工作中所遇到的场景进行简单的介绍!
- 献给我的朋友们
- 一、个人对学习的看法
- 二、运维技能图谱
- 三、运维常用技能
- 3.1 Vim(最好用的编辑器)
- 3.2 Nginx & Tengine(Web服务)
- 1. Nginx介绍和部署
- 2. Nginx配置解析
- 3. Nginx常用模块
- 4. Nginx 的session 一致性问题
- 3.3 Tomcat(Web中间件)
- 3.4 Keepalived(负载均衡高可用)
- 3.5 Memcache(分布式缓存)
- 3.6 Zookeeper(分布式协调系统)
- 3.7 KVM(开源虚拟化)
- 1. 虚拟化介绍
- 2. KVM基础
- 3. 设置VNC和时间同步
- 4. kvm虚拟机快照备份
- 5. kvm虚拟机在线扩展磁盘
- 6. kvm虚拟机静态迁移
- 7. kvm虚拟机动态迁移
- 8. kvm虚拟机存储池配置
- 9. cpu添加虚拟化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安装与汉化
- 3.9 Jenkins(运维自动化)
- 3.10 WAF(Web防火墙)
- 3.10.1初探WAF
- 四、常用数据库
- 4.1 MySQL(关系型数据库)
- 1. MySQL源码安装
- 4.2 Mongodb(适用与大数据分析的数据库)
- 4.3 Redis(非关系数据库)
- 五、自动化运维工具
- 5.1 Cobbler(系统自动化部署)
- 5.2 Ansible(自动化部署)
- 5.3 Puppet(自动化部署)
- 5.4 SaltStack(自动化运维)
- 六、存储
- 6.1 GFS(文件型存储)
- 6.2 Ceph(后端存储)
- 七、运维监控工具
- 7.1 对监控的理解
- 7.2 Zabbix(运维监控)
- 7.2.1 Zabbix简介
- 7.2.2 Zabbix服务部署
- 1. Zabbix服务端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix监控服务
- 1. 监控网络设备
- 2. 自定义Nginx监控
- 7.3 云镜(安全监控)
- 7.4 ELK(日志收集展示)
- 八、运维云平台
- 8.1 OpenStack(开源云操作系统)
- 8.1.1 OpenStack简介
- 8.1.2 实验架构设计
- 8.1.3 集群环境准备
- 8.1.4 controller节点部署
- 1. 安装Mariadb Galera Cluster集群
- 2. 安装RabbitMQ Cluster集群
- 3. 安装Pacemaker
- 4. 安装HAProxy
- 5. 安装配置Keystone
- 6. 安装配置glance
- 1. 制作镜像模板
- 7. 安装配置nova
- 8. 安装配置neutron
- 1. 配置虚拟机网络
- 9. 安装Dashboard
- 10. 安装配置cinder
- 8.1.5 compute节点部署
- 1. 安装相关软件包
- 2. 安装Neutron
- 3. 配置cinder
- 4. 创建第一个虚拟机
- 8.1.6 OpenStack报错处理
- 1. cinder僵尸卷删除
- 8.1.7 快速孵化虚拟机方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 单点部署
- 2. 多节点部署
- 8.2 Tstack(腾讯云平台)
- 8.3 K8s(微服务容器化)
- 九、运维编程技能
- 9.1 Shell(运维必会语言)
- 9.2 Python(万能的胶水语言)
- 十、Devops运维
- 10.1 理念
- 10.2 Devops实战