cat /etc/redhat-releasehtml
uname -rpython
getenforcemysql
systemctl status firewalld.servicenginx
hostname -Igit
tail -1 /etc/hostsgithub
#192.168.19.200 repo.zabbix.com mirrors.aliyun.comweb
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpmsql
yum install zabbix-server-mysql zabbix-web-mysqlshell
yum -y install mariadb-server
systemctl start mariadb.service
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
exit
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
systemctl start zabbix-server
systemctl start httpd
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-agent
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service
yum install zabbix-get
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
cat /etc/redhat-release
uname -r
getenforce
systemctl status firewalld.service
hostname -I
tail -1 /etc/hosts
#192.168.19.200 repo.zabbix.com mirrors.aliyun.com
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql
yum -y install mariadb-server
systemctl start mariadb.service
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
exit
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
systemctl start zabbix-server
systemctl start httpd
ip/zabbix
yum install zabbix-agent
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service
yum install zabbix-get
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-agent
sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service
#服务端测试
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
可刷新查看
没变绿查看模板是否添加上了
#服务端操做:
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
刷新
http://c.onealert.com/ucid/registerForABTest/register.jsp
实际需求:公司已经有了100台服务器,如今须要使用zabbix所有监控起来。
1. 先出个方案(规划)
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加100台机器
方法1:使用克隆的方式
方法2:自动注册和自动发现
方法3:调用zabbix api接口 curl 、python
开发本身的运维平台兼容zabbix的通道
curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"
curl -i -X POST -H 'Content-Type:application/json' -d'
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "6a450a8fc3dce71fd310cfe338746578"
}' "http://10.0.0.61/zabbix/api_jsonrpc.php"
服务监控,url监控等特殊监控:自定义监控
2. 具体的实施步骤
考试目标:使用zabbix将期中架构全部集群监控
具体内容:
1、硬件、系统、网络监控
全部集群节点(全部虚拟机)都监控上
交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)
snmp监控
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'
1
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'
0
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'
1
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'
0
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'
1
添加监控项
zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'
zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]
添加模板,监控项,图形等等
监控备份服务器,简单方法是监控rsync端口,若是有其余更佳方案能够说明;
方法1:监控873端口net.tcp.port[,873]
方法2:模拟推送拉取文件
监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,若是有其余更佳方案能够说明;
方法1:端口(经过111的rpc端口获取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其余更佳方案能够说明;
方法1:端口(经过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登陆
方法3:使用zabbix agent自带的模板及key
l 没有权限访问 key中添加用户密码
监控2台web服务器,简单方法监控80端口,若是有其余更佳方案能够说明;
方法1:端口(经过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测
监控URL地址来更精确的监控咱们的网站运行正常;
yum -y install nginx
echo ok >>/usr/share/nginx/html/check.html
浏览器测试 http://10.0.0.21/check.html
1) 建web场景
1) 步骤
1) 成功
1) 常见错误
步骤"监控check" [1之于1] 失败: Couldn't connect to server: Failed connect to 10.0.0.21:80; Connection refused
监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp
ntp 端口udp 123
监控Nginx的7种链接状态。
====cache01操做=============zabbix客户端
vim /etc/nginx/nginx.conf
……
location /status {
stub_status on;
access_log off;
}
……
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf
UserParameter=nginx_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}'
UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}'
UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}'
UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}'
UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}'
UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}'
UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}'
编辑后重启zabbix客户端
zabbix 服务端命令测试
zabbix web页面添加监控模板,将它们放在同一图形中
因为三种总的状态和实时状态相差巨大,因此应该分两图显示,再作成聚合图形,这样更加美观,直观。
web页面在zabbix服务端用zabbix给的键值测试
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.61 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.baidu.com]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.etiantian.org]'
1. 监控端口 netstat ss lsof ==》 wc -l
2. 监控进程 ps -ef|grep 进程|wc -l 试运行一下
3. 模拟客户端的使用方式监控服务端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
端口,进程,url监控也是你们都要的,全部zabbix也自带
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'
1
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'
0
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'
1
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'
0
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'
1
进程
zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'
zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]'
监控URL
cd /etc/zabbix/zabbix_agentd.d/
vim userparameter_login.conf
UserParameter=login-user,who|wc -l
systemctl restart zabbix-agent.service
systemctl restart zabbix-agent.service
zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。
需求:服务器登陆人数不超过3人,超过3人报警
自定义key能被server和agent承认
# 正确的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"
Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
# 没有登记的,自定义的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
ZBX_NOTSUPPORTED: Unsupported item key.
# 写错的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"
ZBX_NOTSUPPORTED: Unsupported item key.
语法:
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh
[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf
UserParameter=login-user,who|wc -l
UserParameter=login-user2,who|wc -l
UserParameter=login-user3,who|wc -l
# key名字要惟一,多个key以行为分割
[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service
# 在server检测
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
3
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"
3
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"
3
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"
ZBX_NOTSUPPORTED: Unsupported item key.
1.2.1 建立模板
Template Login User
1.2.2 建立应用集
给监控项分类
1.2.3 建立监控项
监控的内容
1.2.4 建立触发器
当监控项获取到的值 达到必定条件时 就触发报警
1.2.5 建立图形
1.2.6 主机关联模板
one It sm
http://c.onealert.com/ucid/login.jsp
[root@m01 ~]# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
### Option: AlertScriptsPath
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@m01 ~]# cd /usr/lib/zabbix/alertscripts
wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz
tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz
cd oneitsm/bin
bash install.sh d13ad820-fc56-2f53-df59-992a9fe3aad3
何时发邮件:当状态改变的时候才会发邮件
好--坏
坏--好
2.2安装后后多的四个东西,重装得删除这四样
最新数据
图形
聚合图形
幻灯片
https://github.com/zhangyao8/zabbix-community-repos
主机共享
https://github.com/zhangyao8/zabbix-community-repos
具体内容:
1、硬件、系统、网络监控
全部集群节点(全部虚拟机)都监控上
2、应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,若是有其余更佳方案能够说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,若是有其余更佳方案能够说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其余更佳方案能够说明;
4. 监控2台web服务器,简单方法监控80端口,若是有其余更佳方案能够说明;
5. 监控URL地址来更精确的监控咱们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
7. 监控Nginx的7种链接状态
自动发现:zabbix Server主动发现全部客户端,而后将客户端登记本身的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。
自动注册:zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)
被动模式:默认,都是站在agent的立场上说话,agent被server抓取数据
主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server
两种模式都是在agent上的配置文件配置的
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,Server=172.16.1.61 (完毕)
第三步:网页上配置自动发现规则
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,须要额外增长的配置
vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61
# Hostname=Zabbix server
HostnameItem=system.hostname
systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix
看日志
第三步:Server上作hosts解析
echo "172.16.1.21 cache01" >> /etc/hosts
第四步:网页上配置自动注册
主机没有添加上,等候时间
zabbix Server ===》 zabbix agent (只能同一个局域网监控)
分布式监控:
zabbix Server ===》 zabbix proxy ===》zabbix agent1 agent2 agent3 。。。
172.16.1.61 172.16.1.21 172.16.1.0/24
===》 zabbix proxy ===》zabbix agent4 agent5 agent6 。。。
zabbix Server(北京) ==》 zabbix proxy(每一个机房搭建) ==》 zabbix agent
122.71.240.233/172.16.1.61 122.71.241.11/172.16.2.21 172.16.2.0/24
环境
ZABBIX SERVER m01
zabbix proxy cache01
zabbix agent cache01
第一步:在代理机cache01安装zabbix proxy
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum -y install zabbix-proxy-mysql
第二步: 配置zabbix proxy,并在zabbix网页登记
zabbix proxy也须要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
# 安装数据库
yum -y install mariadb-server
systemctl start mariadb.service
#建库 建立用户受权
mysql
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
exit
# 导入数据库文件
zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
# 配置zabbix proxy链接数据库
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
systemctl start zabbix-proxy.service
sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf
systemctl start zabbix-proxy.service
第三步:agent 指向 proxy
[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.61
ServerActive=172.16.1.61
[root@cache01 ~]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf
[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.21
ServerActive=172.16.1.21
[root@cache01 ~]# systemctl restart zabbix-agent.service
tailf /var/log/zabbix/zabbix_proxy.log
小结:之前内容所有属于zabbix agent方式监控
错误:
有server运行时,启动proxy起不来,但命令行看不出,杀掉server,启动proxy
没法安装agent 不少前辈的监控软件均可以监控各类设备 都是经过snmp监控
snmp simple network manager protocol 简单网络管理协议
yum -y install net-snmp net-snmp-utils
配置snmp
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service
http://www.ttlsa.com/monitor/snmp-oid/ .1相关权限问题
使用SNMP
[root@db01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
# snmpwalk 相似 zabbix_get
# -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3
# -c public 指定暗号
# sysname 相似zabbix的key
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfNumber
IF-MIB::ifNumber.0 = INTEGER: 3
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
问题: