资料: zabbix5.0.pdf
1. 监控的介绍
1:什么是监控?
随着用户的增多,服务随时可能会被oom
监视和控制,
生活中的监控:事后追责
运维中的监控:事后追责,事前预警,性能分析,实时报警
2:常见的linux监控命令
cpu,内存,磁盘,网络
top
htop
uptime
free
vmstat
iostat
df
iftop
nethogs
3:使用shell脚本来监控服务器
没有监控工具的时候,shell脚本+定时任务 监控服务器
[root@k8s ~]# cat mem_alter.sh
#!/bin/bash
MEM=`free -m|awk 'NR==2{print $NF}'`
if [ $MEM -lt 100 ];then
echo "web服务器 192.168.2.104 可用内存不足,当前可用内存
$MEM" | mail -s "web服务器内存不足" 296917342@qq.com
fi
缺点:效率低,不能实现集中报警,不能分析历史数据
优点: 我只有一台云主机需要监控,适合shell脚本+定时任务就足够
监控工具简单使用: https://www.cnblogs.com/hypj/p/14355984.html https://man.linuxde.net/par/3
1.1 面试问题:
你了解那些监控工具
nagios --- 容易实现自定义监控,但没有数据库,不方便分析
cacti --- 出图效果好,自定义监控太麻烦 https://www.cacti.net/
Open-falcon --- 小米公司监控平台,监控性能好,使用起来不友http://www.open-falcon.com/
lepus 天兔 --- 数据库监控
#Prometheus --- 监控docker k8s 是按照谷歌borgmon思路开发的(目前很多互联网企业用的还不多,k8s要使用)
#zabbix --- 社区活跃度高,互联网公司用的多,实用,方便。自定义监控项,出土都比较灵活。
运维的职责是什么??? ✨
1.为什么需要学监控?
运维的职责:保证服务7*24小时不宕机
2.运维的日常工作:
环境的部署
业务的代码上线
做好备份,异地备份(灾备)
故障处理,不等故障爆发,就已经解决了,完善监控
3.上线一个业务:
进行压力测试最大支撑400用户300阈值
监控用户的数量达到了阈值的90%报警,集群应该扩容了!进行压力测试最大支撑800用户
4.服务的可用性:
99.9% 8小时
99.99% 53分钟
5.灾备等级
最简单的:只要备份
要求比较高的:多机房,机房和机房之间拉专线(光纤)
ECS: 华北6区xxx 可用区A 可用区B 可用区c ...
光一台服务器,有很多指标需要监控,cpu内存磁盘网络系统进程free -m
6.借助监控工作,来帮我们进行定期监控iostat -xt 1
2 zabbix的基础服务架构✨
zabbix-agent ---->zabbix-server ----> 数据库 <--- zabbix web 采集数据
--》数据收集,数据分析,报警---》存储---》友好的展示
3 zabbix生产环境安装
主机 :zabbix-server
ip地址: 10.0.0.71
操作系统版本: centos 7.6
3.1 安装php运行环境
要求php版本 7.2以上+
安装php第三方源
yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtaticrelease.rpm
yum install php72w-fpm php72w-gd.x86_64 php72wbcmath.x86_64 php72w-xml.x86_64 php72w-mbstring.x86_64 php72w-ldap.x86_64 php72w-mysqlnd.x86_64 -y
安装nginx
yum install nginx -y
配置php-fpm和nginx
vim /etc/php-fpm.d/www.conf
...
user = nginx
group = nginx
...
vim /etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
listen 80;
server_name localhost;
root /html;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /html$fastcgi_script_name;
include fastcgi_params;
}
}
}
启动nginx和php-fpm
mkdir /html
nginx -t
systemctl start nginx
systemctl enable nginx
systemctl start php-fpm
systemctl enable php-fpm
准备zabbix-web的php代码
wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.8.tar.gz
tar xf zabbix-5.0.8.tar.gz
cd zabbix-5.0.8/ui/
cp -a * /html/
chown -R nginx:nginx /html
Ps: #解决首次访问 zabbix-web安装界面 error 500的错误 —->>> 查看日志可知: 缺少目录 mkdir /var/lib/php/session chown -R nginx:nginx /var/lib/php/session/
解决方法:
vim /etc/php.ini
max_execution_time = 300
max_input_time = 300
post_max_size = 16M
date.timezone = Asia/Shanghai
systemctl restart php-fpm.service
下一步:
3.2 安装数据库
- 参考链接:传送门 ```javascript tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz mkdir /app mv mysql-5.7.32-linux-glibc2.12-x86_64 /app/mysql vim /etc/profile source /etc/profile useradd mysql mkdir /data/mysql -p chown -R mysql.mysql /app/ chown -R mysql.mysql /data/
yum install libaio-devel -y mysqld —initialize —user=mysql —basedir=/app/mysql —datadir=/data/mysql
vim /etc/my.cnf vim /etc/systemd/system/mysqld.service systemctl start mysqld.service netstat -lntup systemctl enable mysqld mysql -uroot -p’j>jd&D;2(1_E’ mysqladmin -uroot -p’j>jd&D;2(1_E’ password ‘1qaz@WSX’
mysql -uroot -p’1qaz@WSX’
```javascript
#创库授权
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by '123456';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
3.3 安装zabbix-server
配置zabbix 5.0的源
#安装zabbix清华源(源内还是国外的仓库)
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/ rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#替换zabbix源为清华源
sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo
安装zabbix-server
yum install zabbix-server-mysql -y
导入zabbix初始数据
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz|mysql -uzabbix -p123456 zabbix
配置zabbix-server
vim /etc/zabbix/zabbix_server.conf
...
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBSocket=/tmp/mysql.sock
...
启动zabbix-server
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
netstat -lntup|grep 10051
3.4 安装zabbix-web
解决方法:
vim /etc/php.ini
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
systemctl restart php-fpm
下一步: 确认>> 完成
迁移数据库的时候使用到的配置文件
登录zabbix 用户名: Admin 密码:zabbix
调整语言为中文
4 监控一台服务器主机
4.1 监控zabbix-server
yum install zabbix-agent -y
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
4.2 监控其他linux主机✨
添加监控前准备
#安装
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.8-1.el7.x86_64.rpm
#配置
vim /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.71 ###服务端的ip地址,错误填写会导致不能添加监控主机
#启动
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service
默认1-60s更新一次信息。想要立即发现新设备,可重启zabbix-server