Zabbix深度安装

      Zabbix深度安装

Zabbix版本为(2.4.8)

一、安装服务器端

官方安装参考:https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

1、安装zabbix-release包
[root@linux-node1 ~]# mkdir -p /home/oldboy/tools
 
[root@linux-node1 ~]# cd /home/oldboy/tools
 
[root@linux-node1 tools]# wget -q http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
 
[root@linux-node1 tools]# ls -lh zabbix-release-2.4-1.el6.noarch.rpm
 
-rw-r–r– 1 root root 12K 9月 11 2014 zabbix-release-2.4-1.el6.noarch.rpm
 
[root@linux-node1 tools]# rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
 
warning: zabbix-release-2.4-1.el6.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
 
Preparing… (1########################################### [100%]
 
1:zabbix-release ( ########################################### [100%]
 
######zabbix-release包安装结果
 
[root@linux-node1 tools]# rpm -ql zabbix-release
 
/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
 
/etc/yum.repos.d/zabbix.repo
 
/usr/share/doc/zabbix-release-2.4
 
/usr/share/doc/zabbix-release-2.4/GPL
 
[root@linux-node1 tools]# ll /etc/yum.repos.d/zabbix.repo
 
-rw-r–r– 1 root root 401 9月 11 2014 /etc/yum.repos.d/zabbix.repo
2、开始安装Zabbix

1.保留yum安装的rpm包

[root@linux-node1 tools]# sed -i ‘s#keepcache=1#keepcache=0#g’ /etc/yum.conf
 
[root@linux-node1 tools]# grep keepcache /etc/yum.conf
 
keepcache=0

2.安装zabbix

yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相关
 
yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web界面环境
 
yum -y install zabbix-agent #<== ZABBIX客户端
 
yum -y install mysql-server mysql #<==MySQL客户端与服务端
 
yum -y install zabbix-get #<==zabbix命令行工具
3、配置 Zabbix服务相关
  1. 配置并且启动MySQL
[root@linux-node1 tools]# \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
 
[root@linux-node1 tools]# vi /etc/my.cn

然后在[mysqld](第26行)标签下增加如下三行后保存

[mysqld]
 
character-set-server = utf8
 
init-connect = ‘SET NAMES utf8’
 
collation-server = utf8_general_ci
  1. 启动zabbix存储数据的数据库MySQL 
    [root@linux-node1 tools]# /etc/init.d/mysqld start
……
Please report any problems with the /usr/bin/mysqlbug script!
[确定]
 
正在启动 mysqld:
[确定]
  1. 初始化数据库
[root@linux-node1 ~]# mysql -e "create database zabbix character set utf8 collate utf8_bin;"
 
[root@linux-node1 ~]# mysql -e "grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;"
 
[root@linux-node1 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.6/create
 
[root@linux-node1 create]# mysql zabbix<schema.sql
 
[root@linux-node1 create]# mysql zabbix<images.sql
 
[root@linux-node1 create]# mysql zabbix<data.sql
 
[root@linux-node1 create]# mysqladmin -uroot password oldboy
  1. 初始化apache服务
[root@linux-node1 create]# sed -i 's#\# php_value date.timezone Europe/Riga#php_value date.timezone Asia/Shanghai#g' /etc/httpd/conf.d/zabbix.conf
 
[root@linux-node1 create]# grep Shanghai /etc/httpd/conf.d/zabbix.conf
 
php_value date.timezone Asia/Shanghai
  1. 修改前后对比 
    [root@linux-node1 create]# diff /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.oldboy.ori
65d64
< ### Option: DBHost
 
72,73c71
 
< DBHost=localhost
 
<
 
> # DBHost=localhost
 
106c104
 
< DBPassword=zabbix
 
> # DBPassword=
  1. 启动zabbix server及web服务
[root@linux-node1 create]# /etc/init.d/zabbix-server start
Starting Zabbix server: [确定]
[root@linux-node1 create]# lsof -i :10051|wc -l
55
[root@linux-node1 create]# /etc/init.d/httpd start
 
正在启动 httpd:httpd: apr_sockaddr_info_get() failed for linux-node1.example.com
 
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[确定]
[root@linux-node1 create]# lsof -i :80|wc -l
10

到此,zabbix server端的命令行配置告一段落了,接下来就是Web界面里管理了,使用Web管理对我这样老鸟实在不习惯,还是喜欢Nagios批量自动化脚本管理,更快,更舒服。

二、使用zabbix

自定义监控项:

1、添加用户自定义参数

cat /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=nginx.active,/usr/bin/curl -s "http://192.168.164.131:8080/nginx-status" |grep 'Active'|awk '{print $NF}'

2、重启zabbix-agent

3、在server端测试获取

zabbix_get -s 192.168.164.131 -p 10050 -k "nginx.active"

4、在web界面创建item

自定义图形:
自定义screen:
自定义map

1、网络监控 Smokeping部署 
2、zabbix乱点 
3、下次分享 Piwik 流量分析系统

Zabbix生产案例

1.项目规划

主机分组:

  • 交换机 
    • Nginx
    • Tomcat
    • MySQL

监控识别对象:

-使用SNMP监控交换机

  • 使用IPMI监控服务器硬件
  • 使用Agent监控服务器
  • 使用JMX监控Java
  • 监控MySQL
  • 监控Web状态
  • 监控Nginx状态

SNMP监控: 
1.1.交换机开启snmp 
1.2在zabbix上添加监控 
1.3关联监控模板 
IPMI: 
建议。使用自定义item,本地执行ipmitool命令来获取数据

JMX:(使用Zabbix Java Gateway代理)

  • 1.安装yum install -y zabbix-java-gateway java-1.8.0
  • 2.配置vim /etc/zabbix/zabbix_java_gateway.conf
  • 3.启动systemctl start zabbix-java-gateway.service
  • 4.端口 进程
  • 5.[root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf
  • 设置Java Gateway地址
  • 6.重启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 ^C
[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远程监控

[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.56.12"
 
[root@linux-node2 ~]# /usr/local/tomcat/bin/shutdown.sh
[root@linux-node2 ~]# /usr/local/tomcat/bin/startup.sh

手动检测监控状态

[root@linux-node1 ~]# yum install -y zabbix-get

1.开启Nginx监控 
2.编写脚本来进行数据采集。 
3.设置用户自定义参数 
4.重启zabbix-agent 
5.添加item 
6.创建图形 
7.创建触发器 
8.创建模板

1.脚本:
2.上传到/etc/zabbix/zabbix_agentd.d
3.修改agent配置Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@linux-node1 zabbix_agentd.d]# chmod +x zabbix_linux_plugin.sh
[root@linux-node1 zabbix_agentd.d]# ./zabbix_linux_plugin.sh
Usage: ./zabbix_linux_plugin.sh {tcp_status key|memcached_status key|redis_status key|nginx_status key}
 
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
 
[root@linux-node1 zabbix_agentd.d]# cat linux.conf
UserParameter=linux_status[*],/etc/zabbix/zabbix_agentd.d/zabbix_linux_plugin.sh "$1" "$2" "$3"
[root@linux-node1 zabbix_agentd.d]# systemctl restart zabbix-agent
 
[root@linux-node1 ~]# zabbix_get -s 192.168.56.11 -k linux_status[nginx_status,8080,active]
1

自定义告警脚本:

1.放在cd /usr/lib/zabbix/alertscripts
2.要支持三个参数 1 收件人 2.主题 3,内容
3.执行权限
4.Web界面添加
5.修改Actions

使用Percona监控插件监控MySQL

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
 
https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html#installation-instructions
 
yum install percona-zabbix-templates php php-mysql
 
1.php脚本用来数据采集
2.shell 调用这个php
3.zabbix配置文件
4.zabbix模板文件
 
创建zabbix监控专用用户。
 
 
Zabbix Proxy
zabbix-server ->> zabbix proxy ->> zabbix agent
 
1.yum install -y zabbix-proxy zabbix-proxy-mysql mariadb-server
2.systenctk start nariadb
3.进入数据库 create database zabbix_proxy character set utf8;
4.给权限 grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix_proxy';
5.cd /usr/share/doc/zabbix-proxy-mysql-3.0.22
6.zcat schema.sql.gz |mysql -uzabbix_proxy -p zabbix_proxy

自动化监控 
1、自动监控 
1.1 zabbix agent自动添加 
2、主动发现 
2.1 自动发现Discover 
2.2 zabbix api

curl -s -X POST -H 'Content-Type:application/json' -d '
{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1
}' http://192.168.164.133/zabbix/api_jsonrpc.php| python -m json.tool

curl -s -X POST -H ‘Content-Type:application/json’ -d ’ 

“jsonrpc”: “2.0”, 
“method”: “host.get”, 
“params”: { 
“output”: [“hostid”] 
}, 
“auth”: “c9d7b319e48b6d9ffc2d1f33f9c7c877”, 
“id”: 1 
}’ http://192.168.164.133/zabbix/api_jsonrpc.php| python -m json.tool

posted @ 2018-10-28 09:23  Jacob先生  阅读(352)  评论(0编辑  收藏  举报