1. 程式人生 > >Ansible實現zabbix-agent自動化部署 | web監控

Ansible實現zabbix-agent自動化部署 | web監控

官方文件:

server1:172.25.28.1 控制節點 rhel7.3 zabbix-server

server2:172.25.28.2 託管節點 rhel6.3 

server3:172.25.28.3 託管節點 rhel6.3

部署

對管理節點的要求

目前,只要機器上安裝了 Python 2.6 或 Python 2.7 (windows系統不可以做控制主機),都可以執行Ansible.

主機的系統可以是 Red Hat, Debian, CentOS, OS X, BSD的各種版本,等等.:
對託管節點的要求:
通常我們使用 ssh 與託管節點通訊,預設使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置檔案中配置成 scp 的方式. 在託管節點上也需要安裝 Python 2.4 或以上的版本.

server1,server2,server3的其他服務關閉,server1配置為zabbix-server

免密登入

[[email protected] ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): 

/root/.ssh/id_rsa already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

1b:b5:99:0a:8a:b2:c4:49:22:0c:4a:62:2d:b8:65:72 
[email protected]
The key's randomart image is: +--[ RSA 2048]----+ | | |. . | |=+E. . | |B*. . + | |=o . S + | |= .. . . + | |.+. . o | |.o | |. | +-----------------+ [[email protected]
~]# [[email protected] ~]# ssh-copy-id server1 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'server1'" and check to make sure that only the key(s) you wanted were added. [[email protected] ~]# ssh-copy-id 172.25.28.1 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system. [[email protected] ~]# scp -r .ssh/ server2: [email protected]'s password: id_rsa 100% 1679 1.6KB/s 00:00 id_rsa.pub 100% 394 0.4KB/s 00:00 known_hosts 100% 1745 1.7KB/s 00:00 authorized_keys 100% 394 0.4KB/s 00:00 [[email protected] ~]# scp -r .ssh/ server3: [email protected]'s password: id_rsa 100% 1679 1.6KB/s 00:00 id_rsa.pub 100% 394 0.4KB/s 00:00 known_hosts 100% 1745 1.7KB/s 00:00 authorized_keys 100% 394 0.4KB/s 00:00

經過測試:server1,server2,server3可以互相連線

在管理節點上

1,安裝pip及相應的模組,這裡需要配置虛擬機器可以上網

[[email protected] ~]# easy_install pip

[[email protected] ~]# pip install paramiko PyYAML Jinja2 httplib2 six

2,採用yum源安裝:

[[email protected] ~]# yum install -y wget

