1.安装

#cente7
rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

 

2.安装数据库并创建库,导入数据文件

#yum -c /etc/yum.conf --installroot=/application --releasever=/ install mariadb-server
yum install -y mariadb-server
systemctl enable mariadb.service
systemctl start mariadb.service
mysql -uroot -p

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123456'; mysql> FLUSH PRIVILEGES;mysql> quit;zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix

3.编辑

vim /etc/zabbix/zabbix_server.conf 
#DBPassword= DBPassword=123465 

vim /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga  

php_value date.timezone Asia/Shanghai  
vim /etc/httpd/conf/httpd.conf   

#ServerName www.example.com:80  
ServerName 127.0.0.1:80

4.启动

systemctl enable httpd.service

5.访问

http://ip/zabbix

 

6.SNMP采集

$yum -y install net-snmp net-snmp-libs net-snmp-utils

$cd /etc/snmp/

$cp snmpd.conf snmpd.conf.bak

$vim snmpd.conf
团体名称:
#       sec.name  source          community
---com2sec   admin    default      admin

---# Second, map the security name into a group name:
group   admin  v2c          admin

---权限设置增加view admin included .1 80权限配置:
---#view    systemview    included   .1.3.6.1.2.1.25.1.1
view admin included .1 80

---#       group          context sec.model sec.level prefix read   write  notif
access  admin ""      any       noauth    exact  admin admin none

$systemctl start snmpd
查看UDP 161端口是否启动

$snmpget -v2c -c admin 192.168.1.x.x .1.3.6.1.4.1.2021.10.1.3.2
$snmpwalk -v2c -c admin 192.168.1.x.x .1.3.6.1.4.1.2021.10.1.3

设置宏{$SNMP_COMMUNITY}  admin

windwos中复制个字体,如微软雅黑。

进入 /usr/share/fonts/dejavu/

替换掉 DejaVuSans.ttf

设置报警

1.设置邮箱

2.报警媒介

3.报警动作


8.自定义监控项

添加用户自定义参数:

UserParameter=key.name,curl -s "/nginx-status" |grep 'Active'|awk '{print $NF}'

