zabbix是什么
web界面提供的一种可视化的监控服务软件
以分布式的方式系统监控以及网络监控,硬件监控等等开源的软件
zabbix的架构
1、c/s模式 客户端和服务端,zabbix server服务端 zabbix agent 客户端
2、通过B/S B是浏览器 S服务端,通过浏览器可以直接访问服务器数据
zabbix的组件程序
1、zabbix server(作用) 通过一系列的组件SNMP,zabbix agent ,ping通过端口远程的监控客户端的数据,把数据收集到服务端进行展示,以及体现用户分析的界面(web)
2、zabbix agent 就是被监控的目标机器,把需要收集的数据以及自定义的监控项数据,发送给zabbix server
3、zabbix_proxy 代理服务器,是安装在监控的目标系统的软件组件,可以代替zabbix_server收集数据,然后由代理软件传送给服务端zabbix-server 减轻主服务器的压力
4、zabbix_get 可选组件,提供命令行的工具(zabbix的命令行)
5、zabbix_sender 可选组件,提供命令行的工具,可以将自定义数据发送到zabbix服务器,对于不直接由zabbix代理监控的数据或者从脚本来的数据,比较方便的
zabbix工作方式
工作流程图
被监控的对象
1、Agent 服务器,代理的方式,收集数据
2、SNMP 协议,和被监控对象进行通信
3、JMX 管理java的扩展程序和扩展应用
4、IPMI 监控系统的硬件信息
5、VMware 监控虚拟机的运行情况
6、APP nginx、httpd、mysql
zabbix-server 所有的监控收集数据都在主服务,主服务器监控和告警
zabbix-database 保存数据
zabbix-web 可视化操作界面
zabbix实验部署
两台虚拟机
20.0.0.11 服务端
20.0.0.12 客户端
关闭防火墙和安全机制
获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
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
zabbix-server-mysql
执行安装zabbix之后,使用mysql作为数据库后端
zabbix-agent
把主服务器加入监控当中
yum install -y centos-release-scl
centos-release-scl
SCL 基于rehhat centos系统软件安装使用的一种机制,可以是一个系统运行一个进程的不同版本,而且不会发生冲突
解决zabbix与其他web组件的兼容性
开启安装源
vim zabbix.repo
11行
enabled=1
安装web组件和Apache组件
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
可以安装zabbix的依赖环境PHP,以及mysql依赖环境,可以安装多个版本
安装所有的Apache组件(web组件),可以安装多个版本
Apache提供了所有的可兼容性的进程,确保zabbix的前端组件能够
安装数据库
yum -y install zabbix-mariadb.service
重启服务
systemctl restart mariadb.service
开机自启
systemctl enable mariadb.service
重置数据库
mysql_secure_installlation
都是y
登录mysql
mysql -uroot -p123456
创建zabbix库
create database zabbix character set utf8 collate utf8_bin;
查看库
show databases;
给权限
grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
刷新权限
flush privieges;
把数据导入zabbix-server
查看mysql的sql文件
rpm -ql zabbix-server-mysql
zcat /usr/share/doc/zabbix-server-mysql-5.0.39/create.sql.gz | mysql -uroot -p123456 zabbix
vim /etc/zabbix/zabbix_server.conf
124行
DBPassword=zabbix
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
25行
php_value[date.timezone] = Asia/Shanghai
启动 zabbix 相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-fpm
网页访问20.0.0.11/zabbix
server服务端端口 10050
Agent监控端端口 10051
默认的账号密码
Admin
zabbix
点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。
解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
修改 配置文件
vim /etc/zabbix/zabbix_agentd.conf
80行
Server=20.0.0.11
125行
ServerActive=20.0.0.11
136行
Hostname=host2
启动 zabbix-agentd
systemctl start zabbix-agentd
systemctl enable zabbix-agentd
客户端和服务端必须要做时间同步
客户端
安装 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all && yum makecache
yum install -y zabbix-agent2
修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
80行
Server=20.0.0.11
125行
ServerActive=20.0.0.11
136行
Hostname=host4
启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 43654/zabbix_agent2
在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get
zabbix_get -s '20.0.0.13' -p 10050 -k 'agent.ping'
zabbix_get -s '20.0.0.13' -p 10050 -k 'system.hostname'
添加客户端主机(点击创建)
添加主机完毕
自定义脚本监控
客户端
who | wc -l
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2
服务端验证新建的监控项
zabbix_get -s '20.0.0.13' -p 10050 -k 'login.user'
Web 页面创建自定义监控项模板
1、创建模板
2、创建应用集
3、创建监控项
4、创建触发器
5、创建图形
主机添加模版
设置邮件报警
密码这一项是打开qq邮箱--->设置---账号---打开这个POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务---生成授权码----复制授权码
菜单栏用户设置----报警媒介---添加
菜单栏配置---动作
监控nginx的状态
客户端
修改nginx的配置文件
cd /etc/nginx/conf.d
vim default.conf
server {
....
location /nginx_status {
stub_status on;
access_log off;
}
......
nginx -t
systemctl start nginx
vim test1_nginx.conf
UserParameter=nginx.status[*],/opt/host4-nginx.sh $1
cd /opt
vim /host4-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
服务端测试
zabbix_get -s '20.0.0.13' -p 10050 -k nginx.status[check]
Web 页面创建自定义监控项模板
1、创建模版
2、创建应用集
3、创建监控项
4、创建触发器
5、创建图形
主机和模版关联起来
关闭nginx服务
这边就会显示信息