[Django] 관리자 페이지에 모델 action 추가.

django 관리자 페이지에 모델 action 추가.

특정 모델의 기본 action 은 아래 그림처럼 삭제가 기본이다. (django import-export를 설치했기 때문에 export action이 더 보인다).

여기에 내가 원하는 action을 추가하고싶다면 다음과 같이 처리해야한다.

1. app/models.py 의 모델이 아래와 같다.

class NetworkDevice(models.Model):
    dev_ip = models.GenericIPAddressField(default='0.0.0.0', verbose_name='Network Device IP Address')
    dev_nip = models.BigIntegerField(blank=True, null=True, verbose_name='Numeric IP')
    username = models.CharField(max_length=24, verbose_name='UserName')
    password = encrypt(models.CharField(max_length=50, verbose_name='Password'))
    protocol = models.CharField(max_length=10, choices=protocols, verbose_name='Connection Protocol')
    platform = models.CharField(max_length=16, null=True, blank=True, verbose_name='Platform')
    port = models.CharField(max_length=5, verbose_name='Port number')
    vendor = models.CharField(max_length=32, verbose_name='Vendors')
    isl3 = models.BooleanField(default=False, verbose_name='L3')
    hostname = models.CharField(max_length=64, null=True, blank=True, verbose_name='Hostname')
    collect = models.BooleanField(default=False, verbose_name='Collect Data')
    uplink = models.TextField(null=True, blank=True, verbose_name='UP Link port list')
    model_number = models.CharField(max_length=32, null=True, blank=True, verbose_name='Model')

    category = models.ForeignKey('Category', null=True, blank=True, on_delete=models.CASCADE, verbose_name='Category')

    class Meta:
        verbose_name_plural = 'Basic Device Information.'

Continue reading

cisco ios-xe ARP timeout 조정

시스코 스위치의 ARP 캐시의 만료시간 설정- arp timeout 조정

시스코 스위치에서 ARP가 캐시에 유지되는 시간은 기본값이 14400초(4시간)이다. 이것은 인터페이스를 확인해 보면 알 수 있다.

9404R#show int vlan247
Vlan247 is up, line protocol is up , Autostate Enabled
 ...
  ARP type: ARPA, ARP Timeout 04:00:00

...

시스코 9404R 스위치에서 ARP를 확인해 보면 아래처럼 보인다.

9404R#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.201.169         6   e4c7.2269.a5c2  ARPA   TenGigabitEthernet2/0/1
Internet  172.16.201.170         -   8024.8fee.fa42  ARPA   TenGigabitEthernet2/0/1
Internet  172.16.201.173         6   e4c7.2269.a242  ARPA   TenGigabitEthernet2/0/2
Internet  172.16.201.174         -   8024.8fee.fa45  ARPA   TenGigabitEthernet2/0/2
Internet  172.16.100.1           -   8024.8fee.fa5a  ARPA   Vlan247
Internet  172.16.100.4           9   0023.245c.7d1b  ARPA   Vlan247
Internet  172.16.100.5           0   0023.245c.7db6  ARPA   Vlan247
Internet  172.16.100.6          25   0011.20fc.e880  ARPA   Vlan247
Internet  172.16.100.7          25   0011.2039.9080  ARPA   Vlan247
Internet  172.16.100.8          25   0011.5c4b.c680  ARPA   Vlan247
...

Continue reading

cisco Nexus HSRP 설정

Nexus HSRP 설정.

Nexus 7000 2대를 백본으로 사용하며 위쪽에 방화벽 1개를 사용하는 구성.

방화벽과 Nexus 사이를 ospf 구성하고 싶었으나 방화벽쪽에서 난색(?)을 표하여, 방화벽과 Nexus 연결을 hsrp로 설정하여 연결함.(방화벽은 라우터 모드)

1. 각 장비 구성은 아래와 같다.

* Nexus1
hostname: Backbone_1
ip: 172.16.10.2

*Nexus2
ip: 172.16.10.3
hostname: Backbone_2

* HSRP
hsrp 그룹: 8
Virtual IP: 172.16.10.1
적용할 인터페이스: VLAN 444
Nexus1을 Active , Nexus2를 Standby

vlan에 포트 할당하는 부분은 생략함.

Continue reading

IOS-XE copy scp, copy sftp로 파일 복사 , 전송 하기.

IOS-XE scp, sftp로 파일 복사, 전송 하기.