客户端打开:Include=/etc/zabbix/zabbix_agentd.d/*.conf

打开支持特殊字符:UnsafeUserParameters=1

监控Nginx是否存活

第一步:创建Agent采集方法

$curl -s --head http://127.0.0.1/ |grep  "200 OK"|wc -l
$vim /etc/zabbix/zabbix_agentd.conf/zabbix-nginx.conf
UserParameter=nginx-alive,curl -s --head http://127.0.0.1/ |grep  "200 OK"|wc -l

$systemctl restart zabbix-agent

#服务端上执行检测是否找到值
$zabbix_get -s 192.168.1.230 -p 10050 -k "nginx-alive"

第二步:创建监控项

监控项名称:nginx-alive键值:nginx-alive

第三步:创建触发器发送报警

#配置--主机--创建触发器名称:Nginx is Down添加表达式--找到刚创建的监控项--功能(最后的T值)

{Jump_Server:nginx-alive.last(0)}=0描述:如果返回值为0,说明NGINX挂了

9.WINDOWS监控

性能监视器

typeperf -qx
zabbix_agen.exe --installzabbix_agent.exe --start
编辑 zabbix_agent.conf
Server=192.x.x.x

监控模板:PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
#服务端测试是否获取到值zabbix_get -s 192.1.1.x perf_counter["\Process(ldle)\%Processor Time"]

#成功获取值的后,监控项Key值为perf_counter["\Process(ldle)\%Processor Time"]

1、zabbix_agent.conf主机名:Hostname 需要与实际主机名一致。


2、服务端添加主机必须与当前主机名一直


服务端打开:HostnameItem则自动获取主机名

主动监控模板,配置-模板-克隆-去掉链接的模板-监控项-批量更改监控类型-主动模式(Active)


11.zabbix_proxy 安装配置

yum install -y zabbix-proxy-mypsql  mariadb mariadb-server

  #数据库安全设置
mysql_secure_installation
#创建数据库
create database zabbix_proxy charachter set utf8 collate utf8_bin;
#创建数据库帐号
grant all on zabbix_proxy.* to zabbix_proxy@192.168.1.x.x identified by 'password';

#查看初始化的数据库
rpm -ql zabbix-proxy-mysql
/usr/share/doc/zabbix-proxy-mysql-x.x/schema.sql.gz

#导入数据库
zcat schema.sql.gz|mysql -h 192.168.x.x -uzabbix_proxy -ppassword  zabbix_proxy

#配置
vim /etc/zabbix/zabbix_proxy.conf 
DBHost=192.168.x.x
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=password

#启动
systemctl start zabbix-proxy

#查看端口10051是否开启。服务端创建 gent代理程序

12.zabbix生成集群

 

13.JMX监控(使用Zabbix Java Gateway代理)

#安装
yum install -y zabbix-java-gateway java-1.8.0
#配置
vim /etc/zabbix/zabbix_java_gateway.conf 
#启动
systemctl start zabbix-java-gateway.service
#查看端口10052
netstat -lntup|grep 10052
#修改Server代理地址
vim /etc/zabbix/zabbix_server.conf 
JavaGateway=192.168.1.xx  #安装javaGateay的主机  
StartJavaPollers=5   #修改监控进程数

#设置Java Gateway地址
#重启zabbix server

  JMX三种类型:

  • 1.无密码认证

  • 2.用户名密码认证

  • 3. ssl

[root@linux-node2 ~]# cd /usr/local/src
[root@linux-node2 src]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz
[root@linux-node2 src]# tar zxf apache-tomcat-8.0.36.tar.gz 
[root@linux-node2 src]# mv apache-tomcat-8.0.36 /usr/local/
[root@linux-node2 src]# ln -s /usr/local/apache-tomcat-8.0.36/ /usr/local/tomcat
[root@linux-node2 src]# /usr/local/tomcat/bin/startup.sh

开启jmx远程监控监听8888端口,允许192.168.x.x连接

[root@linux-node2 ~]# vim /usr/local/tomcat/bin/catalina.sh   CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote  -Dcom.sun.management.jmxremote.port=8888  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false  -Djava.rmi.server.hostname=192.168.x.x"    

[root@linux-node2 ~]# /usr/local/tomcat/bin/shutdown.sh   
[root@linux-node2 ~]# /usr/local/tomcat/bin/startup.sh

14.监控MySQL

手工监控是存活状态

mysqladminh -u root -p123456 ping |grep -c alive
值1活着
值0挂了

通过插件监控

#官网:http://www.percona.com/
需要有PHP环境
yum install -y php php-mysql

yum install https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm

yum install percona-zabbix-templates

rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm

#查看ss_get_mysql_status.php userparameter_percona_mysql.conf 监控脚本
[root@web1 zabbix]# rpm -ql percona-zabbix-templates

#导入模板后
#zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml

cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

#重启agent
/etc/init.d/zabbix-agent restart

#创建ss_get_mysql_stats.php.cnf
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 's3cretxxxxxxxxx';

#测试
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg405647

#一些权限问题获取新值问题
chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt

15.zabbix性能优化

推荐Tidb

https://www.unixhot.com/article/67

当我们在生产上部署Zabbix进行企业级监控后,随着监控规模的扩大和时间的变化,MySQL逐渐会成为Zabbix的瓶颈,很多大的企业开始着手进行MySQL表分区、数据清理与优化,甚至来实现Zabbix数据库的分库分表。这些都让运维管理的复杂度大大增加。

TiDB介绍    TiDB 是一个分布式 NewSQL 数据库。支持水平扩展、高可用、ACID 事务、SQL 等特性。同时 TiDB 还支持 MySQL 语法和 MySQL 协议。    TiDB项目地址:      https://github.com/pingcap/tidb    

TiDB项目架构:

TiDB部署    详细的内容请看github上的中文手册。来了解并部署TiDB。https://github.com/pingcap/docs-cn 这里不会去介绍Zabbix Server的安装步骤,有几个注意事项需要说明下。        1.注意:在Tidb授权的时候,不能直接使用grant授权并设置密码。应该使用下面的方式。

 

zcat create.sql.gz | mysql -h 192.168.99.x -P 4000 -uzabbix -pzabbix zabbix

 

官方是这么介绍的:TiDB 实现了 Google F1 的在线 Schema 变更算法(具体参见 F1 论文 和我们的一篇 Blog)。 一般情况下,DDL 并不是一个频繁的操作,我们首先要保证的是数据的一致性以及线上业务不受影响。一个完整的 DDL 过程会有 2 到 5 个阶段(取决于语句类型),每个阶段至少会执行 2lease 时间,假设 lease 设为 1分钟,对于 Drop Table 语句(需要两个阶段),会执行 22*1 = 4 分钟。除此之外,DDL 的时间还取决其他的条件,比如做 Add Index 操作时,表中已有的数据量是影响 DDL 时间的主要因素。我们也了解过 Google 内部在 F1 上是如何做 DDL,一般是提交给 DBA,DBA 再通过专用的工具执行,执行的时间会很长。

16.zabbix自动化

  • 自动化安装Agent

  • 自动添加主机(自动注册)

Server:配置-动作-事件源--自动注册-创建

条件:Host metadata like  linux

动作:Aadd host 添加模板等

Agent:

配置 HostMetadataItem=system.uname

API:pyzabbix

学习模块:python基础  requests  Json处理 mysql 增删改查