我们为什么要搭建监控服务器,搭建监控服务器的好处
监控服务器可以替我们监视系统的运行状况,暴恐数据的吞吐量,反应时间,使用率等等,减少人工参与.监控能够提前发现问题,对服务器的性能进行调整,知道系统哪里出现问题,及时解决,减少损失.
监控的资源
监控可以监控的资源类别分为公开数据和私有数据
公开数据包括-Web, FTP , SSH , 数据库等应用服务,通过TCP或UDP端口链接
私有数据CPU, 内存, 磁盘, 网卡流量等使用情况,用户, 进程等运行信息
监控软件
Cacti 基于snmp协议的监控软件,具有强大的绘图能力
Nagios 基于agent监控,强大的状态检查与报警机制,插件极多,自己写监控监本潜入到Nagios非常方便
Zabbix 基于多种监控机制,支持分布式监控
常用的额系统监控命令
ps 查看端口
ifconfig 查看网卡信息
uptime 查看系统使用及运行时间
netstat或者ss 查看端口或进程
free 内存
ping 检查网络
swapon -s 检查系统磁盘
traceroute 检查网络链接信息
df -h 检查分区磁盘信息
iostat 分析IO
我们今天使用Zabbix软件实现对服务器的监控
Zabbix是一个高度集成的监控解决方案
可以实现企业级的开源分布式监控
Zabbix通过C/S模式采集监控数据
Zabbix通过B/S模式实现Web管理
我们实现Zabbix监控需要监控通过SNMP或Agent采集数据
数据可以写入mysql或oracle等数据库中
使用nginx实现web的管理
被监控的主机需要安装Agent
首先安装nginx的依赖包
pcre-devel zlib-devel openssl-devel
[root@zabbix ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel
源码安装nginx
支持加密http
[root@zabbix Zabbix]# tar -xf nginx-1.12.2.tar.gz
[root@zabbix Zabbix]# cd nginx-1.12.2/
[root@zabbix nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbix nginx-1.12.2]# make
[root@zabbix nginx-1.12.2]# make install
[root@zabbix nginx-1.12.2]# yum -y install php php-mysql
[root@zabbix nginx-1.12.2]# yum -y install mariadb mariadn-devel mariadb-server
[root@zabbix nginx-1.12.2]# yum -y install php php-mysql
修改nginx配置,使nginx支持php功能
在配置文件65-71行有模板
[root@zabbix nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
启动服务
[root@zabbix nginx-1.12.2]# systemctl start mariadb
[root@zabbix nginx-1.12.2]# systemctl start php-fpm
[root@zabbix nginx-1.12.2]# /usr/local/nginx/sbin/nginx
进行测试
首先在nginx的页面目录下建里一个文件
[root@zabbix nginx-1.12.2]# vim /usr/local/nginx/html/test.php
[root@zabbix nginx-1.12.2]# curl http://localhost/test.php
555
[root@zabbix nginx-1.12.2]#
安装依赖
[root@zabbix nginx-1.12.2]# yum -y install net-snmp-devel curl-devel libevent-devel
源码安装Zabbix
我们安装之前要建立一个zabbix用户,用于启动zabbix服务
[root@zabbix nginx-1.12.2]# useradd zabbix
[root@zabbix nginx-1.12.2]# cd ..
[root@zabbix Zabbix]# tar -xf zabbix-3.4.4.tar.gz
[root@zabbix Zabbix]# cd zabbix-3.4.4/
[root@zabbix zabbix-3.4.4]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
[root@zabbix zabbix-3.4.4]# make install
关于zabbix的应用程序
[root@zabbix zabbix-3.4.4]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_proxy.conf zabbix_server.conf
zabbix_agentd.conf.d zabbix_proxy.conf.d zabbix_server.conf.d
[root@zabbix zabbix-3.4.4]# ls /usr/local/bin/
eip setip zabbix_get zabbix_sender
[root@zabbix zabbix-3.4.4]# ls /usr/local/sbin/
zabbix_agentd zabbix_proxy zabbix_server
[root@zabbix zabbix-3.4.4]#
创建zabbix库,zabbix用户,密码是zabbix
[root@zabbix zabbix-3.4.4]# mysql
MariaDB [(none)]> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@"localhost" identified by 'zabbix'
-> ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
进入/root/Zabbix/zabbix-3.4.4/frontends/php目录
把目录下的东西专一到nginx的页面目录下,并给予权限
[root@zabbix zabbix-3.4.4]# cd frontends/php/
[root@zabbix php]# ls
actionconf.php favicon.ico popup_trexpr.php
adm.gui.php fonts profile.php
adm.housekeeper.php graphs.php queue.php
adm.iconmapping.php history.php report2.php
adm.images.php host_discovery.php report4.php
adm.macros.php hostgroups.php robots.txt
adm.other.php hostinventoriesoverview.php screenconf.php
adm.regexps.php hostinventories.php screenedit.php
adm.triggerdisplayoptions.php host_prototypes.php screen.import.php
adm.triggerseverities.php host_screen.php screens.php
adm.valuemapping.php hosts.php scripts_exec.php
adm.workingtime.php httpconf.php search.php
api_jsonrpc.php httpdetails.php services.php
app image.php setup.php
applications.php images slideconf.php
audio img slides.php
auditacts.php imgstore.php srv_status.php
auditlogs.php include styles
authentication.php index.php sysmap.php
browserwarning.php items.php sysmaps.php
chart2.php js templates.php
chart3.php jsLoader.php toptriggers.php
chart4.php jsrpc.php tr_comments.php
chart5.php latest.php tr_events.php
chart6.php local trigger_prototypes.php
chart7.php locale triggers.php
chart.php maintenance.php tr_logform.php
charts.php map.import.php tr_status.php
conf map.php tr_testexpr.php
conf.import.php overview.php usergrps.php
correlation.php popup_httpstep.php users.php
discoveryconf.php popup_media.php zabbix.php
disc_prototypes.php popup.php
[root@zabbix php]# cp -a * /usr/local/nginx/html/
[root@zabbix php]# chmod -R 777 /usr/local/nginx/html/*
在http里面添加一下内容
fastcgi_buffers 8 16k; 缓存php生成的页面内容
fastcgi_buffer_size 32k; 缓存php生成的头部信息
fastcgi_connect_timeout 300; 链接php的超时时间
fastcgi_send_timeout 300; 发送请求的超时时间
fastcgi_read_timeout 300; 读取请求的超时时间
[root@zabbix php]# vim /usr/local/nginx/conf/nginx.conf
http {
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
重新启动nginx
[root@zabbix php]# /usr/local/nginx/sbin/nginx -s stop
[root@zabbix php]# /usr/local/nginx/sbin/nginx
[root@zabbix php]# yum -y install php-gd php-xml php-ldap php-bcmath php-mbstring
[root@zabbix php]# vim /etc/php.ini
date.timezone = Asia/Shanghai 设置时区
max_execution_time = 300 最大执行时间,秒
post_max_size = 32M post数据最大容量
max_input_time = 300 服务器接受数据的时间限制
重启php-fpm服务
[root@zabbix php]# systemctl restart php-fpm
[root@host5 ~]# vim /usr/local/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log 设置日志
DBHost=localhost 设置主机
DBName=zabbix 设置数据库名称
DBUser=zabbix 设置数据库账户
DBPassword=zabbix 设置数据库密码
[root@host5 ~]# zabbix_server
[root@host5 ~]# ss -utnlp | grep 10051
tcp LISTEN 0 128 *:10051 *:* user