keepalived.conf
配置文件weight
参数
- keepalived脚本控制
/root/check_web.sh
当if条件成立
exit 0
会让$?
等于0
,即为真,否则,$?
不等于0
,即为假
#!/bin/bash
num=`ps -ef|grep -c [n]ginx`
#nginx服务器启动时,num值会大于等于2,关闭时为0,启动时返回1,关闭时返回0
if [ $num -lt 2 ]
then
exit 1
else
exit 0
fi
- 修改
10.0.0.5
的/etc/keepalived/keepalived.conf
配置文件
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script check_web {
#定义需要监控脚本(脚本有执行权限)
script "/root/check_web.sh"
#执行脚本的间隔时间(秒)
interval 3
#权重值参数,主要用于和优先级进行运算
weight -60
}
vrrp_instance 1997sty {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24
}
track_script {
#调用执行你的脚本信息
check_web
}
}
10.0.0.6
的/etc/keepalived/keepalived.conf
配置文件
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_instance 1997sty {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24
}
}
- weight求和运算 : weight数值必须是正数
weight
+priority
提升优先级后可以成为主服务器 - 求和运算条件 : 权重值为正数,脚本运行后为真,
weight
+priority
- weight求差运算 : weight数值必须是负数
weight
-priority
降低优先级后可以成为备服务器 - 求差运算条件 : 权重值为负数,脚本运维后为假,
weight
-priority
以上代码演示求差运算,脚本每隔3秒运行一次,脚本输出结果为真,则不进行运算权重值主机运行,脚本在输出结果为假的条件为
nginx
服务停止,降低权重值后,备份机运行
- 未运算抓包结果
- 运算后抓包结果
综合架构监控服务
主机名称和IP地址规划
服务 | 主机名 | eth0网卡IP | eth1网卡IP | 软件 |
---|---|---|---|---|
防火墙服务器 | firewalld | 10.0.0.81 | 172.16.1.81 | firewalld |
负载均衡服务器 | lb01 | 10.0.0.5 | 172.16.1.5 | nginx,keepalived |
负载均衡服务器 | lb02 | 10.0.0.6 | 172.16.1.6 | nginx,keepalived |
web服务器 | web01 | 10.0.0.7 | 172.16.1.7 | nginx |
web服务器 | web02 | 10.0.0.8 | 172.16.1.8 | nginx |
web服务器 | web03 | 10.0.0.9 | 172.16.1.9 | nginx |
存储服务器 | nfs01 | 10.0.0.31 | 172.16.1.31 | nfs |
备份服务器 | backup | 10.0.0.41 | 172.16.1.41 | rsync |
数据库服务器 | db01 | 10.0.0.51 | 172.16.1.51 | mysql,mariaDB |
批量管理服务器 | m01 | 10.0.0.61 | 172.16.1.61 | ansible |
跳板机服务器 | jumpserver | 10.0.0.71 | 172.16.1.71 | jumpserver |
监控服务器 | zabbix | 10.0.0.72 | 172.16.1.72 | zabbix |
缓存服务器 | 暂无 | 暂无 | 暂无 | 暂无 |
- 对系统不间断实时监控
- 实现报警通知 邮件/微信/短信/电话
- 实时反馈系统当前状态
- 保证服务可靠性安全性
- 保证业务持续稳定运行
- 掌握架构服务的运行情况
- 用于分析公司网站运行情况
综合架构监控服务器常用命令
- CPU :
top
,htop
,glances
us
:user state 用户态信息
sy
:system state 内核态信息
id
:idle 空闲状态
- 内存 :
top
,htop
,free
监控内容:内存可用率,swap空间使用情况
- 磁盘 :
df
,htop
,free
监控内容:
- 网络 :
iftop
,glances
监控内容:使用情况,IO消耗
- 进程 :
top
,htop
,ps
,glances
监控内容:占用内存情况,占用CPU情况
- 负载 :
w
,top
,uptime
,glances
监控内容:10分钟负载,15分钟负载 数值应小于CPU内核数
综合架构监控服务器编写脚本
监控内存使用情况
- 正常使用情况:内存使用率高于80%
- 异常使用情况:内存使用率低于20% 发送报警
监控服务运行状态
ps -ef|grep -c [n]ginx
netstat -lntup|grep xxx
综合架构监控服务体系结构
- 硬件监控 服务器 路由器 交换机 防火墙(SNMP)
- 系统监控 CPU 内存 磁盘 网络 进程 TCP(十一种状态)
- 服务监控 nginx php tomcat redis memcache mysql
- 网站监控 请求时间 响应时间 加载时间 页面监控
- 日志监控 ELK(收集 存储 分析 展示)
- 安全监控 Firewalld(4层和4层以上) WAF(Nginx+lua) (应用层面) 安全宝 牛盾云 安全狗
- 网络监控 smokeping 监控宝 站长工具 奇云测 多机房
- 业务监控 (数据库信息)活动产生多少流量 产生多少注册量 带来多少价值
zabbix监控服务
zabbix软件结构组成
- zabbix-server : 监控服务端
- zabbix-agent : 监控客户端
- zabbix-web : 监控网站服务
- php : 处理动态请求
- mysql : 数据库存储监控数据
- zabbix-proxy : 负责收集agent信息汇总告知zabbix-server
zabbix软件安装部署
- 软件选择: 4.0 LTS
LTS : long time support 长期支持版
- 更新yum源
#新版本
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
#老版本
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- yum下载安装zabbix服务端相关软件
zabbix服务程序软件: zabbix-server-mysql zabbix服务web软件: zabbix-web-mysql httpd php 数据库服务软件: mariadb-server
yum install -y zabbix-server-mysql zabbix-web-mysql mariadb-server zabbix-agent httpd php
yum安装时,yum远来自国外的源,过程出现中断报错,多执行几次命令,多次尝试重新下载后安装完成
-
软件配置
-
/etc/zabbix/zabbix_server.conf
添加数据库密码
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
DBPassword=zabbix
/etc/httpd/conf.d/zabbix.conf
添加时区信息
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/app">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/local">
Require all denied
</Directory>
- 配置相关服务
systemctl start zabbix-server.service httpd mariadb.service
systemctl enable zabbix-server.service httpd mariadb.service
- 可以选择执行初始化数据库
#初始化数据库
mysql_secure_installation
#设置root密码
mysqladmin password 123456
- 安装后使用
mysql
命令进入后配置数据库
#创建zabbix数据库--zabbix
create database zabbix character set utf8 collate utf8_bin;
#创建数据库管理用户
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
- 导入数据库相应表信息
#如果提示不存在文件或目录可以进入到/usr/share/doc目录找到zabbix-server-mysql-*目录下的create.sql.gz
zcat /usr/share/doc/zabbix-server-mysql-4.0.16/create.sql.gz|mysql -uzabbix -pzabbix zabbix
- 登录zabbix服务端web界面,进行初始化配置
http://10.0.0.72/zabbix/setup.php
- 点击
Next step
- 点击
Next step
- 输入数据库密码
zabbix
,点击Next step
Name
输入任意名称,点击Next step
- 确认无误后,点击
Next step
- 点击
Finish
,跳转到登录界面
-
登录zabbix服务web页面
-
/etc/zabbix/web/zabbix.conf.php
记录web页面初始化信息
用户名Admin 密码zabbix
- 界面修改为中文后,添加解决中文乱码问题
#安装字体
yum install wqy-microhei-fonts -y
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
监控客户端部署流程
- 更新yum源
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
- 下载安装zabbix客户端
yum install -y zabbix-agent
#或者使用rpm
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
- 编写
/etc/zabbix/zabbix_agentd.conf
的zabbix客户端配置文件,指定Server
##### Passive checks related
### Option: Server
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
# and '::/0' will allow any IPv4 or IPv6 address.
# '0.0.0.0/0' can be used to allow any IPv4 address.
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=
Server=172.16.1.72
- 启动zabbix-agent服务,设置开机自启,查看端口是否存在
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -lntup|grep 10050
最后一次更新于2020-06-16 19:46
0 条评论