监控的目的
- 报告系统运行状况
-每一部分必须同时监控
-内容包括吞吐量、反应时间、使用率等 - 提取发现问题
-进行服务器性能调整前,知道调整什么
-找出系统的瓶颈在什么地方
监控的资源类别
- 公开数据
-Web、FTP、SSH、数据库等应用服务
-TCP或UDP端口
-私有数据
-CPU、内存、磁盘、网卡流量等使用信息
-用户、进程等运行信息
系统监控命令
- PS
- ifconfig
- df -h
- traceroute
- iostat
- netstat或ss
自动化监控系统
- Cacti
-基于SNMP协议的监控软件,强大的绘图能力 - Nagios
-基于Agent监控,强大的状态检查与报警机制
-插件极多,自己写监控脚本潜入到Nagios非常方便 - Zabbix
-基于多种监控机制,支持分布式监控
Zabbix简介
- Zabbix是一个高度集成的监控解决方案
- 可以实现企业级的开源分布式监控
- Zabbix通过C/S模式采集监控数据
- Zabbix通过B/S模式实现Web管理
监控拓扑 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/de0d2b82a0126962c3d0fbf2947c0b12.png)
- 监控拓扑
- 监控服务器
-监控服务器可以通过SNMP或Agent采集数据
-数据可以写入MySQL、Oracle等数据库中
-服务器使用LNMP实现web前端的管理 - 被监控主机
-被监控主机需要安装Agent
-常见的网络设备一般支持SNMP
部署LNMP
-
监控服务器
-设置主机名(Zabbix server)
-设置IP地址(192.168.2.5)
-关闭防火墙、SElinux -
监控客户端(2.100和2.200)
-主机web1(192.168.2.100)
-主机web2(192.168.2.200)
-关闭防火墙、SElinux -
安装nginx及其依赖包
[root@zabbixserver ~]# yum -y install gcc pcre-devel openssl-devel
[root@zabbixserver ~]# tar -xf nginx-1.12.2.tar.gz
[root@zabbixserver ~]# cd nginx-1.12.2
[root@zabbixserver nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbixserver nginx-1.12.2]# make && make install
[root@zabbixserver ~]# yum -y install php php-mysql \
> mariadb mariadb-devel mariadb-server
[root@zabbixserver ~]# yum -y install php-fpm-5.4.16-42.el7.x86_64.rpm
- 修改nginx配置
[root@zabbixserver ~]# vim/usr/local/nginx/conf/nginx.conf
http{
... ...
location~\.php${
root html;
fastcgi_pass 127.0.0.1:9000
fastcgi_index index.php;
include fastcgi.conf;
}
- 启动服务
[root@zabbixserver ~]# systemctl start mariadb
[root@zabbixserver ~]# systemctl start php-fpm
[root@zabbixserver ~]# ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
[root@zabbixserver ~]# nginx
[root@zabbixserver ~]# firewall-cmd --set-default-zone=trusted
[root@zabbixserver ~]# setenforce 0
- 测试页面
root@zabbixserver ~]# cat /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>
[root@zabbixserver ~]# curl http://192.168.2.5/test.php
部署Zabbix
- 安装源码Zabbix
[root@zabbixserver lnmp_soft]# yum -y install net-snmp-devel \
> curl-devel
//安装相关依赖包
[root@zabbixserver lnmp_soft]# yum -y install \
> libevent-devel-2.0.21-4.el7.x86_64.rpm
[root@zabbixserver lnmp_soft]# tar -xf zabbix-3.4.4.tar.gz
[root@zabbixserver lnmp_soft]# cd zabbix-3.4.4/
[root@zabbixserver zabbix-3.4.4]# ./configure --enable-server \
> --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config \
> --with-net-snmp --with-libcurl
// --enable-server //安装部署zabbix服务器端软件
// --enable-agent //安装部署zabbix被监控端软件
// --enable-proxy //安装部署zabbix代理相关软件
// --with-mysql //配置mysql_config路径
// --with-net-snmp //允许zabbix通过snmp协议监控其他设备
// --with-libcurl //安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
[root@zabbixserver zabbix-3.4.4]# make && make install
[root@zabbixserver zabbix-3.4.4]# ls /usr/local/etc/
[root@zabbixserver zabbix-3.4.4]# ls /usr/local/bin/
[root@zabbixserver zabbix-3.4.4]# ls /usr/local/sbin/
初始化准备
- 创建数据库与数据库账户
[root@zabbixserver ~]# mysql
mysql> create database zabbix character set utf8;
//创建数据库,支持中文字符集
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
//创建可以访问数据库的账户与密码
[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/database/mysql/
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbixserver mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
//刚刚创建是空数据库,zabbix源码包目录下,有提前准备好的数据
//使用mysql导入这些数据即可(注意导入顺序)
- Zabbix页面
]# cd Zabbix-3.4.4/frontends/php
]# cp -a * /usr/local/nginx/html
]# chmod -R 777 /usr/local/nginx/html/*
- 修改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
- 安装依赖软件
]# cd /root/
]# yum -y install php-gd php-xml php-ldap
]# yum-y install php-bcmath php-mbstring
- 修改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
启动服务
- 修改配置文件
]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost //数据库主机
DBName=Zabbix //设置数据库名称
DBUser=Zabbix //设置数据库账户
DBPassword=Zabbix //设置数据库密码
LogFile=/tmp/zabbix_server.log //设置日志
- 启动服务
]# useradd Zabbix //不创建用户无法启动服务
]# Zabbix_server //启动服务
]# ss -ntulp | grep :10051 //查看端口