赞
踩
hostnamectl set-hostname zabbix_proxy
bash
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum -y install zabbix-proxy-mysql
yum -y install mysql-community-server #下载5.7版本的Mysql
systemctl start mysqld
修改密码策略
vim /etc/my.cnf
validate-password=OFF
grep "password" /var/log/mysqld.log
重启mysqld
systemctl restart mysqld
修改密码
mysqladmin -uroot -p'Tos.sJpXt9tz' password '123'
mysql -p'123'
create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123';
grant all on zabbix_proxy.* to 'zabbix'@'%' identified by '123';
flush privileges;
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p123 zabbix_proxy
vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=1 将0主动模式改为被动模式1
Server=Server端的ip 因为Proxy是代理端口所以要配Server端
ServerPort=10051 根据个人需要修改,一般可以不改,默认端口是10051,要实现转发的话使用这个选项(zabbix server)
Hostname=Proxy的主机名
ListenPort=10051 默认Port监听端口
SourceIP=proxy端IP 要使用那个ip去agent端去取数据
DBName=数据库库名 proxy端数据库库名
DBUser=授权的数据库用户
DBPassword=这个用户的数据库密码
DataSenderFrequency=1 #每一秒向Server端发送一次数据
ConfigFrequency=10 #多长时间去服务端拖一次有自己监控的配置
重启服务
systemctl restart zabbix-proxy
给Server添加代理
管理>agent代理程序>创建代理>根据刚才的设置选择被动式>ip地址输入Proxy端ip>端口10051>添加
vim /etc/zabbix/zabbix_agentd.conf
Server=proxy端ip
ServerActive=proxy端ip
Hostname=agent主机名
重启服务
systemctl restart zabbix-agent
配置>主机>创建主机>客户端地址选择agent端的ip>代理程序监测选择设置的Proxy
首先更改Nginx的子配置文件打开监控选项 vim /etc/nginx/conf.d/*.conf server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.hml; } location /nginx-status{ stub_status on; access_log /var/log/nginx/access.log; } } 检查有没有这个模块:nginx -V 如果没有此模块,需要重新安装,编译命令如下:./configure –with-http_stub_status_module nginx -s reload
curl 监控nginx的IP/nginx-status
返回:
Active connections: 6
server accepts handled requests
89508 89508 173945
Reading: 3 Writing: 2 Waiting:1
Active connections: 6 =当前连接数
accepts(已经接受的请求数 ) handled(已处理请求数) requests(总请求数) Dropped(已丢弃,计算得出)
89508 =已经接受的请求数 89508 =已经处理请求数 173945 =总请求数
Reading: 3 =当前正在读的请求 Writing: 2 =当前正在写的请求 Waiting:1 =当前正在等待的请求
vim /etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=跟监控项有关系的自定键值名,curl -s 监控nginx的IP/nginx-status |awk 'NR==1{print $NF}'
UserParameter=键值名,curl -s 监控nginx的IP/nginx-status |awk 截取
重启agent端:systemctl restart zabbix-agent
在Server端测试时选择你要监控的那条数据:zabbix_get -s 10.12.153.224 -p 10050 -k "memory.haha[Buffers]"
zabbix_get -s agent端ip -p 10050 -k "键值名"
配置>模板>创建模板>创建监控项>键值选自定义键值>那个有Nginx给链接新模板>
查看Nginx并发进程数:ps -ef | grep nginx | wc -l
查看Web服务器TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LISTEN:侦听来自远方的TCPport的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有不论什么连接状态
商业版的 nginx plus 通过他的 ngx_http_status_module 提供了比 nginx 更多的监控指标,可以参看 http://demo.nginx.com/status.html
nginx 的日志 中可以记录很多有价值的信息,通过分析 日志,可以收集到很多指标 python 编写的 linux 工具 ngxtop 就实现了对 日志的分析功能 1.制作nginx的日志切割,每天凌晨切割并压缩。 PV:PV([访问量](https://www.baidu.com/s?wd=%E8%AE%BF%E9%97%AE%E9%87%8F&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)): 即Page View, 即页面浏览量或[点击量](https://www.baidu.com/s?wd=%E7%82%B9%E5%87%BB%E9%87%8F&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao),用户每次刷新即被计算一次。 UV:UV(独立访客):即Unique Visitor,访问您网站的一台[电脑客户端](https://www.baidu.com/s?wd=%E7%94%B5%E8%84%91%E5%AE%A2%E6%88%B7%E7%AB%AF&tn=SE_PcZhidaonwhc_ngpagmjz&rsv_dl=gh_pc_zhidao)为一个访客。00:00-24:00内相同的客户端只被计算一次。 #sodu提权给/etc/sudoers添加这个用户 visudo 或者 vim /etc/sudoers 101行添加 zabbix的用户名 ALL=(ALL) NOPASSWD: ALL vim /etc/zabbix/zabbix_agentd.conf 93行 EnableRemoteCommands=1 101行 LogRemoteCommands=1 重启服务: systemctl restart zabbix-agent 1.根据访问IP统计UV sudo awk '{print $1}' access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV sudo awk '{print $7}' access.log|wc -l 3.查询访问最频繁的URL sudo awk '{print $7}' access.log|sort | uniq -c |sort -n -k 1 -r|more 4.查询访问最频繁的IP sudo awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|more 5.查询访问最频繁的前10的IP sudo awk '{print $1}' access.log|sort | uniq -c |sort -n -k 1 -r|head -n 10
mysql -uroot -p'123' -e 'show slave status\G'
mysql -uroot -p'123' -e 'show slave status\G' 2>/dev/null |grep "Slave_IO_Running" |awk '{print $2}'
mysql -uroot -p'123' -e 'show slave status\G' 2>/dev/null |grep "Slave_SQL_Running" |awk 'NR==1{print $2}'
#!/bin/bash
IO=$(mysql -uroot -p'123' -e 'show slave status\G' 2>/dev/null |grep "Slave_IO_Running" |awk '{print $2}')
SQL=$(mysql -uroot -p'123' -e 'show slave status\G' 2>/dev/null |grep "Slave_SQL_Running" |awk 'NR==1{print $2}')
if [ "$SQL" = "Yes" -a "$IO" = "Yes" ] #判断这两个变量是否等于Yes
then
echo 1 #如果等于Yes那就打印1
else
echo 0 #否则就打印0
fi
chmod +x /etc/zabbix/zabbix_agentd.d/脚本名
vim /etc/zabbix/zabbix_agentd.d/*.conf
UserParameter=自定义键值名,/etc/zabbix/zabbix_agentd.d/*.sh
UserParameter=自定义键值名,脚本路径
systemctl restart zabbix-agent
zabbix_get -s agent端ip -p 10050 -k "键值名"
智能告警平台>集成>监控工具>ZABBIX>设置名称并保存获取应用key>
1,在配置文件中查找这个可执行脚本的目录
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
2,cd /usr/lib/zabbix/alertscripts
3,wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.3.tar.gz
4,tar -xzf ca_zabbix_release-4.0.3.tar.gz
5,cd cloudalert/bin
6,bash install.sh d08883958947490bbd6b51ed7369c60f #应用key
7,输入Server端地址:http://ip
8,输入账号密码:Admin zabbix
类型选择Cloud Alert Media 随便写一个收件人
配置>分派策略>分派人发送给那个用户>通知测略>新建>通知对象选择
配置>动作>触发器动作>选择需要告警的主机>操作>发送消息>发送用户选择>Cloud Alert User>仅送到>Cloud Alert Media>恢复操作一样
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。