zabbix 监控软件
自带图像化界面,通过网页就可以监控所所有的服务器状态。
时间告警,邮件通知。
zabbix是什么
web界面提供的的分布式监控以及网络监控功能的开源的企业级的软件解决方案。
监控端 客户端
zabbix 可以提供各种类型的监控模版,保证服务器的正常运行,灵活的通知机制可以让管理员快速定位。
zabbix由两部分组成
1、zabbix-server,在server上可选安装zabbix-agent
2、收集数据的模式c/s模式
client/server
客户端到服务端
展示数据和配置网络
B/S
browes/server
页面配置
zabbix-server:服务端 收集数据 提供网页和配置数据
zabbix-agent:客户端 把收集到的数据发给服务器
zabbix的五大组件
1、zbbix-server:负责监控收集的数据
2、zabbix-agent:收集数据定期发送
3、zabbix-proy:代理 代理服务器的作用:如果所有的客户端都向服务端一起发数据,服务端的压力会比较大发送到代理服务器,代理服务器处理完之后再发给server,减轻主服务器的压力
4、zabbix get zabbix-get是zabbix的命令行工具
5、zabbix sender 发送器,可以将客户端的数据进行自定义操作之后在发送到服务端,
也可以通过脚本,把脚本处理过数据发送到客户端。
部署
zabbix 5.0
三台试验机
关防火墙 安全机制
获取下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
修改源 将源换为阿里源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
yum clean all && yum makecache
安装
yum install -y zabbix-server-mysql zabbix-agent
配置新的yum源
vim CentOS-SCLo-scl-rh.repo
[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yum clean all && yum makecache
开启
vim zabbix.repo
将0改为1
安装动态库
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
安装保存数据的数据库
yum install -y mariadb-server mariadb
systemctl restart mariadb.service
mysql_secure_installation
初始化数据库密码 123456
创建库用户密码
mysql -u root -p123456
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
导入数据库
rpm -ql zabbix-server-mysql
查询文件类型
zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uroot -p123456 zabbix
导入
进入配置文件 修改
vim /etc/zabbix/zabbix_server.conf
修改密码
修改文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
修改时区
php_value[date.timezone] = Asia/Shanghai
重启服务和开机自启
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
117 163 :修改为本机ip
174 :修改为主机名
yum -y install zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
页面访问
ip+zabbix
这里的host是本机的IP地址
密码zabbix
改为中文展示
安装解决乱码的工具 并执行命令即可
yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
做一个服务端
时间同步
yum -y install ntpdate
ntpdate -u ntp.aliyun.com
客户端
配置安装源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
设置阿里源
yum clean all && yum makecache
清空元数据
yum -y install zabbix-agent2
安装服务
修改客户端配置文件
vim /etc/zabbix/zabbix_agent2.conf
80行
指向服务端
本机名
重启 开机自启
systemctl restart zabbix-agent2.service
systemctl enable zabbix-agent2.service
查看端口 10050
服务端安装
yum -y install zabbix-get
zabbix_get -s '20.0.0.14' -p 10050 -k 'agent.ping
zabbix_get -s '20.0.0.14' -p 10050 -k 'system.hostname'
为1 表示正常连接 为0 表示不通
获取主机名
服务端添加主机
创建主机
主机的ip地址
创建模版
ZBX:ZABBIX的缩写,默认模式,监控网络和设备,大部分情况都是默认方式
SNMP:SNMP(Simple Network Management Protocol,简单网络管理协议)页面通常用于配置和管理SNMP设备或主机
JMX:专门监控java程序的
IPMI:管理服务器硬件,服务器的电源,温度,风扇速度等等
客户端配置
查看当前系统的登录人数设置不得超过三个超过三个则报警
配置文件
273
vim /etc/zabbix/zabbix_agent2.conf
297
监控脚本
脚本
脚本路径
cd /etc/zabbix/zabbix_agent2.d/
vim user_login.conf
UserParameter=login.user,who | wc -l
systemctl restart zabbix-agent2.service
重启服务
在服务端验证
客户端多开
页面
创建模版
Template Login User
创建应用集
搜索一下就可以看到之间创建的内容
点开
Login User
创建监控项
名字:Number of login.users
键值是在脚本中的名字:login.user’
应用集选刚才创建的然后测试一下
测试
成功即可添加
创建触发器
Number of login.users is greater then 3
添加表达式
添加即可
图形
创建图行
Number of login users
和主机进行关联
这样即可
测试报警 说明添加成功
设置发送邮件
这里的密码需要去邮箱设置
进入qq邮箱设置
默认
这个授权码就是密码需要发送一条短信
用户设置
添加完要更新
动作
添加你要报警的动作
测试是否可以正常收到邮件
客户端安装nginx
修改nginx配置文件
yum -y install nginx
location /nginx_status {
stub_status on;
access_log off;
}
重启
nginx -t
systemctl restart nginx.service
添加脚本
vim test-nginx.sh
在opt目录下创建脚本
vim test-nginx.sh
#!/bin/bash
#Description:Automated monitoring nginx performance and process nginx_status scripts
HOST="localhost"
PORT=80
stub_status="stub_status"
NGINX_COMMAND=$1
nginx_check() {
if [ -f /sbin/pidof ]; then
/sbin/pidof nginx | wc -w
else
ps aux | grep -v "grep" | grep -c "nginx:"
fi
}
nginx_active(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Active/ {print $NF}'
}
nginx_reading(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Reading/ {print $2}'
}
nginx_writing(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Writing/ {print $4}'
}
nginx_waiting(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk '/Waiting/ {print $6}'
}
nginx_accepts(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $1}'
}
nginx_handled(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $2}'
}
nginx_requests(){
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2> /dev/null | awk 'NR==3 {print $3}'
}
case $NGINX_COMMAND in
check)
nginx_check
;;
active)
nginx_active
;;
reading)
nginx_reading
;;
writing)
nginx_writing
;;
waiting)
nginx_waiting
;;
accepts)
nginx_accepts
;;
handled)
nginx_handled
;;
requests)
nginx_requests
;;
*)
echo $"USAGE:$0 {check|active|reading|writing|waiting|accepts|handled|requests}"
esac
赋权
[root@test5 zabbix_agent2.d]# systemctl restart nginx.service
[root@test5 zabbix_agent2.d]# cd /opt/
[root@test5 opt]# vim test-nginx.sh
[root@test5 opt]# chmod 777 test-nginx.sh
[root@test5 opt]# cd /etc/zabbix/zabbix_agent2.d/
[root@test5 zabbix_agent2.d]# ls
user_login.conf
[root@test5 zabbix_agent2.d]# vim nginx_test.conf
[root@test5 zabbix_agent2.d]#
UserParameter=nginx.status[*],/opt/test-nginx.sh $1
设置完后重启服务
服务端测试监控状态
客户端:systemctl restart zabbix-agent2.service
服务端:[root@test4 yum.repos.d]# zabbix_get -s '20.0.0.14' -p 10050 -k 'nginx.status[check]'
回到页面服务新建模版
Template Nginx Status
然后创建一个应用集
Nginx status
创建监控项
名称:Nginx is running
键值:nginx.status[check]
再测试一下 然后即可添加
然后创建触发器
Nginx is down
添加图形化界面
去主机创建模版
更新即可
查看即可看到添加监控的Nginx
把Nginx也添加到邮件服务中
更新即可
测试是否能收到邮箱
暂停Nginx服务
systemctl stop nginx.service
可以收到 说明成功
重启服务即可