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 增删改查
停留在世界边缘,与之惜别