Zabbixcompleteworks之Zabbix基础安装配置

2023年 7月 15日 98.3k 0

我花了一点时间整理了一套zabbix的安装脚本,便于部署和安装。它包括了zabbix-server,zabbix-agent的安装,初始化配置,在4.0之后加入了docker-compose,随后的server端都采用了docker安装。在最新的更新中,引入了elasticsearch:6.1.4。

git地址:https://github.com/marksugar/zabbix-complete-works

如果你喜欢这个项目,你可以在github上的zabbix-complete-works右上角点击 ♥ Star或者Fork.

我使用了一套docker-compose来编排server端,对于zabbix-agent我使用脚本安装。

docker和docker-compose安装参考-docker官网的安装方式 And - docker-compose安装参考docker-compose官网的安装方式

  • 先睹为快

在zabbix最近的几个版本中的Graph绘图功能我非常讨喜,大致是这样的20190422.png

这样以来,我就可以在 一张图里面看到自定义一个组,或者一部分机器和某个items组成的一张图,这是非常有效的20190422-1.png

zabbix-server

使用最新的4.2稳定版本,引入了elasticsearch,但是对于elasticsearch功能处于开发阶段,支持的版本有限,我这里使用的是6.1.4。我在此主要介绍zabbix的参数,因为这里使用的是docker,如果你要快速了解和安装,那么很有必要了解的。参考zabbix-complete-works项目的docker-compose.yaml文件

zabbix/zabbix-server-mysql:alpine-4.2-latest

根据以往的使用方式,将数据保存在本地

    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /etc/timezone:/etc/timezone:ro
     - /data/zabbix/zbx_env/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:ro
     - /data/zabbix/zbx_env/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts:ro
     - /data/zabbix/zbx_env/var/lib/zabbix/modules:/var/lib/zabbix/modules:ro
     - /data/zabbix/zbx_env/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro
     - /data/zabbix/zbx_env/var/lib/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys:ro
     - /data/zabbix/zbx_env/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro
     - /data/zabbix/zbx_env/var/lib/zabbix/snmptraps:/var/lib/zabbix/snmptraps:rw

环境变量

    environment:
     - DB_SERVER_HOST=127.0.0.1
     - MYSQL_DATABASE=zabbix
     - MYSQL_USER=zabbix
     - MYSQL_PASSWORD=password
     - MYSQL_ROOT_PASSWORD=abc123
     - ZBX_HISTORYSTORAGEURL=http://127.0.0.1:9200 # elasticsearch
     - ZBX_HISTORYSTORAGETYPES=dbl,uint,str,log,text # stor add elasticsearch type
     - DebugLevel=5
     - HistoryStorageDateIndex=1
     - ZBX_STARTDISCOVERERS=10

这里的环境变量对应zabbix-server.conf的配置参数,只不过在前面加上了ZBX_而已

注意

1,这里提供了MYSQL_ROOT_PASSWORD是数据库root的密码。但这里提供了root密码后,zabbix-server会自动创建用户以及导入sql,请观察日志查看是否有报错产生。

2,这里使用了elasticsearch,根据官网的文档,在server配置后,还需要修改web断的配置文件

     - ZBX_HISTORYSTORAGEURL=http://127.0.0.1:9200 # elasticsearch
     - ZBX_HISTORYSTORAGETYPES=dbl,uint,str,log,text

zabbix/zabbix-web-nginx-mysql:alpine-4.2-latest

环境变量

    environment:
     - DB_SERVER_HOST=127.0.0.1
     - MYSQL_DATABASE=zabbix
     - MYSQL_USER=zabbix
     - MYSQL_PASSWORD=password
     - ZBX_SERVER_HOST=127.0.0.1
     - ZBX_HISTORYSTORAGEURL=http://127.0.0.1:9200
     - ZBX_HISTORYSTORAGETYPES=['dbl','uint','str', 'text', 'log'] # uint,dbl,str,log,text

其中,提供在Zabbix-server环境变量中的密码,也就是web链接数据库的密码。而关于elasticsearch的配置需要和server相匹配。最终这里的变量会被替换到容器中的配置文件中。

     - ZBX_HISTORYSTORAGEURL=http://127.0.0.1:9200
     - ZBX_HISTORYSTORAGETYPES=['dbl','uint','str', 'text', 'log']
  • 快速安装
mkdir /data/zabbix -p
curl -Lk https://raw.githubusercontent.com/marksugar/zabbix-complete-works/master/zabbix_server/graphfont.TTF -o /data/zabbix/graphfont.ttf
wget https://raw.githubusercontent.com/marksugar/zabbix-complete-works/master/zabbix_server/docker_zabbix_server/docker-compose.yaml
docker-compose -f docker-compose.yaml up -d

> elasticsearch

你需要注意权限问题,如本示例docker-compose中需要授权: chown -R 1000.1000 /data/elasticsearch/

我整理了索引文件,执行创建索引即可(创建索引尤为重要),你也可以参考官网文档

正常情况下你将看到如下信息:

$ curl http://127.0.0.1:9200/_cat/indices?v
health status index                       uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   str                         MQWM2bNNRzOvBywM7ne-lw   5   1          0            0      1.1kb          1.1kb
yellow open   .monitoring-es-6-2019.04.20 tIfs0MkNQUCI4YuEHRmQ6g   1   1       1926          208    901.6kb        901.6kb
yellow open   dbl                         Y0992hqaR8KTin9iXKsljQ   5   1          0            0      1.1kb          1.1kb
yellow open   text                        s2XMyJtdQQ27b9rS3nWVfg   5   1          0            0      1.1kb          1.1kb
yellow open   log                         MAysNczpSKGZbjfjJXBvTg   5   1          0            0      1.1kb          1.1kb
yellow open   uint                        JA_8kyXlSLqawyHzo28Ggw   5   1          0            0      1.1kb          1.1kb

zabbix-agent

  • 快速部署
curl -Lk https://raw.githubusercontent.com/marksugar/zabbix-complete-works/master/zabbix_agent/install-agentd.sh|bash -s local IPADDR 

在zabbix-agent的附加脚本中监控的默认项体现如下:

  • /root/.ssh/authorized_keys
  • /etc/passwd
  • /etc/zabbix/zabbix_agentd.conf
  • OOM
  • iptables
  • 磁盘io
  • tcp
  • nginx和php-fpm
  • mariadb-galera

其中配置文件和脚本被打包在一个[zabbix_agent_status.tar.gz包中

自动发现

参考自动发现基于zabbix4.2 zabbix Discovery 教程

阅读更多

  • zabbix监控教程
  • docker教程
  • zabbix-complete-works
  • linuxea:zabbix4.2新功能之TimescaleDB数据源测试

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论