一、监控:向运维人员报告系统的运行情况(吞吐量,反应时间,使用率),以便于提前发现问题。
二、监控的资源:
1、公开数据:web,ftp,ssh,数据库,tcp/udp等应用服务
2、私有数据:cpu,内存,磁盘,网卡,用户,进程等运行信息
三、系统监控命令:
ps:进程, uptime:cpu负载, free:内存, swapon -s:交换分区清空
df -h:磁盘, ifconfig:网卡, ss/netstat:进程端口, ping:网络连通
traceroute:路由追踪(到达某主机所经过的路由信息), iostat:磁盘使用状态
四、自动化监控:
目前常用的自动化监控的主流工具为:
1、cacti:基于snmp协议,可以绘制图案
2、nagios:基于agent监控,具有警报功能,插件多,可以自定义脚本
3、zabbix:总和了cacti和nagios的优点,并且支持分布式监控,企业常用
五、zabbix:
开源分布式监控工具,使用C/S模式监控数据,使用B/S模式进行管理,所有的监控信息都通过web网页的形式呈现给管理员。
1、监控服务器通过snmp或者agent采集数据
2、数据可以存入mysql或者oracle数据库中
3、监控服务器使用LNMP向管理人员提供web管理页面
4、被监视的主机安装agent,设备一般都支持snmp协议
六、部署zabbix:(192.168.80.136)
1、搭建LNMP环境:(nginx需要支持ssl,数据库使用mariadb)
2、安装zabbix:
yum -y install net-snmp-devel curl-devel #snmp依赖包,curl浏览器测试包
yum -y install libevent-devel-2.0.21-4.el7.x86_64.rpm #zabbix依赖包
tar -xvf zabbix-3.4.4.tar.gz
cd 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等服务,测试被监控主机服务的状态
make && make install #编译安装
# 安装在/usr/local/目录下:etc是配置,sbin启动服务,bin命令
3、创建数据库以及数据库账户:
# 为了方便,数据库名是zabbix,授权用户是zabbix,密码是zabbix
mysql #mariadb默认不需要密码就可以连接
mysql> create database zabbix character set utf8; #创建库,utf8编号
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix'; #授权用户,注意指定访问的主机是localhost,仅本机可以访问
# zabbix源码中提供了对应的表,一定要按照下方顺序将表导入到数据库中
cd lnmp_soft/zabbix-3.4.4/database/mysql/
mysql -uzabbix -pzabbix zabbix < schema.sql
mysql -uzabbix -pzabbix zabbix < images.sql
mysql -uzabbix -pzabbix zabbix < data.sql
# zabbix源码中提供了对应的管理页面,需要放到nginx下的html中
cd lnmp_soft/zabbix-3.4.4/frontends/php/
cp -r * /usr/local/nginx/html/
chmod -R 777 /usr/local/nginx/html/*
4、修改nginx配置:(对zabbix的支持,否则无法初始化)
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; #读取请求的超时时间
}
# 配置完毕之后,重启nginx:nginx -s reload
5、安装初始化依赖的软件包:
yum -y install php-gd php-xml
yum install php-bcmath-5.4.16-42.el7.x86_64.rpm #有些centos光盘中有这个包
yum install php-mbstring-5.4.16-42.el7.x86_64.rpm #有些centos光盘中有这个包
6、修改php配置文件:
vim /etc/php.ini
date.timezone = Asia/Shanghai #设置时区,区分大小写,878行
max_execution_time = 300 #最大执行时间,秒,384行
post_max_size = 32M #POST数据最大容量,672行
max_input_time = 300 #服务器接收数据的时间限制,394行
memory_limit = 128M #内存容量限制
# 修改完毕以后重启php服务:systemctl restart php-fpm
7、初始化:
通过浏览器访问:192.168.80.136/index.php
指定mysql相关信息
指定zabbix主机(192.168.80.136,10051,主机名自定义)
8、启动zabbix服务:(10051端口)
vim /usr/local/etc/zabbix_server.conf
DBHost=localhost #数据库主机,默认该行被注释
DBName=zabbix #设置数据库名称
DBUser=zabbix #设置数据库账户
DBPassword=zabbix #设置数据库密码,默认该行被注释
LogFile=/tmp/zabbix_server.log #设置日志,仅查看以下即可
useradd -s /sbin/nologin zabbix #不创建用户无法启动服务
zabbix_server #启动服务
ss -ntulp |grep zabbix_server #确认连接状态,端口10051
killall -9 zabbix_server #关闭服务
9、登录管理页面:
浏览器再次访问192.168.80.136/inde.php
用户名:admin
密码:zabbix
七、部分截图:
数据库信息:
zabbix服务器信息:
登录管理页面:
写总结的第五十三天!!!