1. ssh로 다른 장비 또는 서버 접속 가능한지 확인.

시스코 IOS-XE 에서 ssh 로 다른 장비나 서버에 접속하려면 아래와 같이 -l 옵션 뒤에 id, -p 옵션뒤에 포트번호를 입력하고 접속할 대상의 ip 주소를 입력하면 된다. 기본 포트번호 22는 생략 가능하다.

C9404R#ssh -l snowfox -p 22 192.168.0.20
[Connection to 192.168.0.20 aborted: error status 0]
C9404R#

위와 같은 오류가 발생할때, 아래와 같은 오류메시지를 볼 수 있다.

C9404R#sh log

Jan 28 13:25:25: %SSH-3-BAD_PACK_LEN: Bad packet length 1349676916

Continue reading

리눅스에서 LSI MegaRaid 상태 보기

CentOS 7(64bit), megaraid 상태 보기.

아래와 비슷한 메시지가 보인다면 megaraid 컨트롤러를 사용중이다.

# dmesg | grep -i mega
[    1.145344] megasas: 06.807.10.00-rh1
[    1.145775] megasas: FW now in Ready state
[    1.145797] megaraid_sas 0000:08:00.0: irq 28 for MSI/MSI-X
[    1.145807] megaraid_sas 0000:08:00.0: firmware supports msix        : (0)
[    1.145809] megaraid_sas 0000:08:00.0: current msix/online cpus      : (1/16)
[    1.251298] megaraid_sas 0000:08:00.0: controller type       : MR(512MB)
[    1.251323] megasas_init_mfi: fw_support_ieee=0
[    1.251324] megasas: INIT adapter done
[    1.293339] megaraid_sas 0000:08:00.0: pci id                : (0x1000)/(0x0079)/(0x8086)/(0x9260)
[    1.293340] megaraid_sas 0000:08:00.0: unevenspan support    : no
[    1.293341] megaraid_sas 0000:08:00.0: disable ocr           : no
[    1.293342] megaraid_sas 0000:08:00.0: firmware crash dump   : no
[    1.293343] megaraid_sas 0000:08:00.0: secure jbod           : no
[    1.293348] scsi host0: Avago SAS based MegaRAID driver

raid 관련 유틸리티가 설치되어 있지 않다면, MegaCLI를 설치한다.

Continue reading

ubuntu 18.04, apache2 mod-security2 설치 및 설정.

ubuntu 18.04, apache2 mod-security2 설치 및 설정.

1. 설치.

$ sudo apt install libapache2-mod-security2

2. 아파치 웹서버를 다시 실행하고 security2 모듈이 작동중인지 확인한다.

재실행.

$ sudo systemctl restart apache2

모듈 확인

$ sudo apachectl -M | grep -i security
 security2_module (shared)

Continue reading

Ubuntu 20.04 LTS 대기모드 진입 금지.

Ubuntu 20.04 LTS에서 대기모드(hibernate) 금지하기.

Ubuntu 20.04 LTS 에 GPU 서버 구성후에, 일정 시간 지나면 서버가 대기상태로 들어가는 현상이 발생했다. 이 현상은 Ubuntu 18.04에서는 없었던 현상이다.

먼저, 아래처럼 동면(?)상태로 들어가는 서비스를 확인 해 본다.

mlearn@mlearn6:~$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target
[sudo] password for mlearn:
 sleep.target - Sleep
     Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
     Active: inactive (dead) since Thu 2021-12-23 08:21:42 UTC; 1min 41s ago
       Docs: man:systemd.special(7)

