监控的目的
- 报告系统运行状况
– 每一部分必须同时监控
– 内容包括吞吐量,反应时间,使用率等 - 提前发现问题
– 进行服务器性能调整前,知道调整什么
– 找出系统的瓶颈在什么地方
监控的资源类别
- 公开数据
– Web,FTP,SSH,数据库等应用服务
– TCP或UDP端口 - 私有数据
– CPU,内存,磁盘,网卡流量等使用信息
– 用户,进程等运行信息
系统监控命令
命令 | 描述 |
---|---|
ps | 进程查看命令 |
uptime | 查看服务器运行了多长时间以及有多少个用户登录 |
free | 查看内存使用情况 |
swapon -s | 查看交换分区的信息 |
df -h | 检查linux的文件系统的磁盘空间占用情况 |
ifconfig | ip相关信息 |
netstat或ss | 查看状态 |
ping | 检测连通性 |
traceroute | 路由追踪,访问百度时,经过的服务器 |
iostat | 收集显示系统存储设备输入和输出状态统计 |
自动化监控系统
- Cacti(10年前主流,仙人掌监控)
– 基于SNMP协议的监控软件,强大的绘图能力
– 缺点,监控时需要调用监控主机的模板,模板数有限,监控能力有限 - Nagios(部分公司在用)
– 基于Agent监控,强大的状态检查与报警机制
– 插件极多,自己写监控脚本潜入到Nagios非常方便
– 缺点:没有绘图功能 - Zabbix
– 基于多种监控机制,支持分布式监控
Zabbix简介
- Zassix是一个高度集成的监控解决方案
- 可以实现企业级的开源分布式监控
- Zabbix通过C/S(客户端服务器)模式采集监控数据
- Zabbix通过B/S(浏览器服务器)模式实现Web管理
部署LNMP
1.1 安装nginx及其依赖包
]# yum -y install gcc pcre-devel zlib-devel openssl-devel
]# tar -xf nginx-1.12.tar.gz
]# cd nginx-1.12
nginx-1.12]# ./configure --with-http_ssl_module
nginx-1.12]# make; make install
]# yum -y install php php-mysql mariadb mariadb-devel mariadb-server
]# yum -y install php-fpm
1.2 修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 include fastcgi.conf;
70 }
1.3 启动服务与测试
]# systemctl start mariadb
]# systemctl start php-fpm
]# /usr/local/nginx/sbin/nginx
vim /usr/local/nginx/html/test.php
<?php
echo "helloworld"
?>
curl http://localhost/test.php
部署Zabbix
1.1 安装源码Zabbix
]# yum -y install net-snmp-devel curl-devel libevent-devel
]# tar -xf Zabbix/zabbix-3.4.4.tar.gz
]# cd zabbix-3.4.4/
zabbix-3.4.4]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
zabbix-3.4.4]# make install
1.2 初始化准备
1.2.1 创建数据库与数据库账户
]# mysql
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";
]# cd zabbix-3.4.4/database/mysql
]# mysql -uzabbix -pzabbix zabbix < schema.sql
]# mysql -uzabbix -pzabbix zabbix < images.sql
]# mysql -uzabbix -pzabbix zabbix < data.sql
1.2.2 上线Zabbix页面
cd zabbix-3.4.4/frontends/php/
cp -a * /usr/local/nginx/html/
chmod -R 777 /usr/local/nginx/html/*
1.2.3 修改nginx配置
]# vim /usr/local/nginx/conf/nginx.conf
http{
...
fastcgi_buffers 8 16k; //缓存php生成的页面内容,8个16K
fastcgi_buffer_size 32k; //缓存php生产的头部信息
fastcgi_connect_timeout 300; //连接PHP的超时时间
fastcgi_send_timeout 300; //发送请求的超时时间
fastcgi_read_timeout 300; //读取请求的超时时间
}
]# /usr/local/nginx/sbin/nginx -s stop
]# /usr/local/nginx/sbin/nginx
1.2.4 安装依赖软件
]# cd /root/
]# yum -y install php-gd php-xml php-ldap
]# yum -y install php-gcmath php-mbstring
1.2.5 修改PHP配置文件
]# vim /etc/php.ini
date.timezone = Asia/Shanghai //设置时区
max_execution_time = 300 //最大执行时间,秒
post_max_size = 32M //POST数据最大容量
max_input_time = 300 //服务器接收数据的时间限制
]# systemctl restart php-fpm
1.2.6浏览器访问web页面
http://192.168.2.5/index.php
这里的Host改为本机的IP地址192.168.2.5,端口port默认,Name名称输入monitor-server
1.3 启动服务
修改配置文件
]# vim /usr/local/etc/zabbix_server.conf
38 LogFile=/tmp/zabbix_server.log
85 DBHost=localhost
95 DBName=zabbix
111 DBUser=zabbix
119 DBPassword=zabbix
启动服务
]# useradd zabbix //不创建用户无法启动服务
]# zabbix_server //启动服务的命令
]# ss -ntulp | grep 10051 //查看端口
-- killall -9 zabbix_server //停止进程
Zabbix监控服务
1.1 基础监控
1.1.1 配置被监控主机
安装软件(以1.100为例)
]# yum -y install gcc pcre-devel
]# tar -xf zabbix-3.4.4.tar.gz
]# cd zabbix-3.4.4/
zabbix-3.4.4]# ./configure --enable-agent
zabbix-3.4.4]# make install
1.1.2 修改配置文件
]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5 //允许访问服务地址列表
ServerActive=192.168.2.5:10051 //监控服务器ip地址
LogFile=/tmp/zabbix_agentd.log //日志文件
1.1.3 启动服务
]# useradd zabbix
]# zabbix_agentd //启动服务
]# ss -ntulp | grep 10050 //查看端口