资料: zabbix5.0.pdf


1. 监控的介绍

  1. 1:什么是监控?
  2. 随着用户的增多,服务随时可能会被oom
  3. 监视和控制,
  4. 生活中的监控:事后追责
  5. 运维中的监控:事后追责,事前预警,性能分析,实时报警
  6. 2:常见的linux监控命令
  7. cpu,内存,磁盘,网络
  8. top
  9. htop
  10. uptime
  11. free
  12. vmstat
  13. iostat
  14. df
  15. iftop
  16. nethogs
  17. 3:使用shell脚本来监控服务器
  18. 没有监控工具的时候,shell脚本+定时任务 监控服务器
  19. [root@k8s ~]# cat mem_alter.sh
  20. #!/bin/bash
  21. MEM=`free -m|awk 'NR==2{print $NF}'`
  22. if [ $MEM -lt 100 ];then
  23. echo "web服务器 192.168.2.104 可用内存不足,当前可用内存
  24. $MEM" | mail -s "web服务器内存不足" 296917342@qq.com
  25. fi
  26. 缺点:效率低,不能实现集中报警,不能分析历史数据
  27. 优点: 我只有一台云主机需要监控,适合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 采集数据
--》数据收集,数据分析,报警---》存储---》友好的展示

zabbix5.0---介绍 | 安装 | 简单使用 - 图1

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代码
zabbix下载.png

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/

zabbix5.0---介绍 | 安装 | 简单使用 - 图3

zabbix5.0---介绍 | 安装 | 简单使用 - 图4

解决方法:
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

下一步:
image.png

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

zabbix5.0---介绍 | 安装 | 简单使用 - 图6

解决方法:

vim /etc/php.ini
pdo_mysql.default_socket= /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
systemctl restart php-fpm

zabbix5.0---介绍 | 安装 | 简单使用 - 图7

image.png
下一步: 确认>> 完成
zabbix5.0---介绍 | 安装 | 简单使用 - 图9

迁移数据库的时候使用到的配置文件

登录zabbix 用户名: Admin 密码:zabbix
image.png
zabbix5.0---介绍 | 安装 | 简单使用 - 图11

调整语言为中文
zabbix5.0---介绍 | 安装 | 简单使用 - 图12

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

zabbix5.0---介绍 | 安装 | 简单使用 - 图13

默认1-60s更新一次信息。想要立即发现新设备,可重启zabbix-server

zabbix5.0---介绍 | 安装 | 简单使用 - 图14

zabbix5.0---介绍 | 安装 | 简单使用 - 图15