Dec 23 07:30:04 mlearn6 systemd[1]: Reached target Sleep.
Dec 23 08:21:42 mlearn6 systemd[1]: Stopped target Sleep.

 suspend.target - Suspend
     Loaded: loaded (/lib/systemd/system/suspend.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

Dec 23 06:39:33 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 06:39:33 mlearn6 systemd[1]: Stopped target Suspend.
Dec 23 07:09:35 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 07:09:35 mlearn6 systemd[1]: Stopped target Suspend.
Dec 23 08:21:42 mlearn6 systemd[1]: Reached target Suspend.
Dec 23 08:21:42 mlearn6 systemd[1]: Stopped target Suspend.

 hibernate.target - Hibernate
     Loaded: loaded (/lib/systemd/system/hibernate.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

 hybrid-sleep.target - Hybrid Suspend+Hibernate
     Loaded: loaded (/lib/systemd/system/hybrid-sleep.target; static; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

Continue reading

리눅스 서버에서 apache-log4j 사용 유무 확인 하기.

리눅스 서버에서 apache-log4j 사용 유무 확인 하기.

apache-log4j 보안 이슈가 발생함.

개발과 배포가 끝나고 유지 보수도 진행하고 있다면 개발자에게 확인하면 되겠지만, 유지 보수를 진행하지 않는 사이트 관리자들이 사용 여부와 버전까지 확인하기가 어렵다는 문제가 있다.

간단하게 아래의 방법으로 log4j 사용을 확인 해 보자.

먼저, 자신의 서버가 웹 서버로 동작하는지 확인해야 한다.

# netstat -antp | grep -i listen
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      677/httpd
tcp        0      0 0.0.0.0:8400            0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:46387           0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      963/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1995/master
tcp        0      0 0.0.0.0:49114           0.0.0.0:*               LISTEN      2315/ClMgrS
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      677/httpd
tcp        0      0 127.0.0.1:34107         0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 0.0.0.0:42276           0.0.0.0:*               LISTEN      2314/cvd
tcp        0      0 127.0.0.1:199           0.0.0.0:*               LISTEN      962/snmpd
tcp6       0      0 :::8009                 :::*                    LISTEN      1418/java
tcp6       0      0 :::8080                 :::*                    LISTEN      1418/java
tcp6       0      0 :::22                   :::*                    LISTEN      963/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1995/master
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1418/java

Continue reading

리눅스 HA(corosync, pacemaker, shared disk)에 zabbix 모니터링 서버 구성 – part 4

리눅스 HA(corosync, pacemaker, shared disk)에 zabbix 모니터링 서버 구성 – part 4

zabbix 모니터링 서버를 Active/Passive(Standby) 클러스터로 구성하기.

리눅스 HA(corosync, pacemaker) – Part 1
리눅스 HA(corosync, pacemaker, DRBD) – Part 2
리눅스 HA (pacemaker, corosync, iscsi shared storage) – part 3

이 글은 위의 리눅스 HA (pacemaker, corosync, iscsi shared storage) – part 3 의 구성을 기본으로 zabbix 서버를 구성하는 방법을 기술합니다.

1. 구성
몇 가지 방법이 있겠지만, 여기서는 zabbix 서버가 사용하는 mysql 데이타만 공유 스토리지에 위치시키는 방법을 사용하도록 하겠다. 물론, 모든 서비스를 공유 스토리지에 위치시키는 방법도 있을 수 있지만, 그렇게 구성하려면 패키지 설치 보다는 소스코드를 받아서 컴파일하는 것이 유리하다.
여기서는 패키지 설치의 장점을 최대한 살려 가장 단순하고 쉽게 구성해 보도록 한다.

Node1
IP : 192.168.0.31
hostname: wolf1

Node2
IP : 192.168.0.32
hostname: wolf2

iSCSI shared storage Node
IP : 192.168.0.33

Cluster VIP: 192.168.0.30

Continue reading

zabbix 네트워크 스위치 등록

1. 스위치에 snmp 설정

익스트림 스위치 ip: 192.168.0.6
snmp 커뮤니티 TEST를 등록한다.

system_office.7 # configure snmpv3 add community TEST name TEST user v1v2c_ro

2. zabbix 서버에서 snmpwalk로 스위치의 snmp 확인.
이 과정은 필수가 아니며, snmpwalk 도 필수 사항이 아니다. 스위치에 snmp 설정이 잘 되어 있으면 아래처럼 MIB, OID관련 값을 볼 수 있다.

# snmpwalk -v2c -c TEST 192.168.0.6
SNMPv2-MIB::sysDescr.0 = STRING: ExtremeXOS (X430-48t) version 16.2.5.4 16.2.5.4-patch1-7 by release-manager on Thu Nov 15 07:05:05 EST 2018
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.1916.2.191
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2238472100) 259 days, 1:58:41.00
SNMPv2-MIB::sysContact.0 = STRING: support@extremenetworks.com, +1 888 257 3000
SNMPv2-MIB::sysName.0 = STRING: system_office
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 79
IF-MIB::ifNumber.0 = INTEGER: 61
IF-MIB::ifIndex.1001 = INTEGER: 1001

...

Continue reading