zoukankan      html  css  js  c++  java
  • zabbix

    zabbix部署

    清华大学下载

    1.下载zabbix-agent (服务端)
    [root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm
    2.下载zabbix-server-mysql
    [root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.0-2.el7.x86_64.rpm
    3.下载zabbix-web
    [root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-4.0.0-2.el7.noarch.rpm
    下载zabbix-mysql
    [root@zabbix ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.0-2.el7.noarch.rpm
    

    官网下载

    1.安装仓库
    # rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    # yum clean all
    2.安装软件包
    # yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
    
    #一次不行就多试几次
    

    mysql数据库jinjia模板

    ### mysql配置文件jinjia模板
    vim /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    
    {% if ansible_fqdn == 'db01' %}
    server_id = 1
    {% else %}
    server_id = 2
    {% endif %}
    log-bin=mysql-bin
    character_set_server=utf8
    skip_name_resolve
    
    [mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    !includedir /etc/my.cnf.d
    
    

    zabbix服务端连接数据库配置文件jinjia

    [root@zabbix ~]# cat /etc/zabbix/zabbix_server.conf |egrep -v '^$|^#'
    
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_server.pid
    SocketDir=/var/run/zabbix
    DBHost={{ ansible_default_ipv4 }}
    DBName=zabbix
    DBUser=zabbix
    DBPassword=1
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    
    #DBHost只能是一个
    

    zabbix客户端配置文件jinjia

    [root@web01 ~]# cat /etc/zabbix/zabbix_agentd.conf |egrep -v '^$|^#'
    #可以被多个ip监控,中间用,隔开
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=172.16.1.71,10.0.0.71			
    ServerActive=172.16.1.71,10.0.0.71
    Hostname={{ ansible_fqdn }}
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    

    http服务(appche)zabbix.conf server

    [root@zabbix yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf 
    
    #
    # Zabbix monitoring system php web frontend
    #
    
    Alias /zabbix /usr/share/zabbix
    
    <Directory "/usr/share/zabbix">
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    
        <IfModule mod_php5.c>
            php_value max_execution_time 300
            php_value memory_limit 128M
            php_value post_max_size 16M
            php_value upload_max_filesize 2M
            php_value max_input_time 300
            php_value max_input_vars 10000
            php_value always_populate_raw_post_data -1
            php_value date.timezone Asia/Shanghai
        </IfModule>
    </Directory>
    
    <Directory "/usr/share/zabbix/conf">
        Require all denied
    </Directory>
    
    <Directory "/usr/share/zabbix/app">
        Require all denied
    </Directory>
    
    <Directory "/usr/share/zabbix/include">
        Require all denied
    </Directory>
    
    <Directory "/usr/share/zabbix/local">
        Require all denied
    </Directory>
    

    #####################################服务端

    创建角色

    [root@m01 roles]# ansible-galaxy init zabbix_server
    
    

    编辑tasks目录

    1.安装
    [root@m01 zabbix_server]# vim tasks/install.yml 
    - name: copy zabbix_packages
      copy:
        src: "{{ item }}"
        dest: "/tmp"
      loop: "{{ zabbix }}"
    
    - name: install zabbix_server zabbix_agent
      yum: 
        name: "{{ zabbix_packages}}"
        state: present
      ignore_errors: yes
    
    - name: check httpd
      shell: "rpm -q httpd"
      ignore_errors: yes
      register: check_httpd
    
    - name: install httpd
      yum:
        name: httpd
      when: check_httpd.rc != 0
    
    - name: check mariadb-server
      shell: "rpm -q mariadb-server"
      ignore_errors: yes
      register: check_mariadb_server
    
    - name: install mariadb-server
      yum:
        name: mariadb-server
      when: check_mariadb_server.rc != 0
    
    - name: check_mariadb_status
      shell: "systemctl status mariadb"
      ignore_errors: yes
      register: check_mariadb_status
      
    - name: start mariadb
      systemd:
        name: mariadb
        state: started
        enabled: yes
      when: check_mariadb_status.rc != 0 
    2.拷贝
    [root@m01 zabbix_server]# vim tasks/copy.yml 
    - name: copy my.cnf
      template:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
      with_items:
        - { src: "my.cnf.j2",dest: "/etc/my.cnf" }
      notify:
        - "restart mariadb "
    
    - name: copy httpd_conf.d_zabbix.conf.j2
      copy:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
      with_items:
        - { src: "httpd_conf.d_zabbix.conf.j2",dest: "/etc/httpd/conf.d/zabbix.conf" }
      notify:
        - "restart httpd"
    
    - name: copy zabbix_server.conf
      template:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
      ignore_errors: yes
      with_items:
        - { src: "zabbix_server.conf.j2",dest: "/etc/zabbix/zabbix_server.conf" }
      notify:
        - "restart zabbix_server "
    
    - name: copy zabbix_agentd.conf
      template:
        src: "{{ item.src }}"
        dest: "{{ item.dest }}"
      ignore_errors: yes
      with_items:
        - { src: "zabbix_agent.conf.j2",dest: "/etc/zabbix/zabbix_agent.conf" }
      notify:
        - "restart zabbix_agent"
    3.解压
    [root@m01 zabbix_server]# vim tasks/jieya.yml 
    - name: jiaya create.sql.gz
      unarchive:
        src: "create.sql.gz"
        dest: "/usr/share/doc/zabbix-server-mysql-4.0.1/"
        copy: no
    4.导入
    [root@m01 zabbix_server]# vim tasks/target.yml 
    - name: import a database create.sql
      mysql_db:
        login_host: "localhost"
        login_user: "root"
        login_password: "1"
        login_port: "3306"
        name: "zabbix"
        target: "/usr/share/doc/zabbix-server-mysql-4.0.1/create.sql"
        state: "import"
    5.启动
    [root@m01 zabbix_server]# vim tasks/start.yml 
    - name: start zabbix_server zabbix_agent
      systemd:
        name: "{{item}}"
        state: started
        enabled: yes
      with_items:
        - "zabbix-server.service"
        - "zabbix-agent.service"
    6.include
    [root@m01 zabbix_server]# vim tasks/main.yml 
    - include: install.yml
    - include: copy.yml
    - include: jieya.yml
    - include: target.yml
    - include: start.yml
    7.编辑files目录
    [root@m01 zabbix_server]# ll files/
    httpd_conf.d_zabbix.conf.j2                 zabbix-web-4.0.0-2.el7.noarch.rpm
    zabbix-agent-4.0.0-2.el7.x86_64.rpm         zabbix-web-mysql-4.0.0-2.el7.noarch.rpm
    zabbix-server-mysql-4.0.0-2.el7.x86_64.rpm 
    8.编辑template目录
    [root@m01 zabbix_server]# vim templates/
    my.cnf.j2              zabbix_agent.conf.j2   zabbix_server.conf.j2 
    9.编辑触发器
    [root@m01 zabbix_server]# vim handlers/main.yml 
    - name: restart mariadb
      systemd:
        name: "{{item}}"
        state: restarted
      with_items:
        - "mariadb"
    
    - name: restart httpd
      systemd:
        name: "{{item}}"
        state: restarted
      with_items:
        - "httpd"
    
    - name: restart zabbix_server
      systemd:
        name: "{{item}}"
        state: restarted
      with_items:
        - "zabbix_server"
    
    - name: restart zabbix_agent
      systemd:
        name: "{{item}}"
        state: restarted
      with_items:
        - "zabbix_agent"
    
    
    

    编辑入口文件

    [root@m01 roles]# vim site.yml 
    - hosts: all
      roles:
        #- { role: base }
        #- { role: rsync_client,when: ansible_fqdn is match 'web*' }
        #- { role: rsync_client,when: ansible_fqdn is match 'nfs*' }
        #- { role: rsync_server,when: ansible_fqdn is match 'backup*' }
        #- { role: nfs_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: nfs_client,when: ansible_fqdn is match 'web*' }
        #- { role: mount_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: mount_client,when: ansible_fqdn is match 'web*' }
        #- { role: sersync,when: ansible_fqdn is match 'nfs' }
        #- { role: nginx_web,when: ansible_fqdn is match 'web*' }
        #- { role: nginx_lb,when: ansible_fqdn is match 'lb*' }
        #- { role: keepalived_lb,when: ansible_fqdn is match 'lb*' }
        #- { role: lb_ssl,when: ansible_fqdn is match 'lb*' }
        #- { role: php,when: ansible_fqdn is match 'web*' }
        #- { role: mariadb,when: ansible_fqdn is match 'db*' }
        #- { role: wordpress,when: ansible_fqdn is match 'web*' }
        #- { role: wecenter,when: ansible_fqdn is match 'web*' }
        #- { role: mysql_master,when: ansible_fqdn is match 'db01' }
        #- { role: mysql_slave,when: ansible_fqdn is match 'db02' }
        - { role: zabbix_server,when: ansible_fqdn is match 'zabbix' }
    

    ##########################客户端

    zabbix客户端配置文件jinjia

    [root@web01 ~]# cat /etc/zabbix/zabbix_agentd.conf |egrep -v '^$|^#'
    #可以被多个ip监控,中间用,隔开
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=172.16.1.71,10.0.0.71			
    ServerActive=172.16.1.71,10.0.0.71
    Hostname={{ ansible_fqdn }}
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    

    创建角色

    [root@m01 roles]# ansible-galaxy init zabbix_client
    

    编辑tasks目录

    1.拷贝和安装
    [root@m01 tasks]# vim copy.yml 
    - name: copy zabbix_agent packages
      copy:
        src: "zabbix-agent-4.0.0-2.el7.x86_64.rpm"
        dest: "/tmp"
    
    - include: install.yml
    
    - name: copy zabbix_agent.conf.j2
      template:
        src: "zabbix_agent.conf.j2"
        dest: "/etc/zabbix/zabbix_agent.conf"
      notify:
        - "restart zabbix_agent"
    
    2.启动
    [root@m01 zabbix_client]# vim tasks/start.yml 
    - name: start zabbix_agent
      systemd:
        name: "zabbix_agent"
        state: started
      enabled: yes
    3.包含
    [root@m01 zabbix_client]# vim tasks/main.yml 
    - include: copy.yml
    - include: start.yml
    5.触发器
    [root@m01 zabbix_client]# vim handlers/main.yml 
    - name: restart zabbix_agent
      systemd:
        name: "zabbix_agent"
        state: restarted
    
    

    编辑入口文件

    [root@m01 roles]# vim site.yml 
    - hosts: all
      roles:
        #- { role: base }
        #- { role: rsync_client,when: ansible_fqdn is match 'web*' }
        #- { role: rsync_client,when: ansible_fqdn is match 'nfs*' }
        #- { role: rsync_server,when: ansible_fqdn is match 'backup*' }
        #- { role: nfs_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: nfs_client,when: ansible_fqdn is match 'web*' }
        #- { role: mount_server,when: ansible_fqdn is match 'nfs*' }
        #- { role: mount_client,when: ansible_fqdn is match 'web*' }
        #- { role: sersync,when: ansible_fqdn is match 'nfs' }
        #- { role: nginx_web,when: ansible_fqdn is match 'web*' }
        #- { role: nginx_lb,when: ansible_fqdn is match 'lb*' }
        #- { role: keepalived_lb,when: ansible_fqdn is match 'lb*' }
        #- { role: lb_ssl,when: ansible_fqdn is match 'lb*' }
        #- { role: php,when: ansible_fqdn is match 'web*' }
        #- { role: mariadb,when: ansible_fqdn is match 'db*' }
        #- { role: wordpress,when: ansible_fqdn is match 'web*' }
        #- { role: wecenter,when: ansible_fqdn is match 'web*' }
        #- { role: mysql_master,when: ansible_fqdn is match 'db01' }
        #- { role: mysql_slave,when: ansible_fqdn is match 'db02' }
        - { role: zabbix_server,when: ansible_fqdn is match 'zabbix' }
        - { role: zabbix_client,when: ansible_fqdn is match 'zabbix' }
    
    

    执行

    
    
  • 相关阅读:
    .net对象生命周期 一) 转载
    HTTP的版本 转载
    sql server sql语句判断是否有表备注并进行新增或修改
    sql server update触发器
    vs文件属性复制到输出目录 转载
    c#使用log4net记录日志 转载
    windows服务定时器 转载
    vs创建项目以后修改https为http
    消息队列 转载
    nmp 设置淘宝镜像
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13184838.html
Copyright © 2011-2022 走看看