[[email protected] ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

[[email protected] ~]# rpm -ivh epel-release-latest-7.noarch.rpm

[[email protected] ~]# yum install ansible

安裝完成

3,寫管理節點配置檔案

[[email protected] ansible]# vim hosts 

[[email protected] ansible]# pwd

/etc/ansible

測試

1,ansible Client -m ping     # 操作 Client 組 ( all 為操作 hosts 檔案中所有主機 ),-m 指定執行 ping 模組

2,執行本地指令碼

[[email protected] ~]# vim create.sh

[[email protected] ~]# cat create.sh 

#!/bin/bash

echo nihao > test1

-m指定模板 -a指定模板引數

託管節點檢視:
[[email protected] ~]# cat test1 

nihao

[[email protected] ~]# cat test1 

nihao

3,檢視 Client 分組主機記憶體使用情況

4,執行遠端指令碼

[[email protected] ~]# cat del.sh 

#!/bin/bash

rm -f test1 && echo ok!

[[email protected] ~]# cat del.sh 

#!/bin/bash

rm -f test1 && echo ok!

!!!!必須要給指令碼可執行許可權

[[email protected] ~]# ll test1

ls: cannot access test1: No such file or directory

[[email protected] ~]# ll test1

ls: cannot access test1: No such file or directory

利用Ansible-playbook自動部署zabbix-agent

使用 Ansible-playbook 可以完成一組複雜的動作,例如部署環境、搭建服務、修改配置等。

Playbooks 是 Ansible的配置,部署,編排語言.他們可以被描述為一個需要希望遠端主機執行命令的方案,或者一組IT程式執行的命令集合.

注意:這裡我新增一個server5:172.25.28.5,配置為和其他幾個server SSH免密

1,定義需要部署的主機

2,利用Playbooks寫Ansibles的部署語言

- hosts: test

  remote_user: root

  tasks:

  - name: copy install_packages to clien

    copy: src=/root/zabbix-agent-3.4.6-1.el6.x86_64.rpm  dest=/root/


  - name: install zabbix_agent packages

    yum: name=zabbix-agent-3.4.6-1.el6.x86_64.rpm state=present


  - name: modify shell

    copy : src=/root/zabbix_agent.sh  dest=/root/  mode=+x


  - name: shell

    command: /root/zabbix_agent.sh


  - name: start zabbix-agent

shell: /etc/init.d/zabbix-agent start

3,指令碼檔案

[[email protected] ~]# vim zabbix_agent.sh 

#!/bin/bash

#ip=$(ifconfig eth0 | awk -F " " '/inet\>/{print $2}' | awk -F ":" '{print $2}')

host_name=`hostname`

sed -i  97d  /etc/zabbix/zabbix_agentd.conf

sed -i "97i Server=$ip" /etc/zabbix/zabbix_agentd.conf

sed -i  138d  /etc/zabbix/zabbix_agentd.conf

sed -i "138i ServerActive=172.25.28.1" /etc/zabbix/zabbix_agentd.conf

sed -i  149d  /etc/zabbix/zabbix_agentd.conf

sed -i "149i Hostname=$host_name" /etc/zabbix/zabbix_agentd.conf

rm -rf /root/zabbix-agent-3.4.6-1.el6.x86_64.rpm

rm -rf /root/zabbix_agent.sh

4,執行

[[email protected] ~]# ansible-playbook zabbix_agent.yaml

5,檢視執行結果:

[[email protected] ~]# ls

[[email protected] ~]# netstat -antulpe | grep 10050

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      498        28137      5813/zabbix_agentd  

tcp        0      0 :::10050                    :::*                        LISTEN      498        28138      5813/zabbix_agentd  

[[email protected] ~]# /etc/init.d/zabbix-agent status

zabbix_agentd (pid  5813) is running...

[[email protected] ~]# ls

[[email protected] ~]# netstat -antulpe | grep 10050

tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      498        11129      1763/zabbix_agentd  

tcp        0      0 :::10050                    :::*                        LISTEN      498        11130      1763/zabbix_agentd  

[[email protected] ~]# /etc/init.d/zabbix-agent status

zabbix_agentd (pid  1763) is running...

6,如果之前我們在瀏覽器配置了自動發現規則

可以看到如下結果

發現成功

相關推薦

Ansible實現zabbix-agent自動化部署 | web監控

官方文件: server1:172.25.28.1 控制節點 rhel7.3 zabbix-server server2:172.25.28.2 託管節點 rhel6.3  server3:172.25.28.3 託管節點 rhel6.3 部署 對管理節點的要求

Jenkins+Git+Gitlab+Ansible實現持續整合自動化部署靜態網站(一)--技術流ken

  前言   在之前已經寫了關於Git,Gitlab以及Ansible的兩篇部落格《Git+Gitlab+Ansible劇本實現一鍵部署Nginx--技術流ken》,《Git+Gitlab+Ansible劇本實現一鍵部署動態網站(二)--技術流ken》,以及關於jenkins的簡單使

Jenkins+Git+Gitlab+Ansible實現持續整合自動化部署動態網站(二)--技術流ken

  專案前言   在上一篇部落格《Jenkins+Git+Gitlab+Ansible實現持續化整合一鍵部署靜態網站(一)--技術流ken》中已經詳細講解了如何使用這四個工具來持續整合自動化部署一個靜態的網站。 如果大家可以熟練掌握以上內容,勢必會在工作中減輕不小的工作量。 本篇

使用 Jenkins + Ansible 實現 Spring Boot 自動化部署101

本文首發於:Jenkins 中文社群 本文要點: 設計一條 Spring Boot 最基本的流水線:包括構建、製品上傳、部署。

大廠是如何用DevCloud流水線實現自動化部署Web應用的?

DevUI是一支兼具設計視角和工程視角的團隊,服務於華為雲DevCloud平臺和華為內部數箇中後臺系統,服務於設計師和前端工程師。 官方網站:devui.design Ng元件庫:ng-devui(歡迎Star) 官方交流:新增DevUI小助手(devui-official) DevUIHelper外掛:D

rsync軟件服務利用ansible實現一鍵化部署

一鍵化部署首先創建一個腳本文件 /server/tools/peizhi.shcat /server/tools/peizhi.shcat >>/etc/rsyncd.conf<<EOF#luo##paichu.sh##uid = rsyncgid = rsyncuse chroot

rnfs軟件服務利用ansible實現一鍵化部署

一鍵化部署創建配置文件[[email protected] tools]# cat nfspeizhi.shcat >>/etc/exports<<EOF /data 172.16.1.0/24(rw,sync)EOF劇本:[[email pro

利用ansible實現一鍵化部署 rsync服務

linux創建腳本cat /server/scripts/rsyncd.conf.sh修改rsync配置文件cat >>/etc/rsyncd.conf<<EOFuid = rsyncgid = rsyncuse chroot = nomax connections = 200tim

一鍵自動化部署web架構

一鍵自動化 lnmp lamp 自動化安裝 逗哥自動化 一鍵自動化部署web架構 (LNMP LAMP 等github見底部) 一、前言 要實現自動化,首先要是文檔化---標準化--流程化--自動化,環境的統一是最低標準,所以我們平臺系統環境全部來源於1個腳本,這樣就可以自動化管理,減少企

Zabbix 3.0 配置web監控

zabbix web監控 一、客戶端配置 1、安裝nginx [root@node2 ~]# yum install nginx 2、啟動服務 [root@node2 ~]# systemctl start nginx [root@node2 ~]# systemctl status nginx

ansible 實現巡檢自動化

系統/運維 Linux 簡介ansible是新出現的自動化運維工具,基於Python開發,集合了眾多運維工具(puppet、cfengine、chef、func、fabric)的優點,實現了批量系統配置、批量程序部署、批量運行命令等功能。安裝RHEL/CentOS//yum安裝#yum install

Zabbix服務安裝部署監控配置

sed master edi extension 客戶 取數據 鏈接 prefix HA Zabbix服務安裝部署及監控配置 1.1 Zabbix服務介紹 官方網站:http://www.zabbix.com/ The Enterprise-class Monitori

分散式系統監視zabbix講解五之web監控--技術流ken

  Web 監控 概況 你可以使用 Zabbix 檢查幾個網站可用性方面。 如果要使用 Web 檢測功能,必須在 編譯Zabbix 的時候加入 cURL(libcurl) 的支援。 要使用 Web 監控,您需要定義 web 場景。Web 場景包括一個或多個 HTTP 請

Zabbix Agent active主動模式監控日誌(多關鍵字)

需求:監控/data/app/app/logs/det.log日誌檔案,出現關鍵字BDRC_WARNING則告警,級別為Warning;出現關鍵字:BDRC_EROROR則告警,級別為Inform

jenkins+docker+git+springboot實現可持續自動化部署

本篇文章引導你使用Jenkins部署SpringBoot專案,同時使用Docker和Git實現簡單的持續整合和持續部署。(專案地址:first-app-demo)流程圖如下:push程式碼到Github觸發WebHook。(因網路原因,本篇使用gitee)Jenkins從倉庫

Ganymed實現基本的自動化部署API

Ganymed SSH-2 for Java是一個純Java實現的SHH2庫,官網為http://www.ganymed.ethz.ch/ssh2/,最新的更新時間為2006年10月,在用之前,請仔細看一下FAQ,真的能避免很多很多問題 在google上

Maven實現專案構建直接部署Web專案到Tomcat

[INFO] --- tomcat7-maven-plugin:2.2:redeploy (default-cli) @ ui --- [INFO] Deploying war to http://172.16.100.177:9098/ui   Uploading: http://172.16.100.

Shell指令碼-自動化部署WEB

導言:最近在阿里雲伺服器上搭建了個個人的網站,對於這個網站採用了Django框架開發,搭建伺服器請檢視:http://blog.csdn.net/temanm/article/details/49255769,對於WEB的更新採用了Shell指令碼,每次更新只需

Zabbix agent安裝部署及連線proxy

新增使用者和使用者組 groupadd zabbix useradd -g zabbix -m zabbix 安裝gcc 輸入 yum install gcc安裝編譯工具,成功後會出現complete 編譯安裝zabbix proxy 官

zabbix-agent自定義item監控遠端伺服器

1.首先是自己的指令碼 我的指令碼就是簡單的正則表示式的指令碼,只是為了模擬檢測bond中網絡卡關閉的資訊。檢測到網絡卡關閉就報警。 具體程式碼如下: #!/usr/bin/env python # -*-coding:utf-8 -*- import