1. 什么是监控?
    监视和控制
    生活中的监控:事后追责
    运维中的监控:事后追责,事前预警,性能分析,实时报警;

2. 常见的Linux监控命令

top:显示进程信息。

htop:Linux系统中的一个互动的进程查看器。

uptime:

zabbix 启动 zabbix启动时间_监控程序


第一项是当前时间,up 表示系统正在运行,5:53 是系统启动的总时间,最后是系统的负载load信息。

free:查看内存。
vmstat:是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控
iostat:将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况
df:显示磁盘分区上可以使用的磁盘空间
iftop:针对IP地址进行监控
nethogs:针对进程号来进行监控

3. 使用shell脚本来监控服务器

#!/bin/bash
MEM=`free -m|awk 'NR==2{print $NF}'`
if [ $MEM -lt 100 ];then
echo "web服务器 $ip地址 可用内存不足,当前可用内存
$MEM" | mail -s "web服务器内存不足" *****@qq.com
fi

缺点:效率低,不能实现集中报警,不可以分析历史数据

4.zabbix的基础服务架构

zabbix 启动 zabbix启动时间_zabbix 启动_02

5.zabbix生产环境安装
操作系统:centos 7.6
IP地址:10.0.0.71

5.1.安装php运行环境
要求php版本 7.2以上+
安装php第三方源:

yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install php72w-fpm  php72w-gd.x86_64 php72w-bcmath.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;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /html;
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
#解决首次访问 zabbix-web安装界面 error 500的错误 (查看报错解决相应的问题)
mkdir /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

zabbix 启动 zabbix启动时间_监控程序_03

zabbix 启动 zabbix启动时间_mysql_04


#解决方法:

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

然后下一步进行

zabbix 启动 zabbix启动时间_zabbix 启动_05


5.2.安装数据库

#参数链接https://www.jianshu.com/p/dd7137c4efa5

#创库授权
create database zabbix character set utf8 collate utf8_bin;
create user 'zabbix'@'localhost' identified by '123456';
grant all privileges on zabbix.* to 'zabbix'@'localhost';

5.3:安装zabbix-server
配置zabbix 5.0的源

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
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

zabbix 启动 zabbix启动时间_监控程序_06


解决方法:

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

zabbix 启动 zabbix启动时间_zabbix 启动_07


zabbix 启动 zabbix启动时间_nginx_08


zabbix 启动 zabbix启动时间_php_09

6∶监控一台服务器主机

6.1 监控zabbix-server (自己监控自己)

yum install zabbix-agent -y
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

zabbix 启动 zabbix启动时间_nginx_10

6.2 监控其他linux主机
添加监控前准备
主机IP地址:10.0.0.8

#安装
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
#启动
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service

zabbix 启动 zabbix启动时间_mysql_11


zabbix 启动 zabbix启动时间_php_12

然后重启zabbix-server:(10.0.0.71)

systemctl restart zabbix-server

zabbix 启动 zabbix启动时间_监控程序_13